@teleporthq/teleport-plugin-common 0.43.41 → 0.43.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/node-handlers/node-to-jsx/utils.ts +55 -0
- package/__tests__/utils/url-search-param-sync.ts +42 -0
- package/dist/cjs/node-handlers/node-to-html/utils.js +24 -11
- package/dist/cjs/node-handlers/node-to-html/utils.js.map +1 -1
- package/dist/cjs/node-handlers/node-to-jsx/index.d.ts.map +1 -1
- package/dist/cjs/node-handlers/node-to-jsx/index.js +117 -4
- package/dist/cjs/node-handlers/node-to-jsx/index.js.map +1 -1
- package/dist/cjs/node-handlers/node-to-jsx/utils.d.ts.map +1 -1
- package/dist/cjs/node-handlers/node-to-jsx/utils.js +41 -22
- package/dist/cjs/node-handlers/node-to-jsx/utils.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/utils/ast-utils.d.ts.map +1 -1
- package/dist/cjs/utils/ast-utils.js +36 -0
- package/dist/cjs/utils/ast-utils.js.map +1 -1
- package/dist/cjs/utils/url-search-param-sync.d.ts +2 -2
- package/dist/cjs/utils/url-search-param-sync.d.ts.map +1 -1
- package/dist/cjs/utils/url-search-param-sync.js +38 -6
- package/dist/cjs/utils/url-search-param-sync.js.map +1 -1
- package/dist/esm/node-handlers/node-to-html/utils.js +24 -11
- package/dist/esm/node-handlers/node-to-html/utils.js.map +1 -1
- package/dist/esm/node-handlers/node-to-jsx/index.d.ts.map +1 -1
- package/dist/esm/node-handlers/node-to-jsx/index.js +115 -5
- package/dist/esm/node-handlers/node-to-jsx/index.js.map +1 -1
- package/dist/esm/node-handlers/node-to-jsx/utils.d.ts.map +1 -1
- package/dist/esm/node-handlers/node-to-jsx/utils.js +41 -22
- package/dist/esm/node-handlers/node-to-jsx/utils.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/utils/ast-utils.d.ts.map +1 -1
- package/dist/esm/utils/ast-utils.js +36 -0
- package/dist/esm/utils/ast-utils.js.map +1 -1
- package/dist/esm/utils/url-search-param-sync.d.ts +2 -2
- package/dist/esm/utils/url-search-param-sync.d.ts.map +1 -1
- package/dist/esm/utils/url-search-param-sync.js +38 -6
- package/dist/esm/utils/url-search-param-sync.js.map +1 -1
- package/package.json +4 -4
- package/src/node-handlers/node-to-html/utils.ts +33 -11
- package/src/node-handlers/node-to-jsx/index.ts +190 -22
- package/src/node-handlers/node-to-jsx/utils.ts +63 -30
- package/src/utils/ast-utils.ts +39 -0
- package/src/utils/url-search-param-sync.ts +50 -10
|
@@ -87,6 +87,17 @@ var clone = function (expr) {
|
|
|
87
87
|
// input). `depExpr` is the effect dependency that re-triggers the write-back
|
|
88
88
|
// when that value changes — usually the same expression as `valueExpr`.
|
|
89
89
|
//
|
|
90
|
+
// `defaultValueExpr` (optional) is the state's default value. When supplied
|
|
91
|
+
// (only for bindings whose default is a non-empty value, e.g. the sort
|
|
92
|
+
// dropdown's `name-asc`), the current value being EQUAL TO THE DEFAULT also
|
|
93
|
+
// deletes the key — so the canonical/default view keeps a clean, param-free
|
|
94
|
+
// URL instead of stickily writing `?sortBy=name-asc` on first load. This is
|
|
95
|
+
// the write-back half of the default-aware pairing that keeps the URL⇄state
|
|
96
|
+
// sync loop-free: the read-back below resolves a missing key back to the same
|
|
97
|
+
// default, so the two never disagree. Omitting it (empty-default bindings like
|
|
98
|
+
// `selectedCategory` / the search input) yields byte-identical output to the
|
|
99
|
+
// pre-default builder.
|
|
100
|
+
//
|
|
90
101
|
// Notes:
|
|
91
102
|
// 1. `router.isReady` gate: on the very first SSG render `router.query` is
|
|
92
103
|
// empty, so without this gate any value initialized from
|
|
@@ -103,7 +114,12 @@ var clone = function (expr) {
|
|
|
103
114
|
// URL.
|
|
104
115
|
// 4. Empty / null value deletes the key entirely so the URL never keeps a
|
|
105
116
|
// sticky `?key=` empty param.
|
|
106
|
-
var buildUrlWriteBackEffect = function (paramKey, valueExpr, depExpr) {
|
|
117
|
+
var buildUrlWriteBackEffect = function (paramKey, valueExpr, depExpr, defaultValueExpr) {
|
|
118
|
+
// value === '' || value == null [|| value === <default>]
|
|
119
|
+
var deleteCondition = types.logicalExpression('||', types.binaryExpression('===', clone(valueExpr), types.stringLiteral('')), types.binaryExpression('==', clone(valueExpr), types.nullLiteral()));
|
|
120
|
+
if (defaultValueExpr) {
|
|
121
|
+
deleteCondition = types.logicalExpression('||', deleteCondition, types.binaryExpression('===', clone(valueExpr), clone(defaultValueExpr)));
|
|
122
|
+
}
|
|
107
123
|
var effectBody = types.blockStatement([
|
|
108
124
|
// if (typeof window === 'undefined') return
|
|
109
125
|
types.ifStatement(types.binaryExpression('===', types.unaryExpression('typeof', types.identifier('window')), types.stringLiteral('undefined')), types.returnStatement(null)),
|
|
@@ -115,9 +131,9 @@ var buildUrlWriteBackEffect = function (paramKey, valueExpr, depExpr) {
|
|
|
115
131
|
types.spreadElement(types.memberExpression(types.identifier('router'), types.identifier('query'))),
|
|
116
132
|
])),
|
|
117
133
|
]),
|
|
118
|
-
// if (value === '' || value == null) { delete __nextQuery.key }
|
|
134
|
+
// if (value === '' || value == null [|| value === <default>]) { delete __nextQuery.key }
|
|
119
135
|
// else { __nextQuery.key = String(value) }
|
|
120
|
-
types.ifStatement(
|
|
136
|
+
types.ifStatement(deleteCondition, types.blockStatement([
|
|
121
137
|
types.expressionStatement(types.unaryExpression('delete', accessKeyOf(types.identifier('__nextQuery'), paramKey))),
|
|
122
138
|
]), types.blockStatement([
|
|
123
139
|
types.expressionStatement(types.assignmentExpression('=', accessKeyOf(types.identifier('__nextQuery'), paramKey), types.callExpression(types.identifier('String'), [clone(valueExpr)]))),
|
|
@@ -171,12 +187,28 @@ exports.buildUrlWriteBackEffect = buildUrlWriteBackEffect;
|
|
|
171
187
|
// (duplicate keys) per Next.js's typings; the helper normalizes both to a
|
|
172
188
|
// string before comparing, defaulting to `''` for the missing-key case so the
|
|
173
189
|
// comparison aligns with the write-back's `value === ''` empty-check.
|
|
174
|
-
|
|
190
|
+
//
|
|
191
|
+
// `defaultValueExpr` (optional) is the state's default value. When supplied
|
|
192
|
+
// (bindings with a non-empty default such as the sort dropdown's `name-asc`),
|
|
193
|
+
// an ABSENT or EMPTY URL value resolves to the default rather than `''` — via a
|
|
194
|
+
// trailing `(<normalized>) || <default>`. This is what makes the default sort
|
|
195
|
+
// "stick" on first load: without it the read-back would clobber the default
|
|
196
|
+
// state (`name-asc`) with `''` the instant the router hydrates with no `?sortBy`
|
|
197
|
+
// key, forcing an extra unsorted fetch and losing the ordering. It also keeps
|
|
198
|
+
// browser back/forward to the param-free URL restoring the default view.
|
|
199
|
+
// Omitting it reproduces the pre-default `''` fallback byte-for-byte.
|
|
200
|
+
var buildUrlReadBackEffect = function (paramKey, setterName, defaultValueExpr) {
|
|
175
201
|
var normalizeArg = types.conditionalExpression(
|
|
176
202
|
// typeof __urlValue === 'string' ? __urlValue
|
|
177
203
|
types.binaryExpression('===', types.unaryExpression('typeof', types.identifier('__urlValue')), types.stringLiteral('string')), types.identifier('__urlValue'), types.conditionalExpression(
|
|
178
204
|
// Array.isArray(__urlValue) ? (__urlValue[0] || '') : ''
|
|
179
205
|
types.callExpression(types.memberExpression(types.identifier('Array'), types.identifier('isArray')), [types.identifier('__urlValue')]), types.logicalExpression('||', types.memberExpression(types.identifier('__urlValue'), types.numericLiteral(0), true), types.stringLiteral('')), types.stringLiteral('')));
|
|
206
|
+
// With a default, an absent/empty normalized value (falsy `''`) falls through
|
|
207
|
+
// to the default: `(<normalized>) || <default>`. Without one, the bare
|
|
208
|
+
// normalized expression is emitted unchanged.
|
|
209
|
+
var nextValueExpr = defaultValueExpr
|
|
210
|
+
? types.logicalExpression('||', normalizeArg, clone(defaultValueExpr))
|
|
211
|
+
: normalizeArg;
|
|
180
212
|
var effectBody = types.blockStatement([
|
|
181
213
|
// if (!router.isReady) return
|
|
182
214
|
types.ifStatement(types.unaryExpression('!', types.memberExpression(types.identifier('router'), types.identifier('isReady'))), types.returnStatement(null)),
|
|
@@ -184,9 +216,9 @@ var buildUrlReadBackEffect = function (paramKey, setterName) {
|
|
|
184
216
|
types.variableDeclaration('const', [
|
|
185
217
|
types.variableDeclarator(types.identifier('__urlValue'), routerQueryAccess(paramKey)),
|
|
186
218
|
]),
|
|
187
|
-
// const __nextValue = (normalized)
|
|
219
|
+
// const __nextValue = (normalized) [|| <default>]
|
|
188
220
|
types.variableDeclaration('const', [
|
|
189
|
-
types.variableDeclarator(types.identifier('__nextValue'),
|
|
221
|
+
types.variableDeclarator(types.identifier('__nextValue'), nextValueExpr),
|
|
190
222
|
]),
|
|
191
223
|
// setState((prev) => prev === __nextValue ? prev : __nextValue)
|
|
192
224
|
types.expressionStatement(types.callExpression(types.identifier(setterName), [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-search-param-sync.js","sourceRoot":"","sources":["../../../src/utils/url-search-param-sync.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAqC;AAErC,0EAA0E;AAC1E,EAAE;AACF,gBAAgB;AAChB,8EAA8E;AAC9E,4EAA4E;AAC5E,iEAAiE;AACjE,iFAAiF;AACjF,iEAAiE;AACjE,kFAAkF;AAClF,wEAAwE;AACxE,EAAE;AACF,4EAA4E;AAC5E,uEAAuE;AACvE,0CAA0C;AAE1C,6EAA6E;AAC7E,4EAA4E;AAC5E,yEAAyE;AACzE,4EAA4E;AAC5E,sDAAsD;AACtD,IAAM,mBAAmB,GAAG,4BAA4B,CAAA;AAExD,iFAAiF;AACjF,0EAA0E;AAC1E,IAAM,WAAW,GAAG,UAAC,MAAwB,EAAE,QAAgB;IAC7D,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACtC,OAAO,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;KAClE;IACD,OAAO,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAA;AAC5E,CAAC,CAAA;AAED,IAAM,iBAAiB,GAAG,UAAC,QAAgB;IACzC,OAAA,WAAW,CACT,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAC7E,QAAQ,CACT;AAHD,CAGC,CAAA;AAEH,2EAA2E;AAC3E,8EAA8E;AAC9E,qEAAqE;AACrE,IAAM,KAAK,GAAG,UAAC,IAAsB;IACnC,OAAA,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAqB;AAA1D,CAA0D,CAAA;AAE5D,2EAA2E;AAC3E,yDAAyD;AACzD,EAAE;AACF,sBAAsB;AACtB,gDAAgD;AAChD,kCAAkC;AAClC,8CAA8C;AAC9C,iEAAiE;AACjE,0CAA0C;AAC1C,eAAe;AACf,8DAA8D;AAC9D,QAAQ;AACR,6EAA6E;AAC7E,sBAAsB;AACtB,2DAA2D;AAC3D,mBAAmB;AACnB,0BAA0B;AAC1B,QAAQ;AACR,2CAA2C;AAC3C,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,wEAAwE;AACxE,EAAE;AACF,SAAS;AACT,2EAA2E;AAC3E,4DAA4D;AAC5D,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAC7E,2EAA2E;AAC3E,sEAAsE;AACtE,mEAAmE;AACnE,6EAA6E;AAC7E,6EAA6E;AAC7E,UAAU;AACV,0EAA0E;AAC1E,iCAAiC;AAC1B,IAAM,uBAAuB,GAAG,UACrC,QAAgB,EAChB,SAA2B,EAC3B,OAAyB;
|
|
1
|
+
{"version":3,"file":"url-search-param-sync.js","sourceRoot":"","sources":["../../../src/utils/url-search-param-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -152,42 +152,55 @@ var stringifyOperandValue = function (value) {
|
|
|
152
152
|
}
|
|
153
153
|
return String(value);
|
|
154
154
|
};
|
|
155
|
+
/**
|
|
156
|
+
* Collection operators dereference `.length` / `.includes` on the bound value,
|
|
157
|
+
* which is nullish far more often than it looks (an optional CMS column, a
|
|
158
|
+
* category without an image, a not-yet-hydrated state). Coercing to an empty
|
|
159
|
+
* collection first keeps a hide-this-node condition from throwing
|
|
160
|
+
* `Cannot read properties of null` mid-render. A non-empty string stays
|
|
161
|
+
* truthy, so string semantics are preserved. Mirrors `createNullSafeCollection`
|
|
162
|
+
* in the JSX handler — keep the two in sync.
|
|
163
|
+
*/
|
|
164
|
+
var nullSafeCollection = function (identifier, empty) {
|
|
165
|
+
if (empty === void 0) { empty = '[]'; }
|
|
166
|
+
return "(".concat(identifier, " || ").concat(empty, ")");
|
|
167
|
+
};
|
|
155
168
|
var stringifyConditionalExpression = function (identifier, operation, value, containsField) {
|
|
156
169
|
// Array/object operators
|
|
157
170
|
if (operation === 'isEmpty') {
|
|
158
|
-
return "".concat(identifier, ".length === 0");
|
|
171
|
+
return "".concat(nullSafeCollection(identifier), ".length === 0");
|
|
159
172
|
}
|
|
160
173
|
if (operation === 'isNotEmpty') {
|
|
161
|
-
return "".concat(identifier, ".length > 0");
|
|
174
|
+
return "".concat(nullSafeCollection(identifier), ".length > 0");
|
|
162
175
|
}
|
|
163
176
|
if (operation === 'lengthEquals') {
|
|
164
|
-
return "".concat(identifier, ".length === ").concat(stringifyOperandValue(value));
|
|
177
|
+
return "".concat(nullSafeCollection(identifier), ".length === ").concat(stringifyOperandValue(value));
|
|
165
178
|
}
|
|
166
179
|
if (operation === 'lengthGreaterThan') {
|
|
167
|
-
return "".concat(identifier, ".length > ").concat(stringifyOperandValue(value));
|
|
180
|
+
return "".concat(nullSafeCollection(identifier), ".length > ").concat(stringifyOperandValue(value));
|
|
168
181
|
}
|
|
169
182
|
if (operation === 'lengthLessThan') {
|
|
170
|
-
return "".concat(identifier, ".length < ").concat(stringifyOperandValue(value));
|
|
183
|
+
return "".concat(nullSafeCollection(identifier), ".length < ").concat(stringifyOperandValue(value));
|
|
171
184
|
}
|
|
172
185
|
if (operation === 'contains') {
|
|
173
186
|
var operandStr = stringifyOperandValue(value);
|
|
174
187
|
if (containsField) {
|
|
175
|
-
return "".concat(identifier, ".some(item => item.").concat(containsField, " === ").concat(operandStr, ")");
|
|
188
|
+
return "".concat(nullSafeCollection(identifier), ".some(item => item.").concat(containsField, " === ").concat(operandStr, ")");
|
|
176
189
|
}
|
|
177
|
-
return "".concat(identifier, ".includes(").concat(operandStr, ")");
|
|
190
|
+
return "".concat(nullSafeCollection(identifier), ".includes(").concat(operandStr, ")");
|
|
178
191
|
}
|
|
179
192
|
if (operation === 'notContains') {
|
|
180
193
|
var operandStr = stringifyOperandValue(value);
|
|
181
194
|
if (containsField) {
|
|
182
|
-
return "!".concat(identifier, ".some(item => item.").concat(containsField, " === ").concat(operandStr, ")");
|
|
195
|
+
return "!".concat(nullSafeCollection(identifier), ".some(item => item.").concat(containsField, " === ").concat(operandStr, ")");
|
|
183
196
|
}
|
|
184
|
-
return "!".concat(identifier, ".includes(").concat(operandStr, ")");
|
|
197
|
+
return "!".concat(nullSafeCollection(identifier), ".includes(").concat(operandStr, ")");
|
|
185
198
|
}
|
|
186
199
|
if (operation === 'hasKey') {
|
|
187
|
-
return "Object.prototype.hasOwnProperty.call(".concat(identifier, ", ").concat(stringifyOperandValue(value), ")");
|
|
200
|
+
return "Object.prototype.hasOwnProperty.call(".concat(nullSafeCollection(identifier, '{}'), ", ").concat(stringifyOperandValue(value), ")");
|
|
188
201
|
}
|
|
189
202
|
if (operation === 'notHasKey') {
|
|
190
|
-
return "!Object.prototype.hasOwnProperty.call(".concat(identifier, ", ").concat(stringifyOperandValue(value), ")");
|
|
203
|
+
return "!Object.prototype.hasOwnProperty.call(".concat(nullSafeCollection(identifier, '{}'), ", ").concat(stringifyOperandValue(value), ")");
|
|
191
204
|
}
|
|
192
205
|
// Standard operators
|
|
193
206
|
if (typeof value === 'boolean') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/node-handlers/node-to-html/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/node-handlers/node-to-html/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/node-handlers/node-to-jsx/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EACL,eAAe,EAiBhB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAA+D,SAAS,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/node-handlers/node-to-jsx/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EACL,eAAe,EAiBhB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAA+D,SAAS,EAAE,MAAM,SAAS,CAAA;AA2oBhG,QAAA,MAAM,mBAAmB,EAAE,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,UAAU,CAwSrE,CAAA;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -21,10 +21,25 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
21
21
|
import * as types from '@babel/types';
|
|
22
22
|
import { UIDLUtils, StringUtils } from '@teleporthq/teleport-shared';
|
|
23
23
|
import { addEventHandlerToTag, createConditionIdentifier, createDynamicValueExpression, createConditionalJSXExpression, getRepeatSourceIdentifier, resolveGlobalStateName, createGlobalStateExpression, resolveAndRegisterGlobalStateSource, makeControlUncontrolledWhenNoChangeHandler, } from './utils';
|
|
24
|
-
import { addChildJSXText, addChildJSXTag, addAttributeToJSXTag, addDynamicAttributeToJSXTag, addRawAttributeToJSXTag, generateDynamicWindowImport, addDynamicExpressionAttributeToJSXTag, resolveObjectValue, objectToObjectExpression, parseStringWithTemplateExpressions, parseJSExpressionAsAST, convertToReactAttributeName, GLOBAL_REF_ID_MAP, sanitizeExprContent, } from '../../utils/ast-utils';
|
|
24
|
+
import { addChildJSXText, addChildJSXTag, addAttributeToJSXTag, addDynamicAttributeToJSXTag, addRawAttributeToJSXTag, generateDynamicWindowImport, addDynamicExpressionAttributeToJSXTag, resolveObjectValue, objectToObjectExpression, parseStringWithTemplateExpressions, parseJSExpressionAsAST, convertToReactAttributeName, convertValueToLiteral, GLOBAL_REF_ID_MAP, sanitizeExprContent, } from '../../utils/ast-utils';
|
|
25
25
|
import { createJSXTag, createSelfClosingJSXTag } from '../../builders/ast-builders';
|
|
26
26
|
import { DEFAULT_JSX_OPTIONS } from './constants';
|
|
27
27
|
import { ASTBuilders, ASTUtils } from '../..';
|
|
28
|
+
import ParsedASTNode from '../../utils/parsed-ast';
|
|
29
|
+
// Runtime predicate that drops a DataProvider filter whose destination
|
|
30
|
+
// resolves to an empty value: `''` / `null` / `undefined`, or an empty
|
|
31
|
+
// array-overlap set (`[]` / `['']`). Selecting a "show all" reset must mean
|
|
32
|
+
// "no filter", not a query that matches zero rows. Kept in sync with the
|
|
33
|
+
// Next.js pages plugin's `buildNonEmptyDestinationPredicate` (duplicated here
|
|
34
|
+
// because teleport-plugin-common must not depend on teleport-plugin-next-data-source).
|
|
35
|
+
var buildNonEmptyFilterDestinationPredicate = function () {
|
|
36
|
+
var f = types.identifier('__f');
|
|
37
|
+
var dest = types.memberExpression(f, types.identifier('destination'));
|
|
38
|
+
var isEmptyArray = types.logicalExpression('&&', types.callExpression(types.memberExpression(types.identifier('Array'), types.identifier('isArray')), [dest]), types.binaryExpression('===', types.memberExpression(types.callExpression(types.memberExpression(dest, types.identifier('filter')), [
|
|
39
|
+
types.identifier('Boolean'),
|
|
40
|
+
]), types.identifier('length')), types.numericLiteral(0)));
|
|
41
|
+
return types.arrowFunctionExpression([f], types.logicalExpression('&&', types.logicalExpression('&&', types.logicalExpression('&&', types.binaryExpression('!==', dest, types.stringLiteral('')), types.binaryExpression('!==', dest, types.nullLiteral())), types.binaryExpression('!==', dest, types.identifier('undefined'))), types.unaryExpression('!', isEmptyArray)));
|
|
42
|
+
};
|
|
28
43
|
// Global references in the UIDL come in two shapes:
|
|
29
44
|
// Shape A: { id: "ecommerce", refPath: ["Cart", "total"] }
|
|
30
45
|
// Shape B: { id: undefined, refPath: ["E-commerce", "Settings", "Delivery", "..."] }
|
|
@@ -115,8 +130,24 @@ var trackGlobalRefsInExpression = function (expression, params) {
|
|
|
115
130
|
}
|
|
116
131
|
}
|
|
117
132
|
};
|
|
133
|
+
// The recognised runtime identifiers a `global` reference's `id` can legitimately
|
|
134
|
+
// already hold (Shape A). Anything else — notably the opaque `TQ_...` node id every
|
|
135
|
+
// dynamic UIDL reference carries for editor bookkeeping — is not a real identifier
|
|
136
|
+
// and must be re-derived from `refPath` (Shape B/C), or code generation would emit
|
|
137
|
+
// an undeclared variable that throws at runtime.
|
|
138
|
+
var KNOWN_GLOBAL_REF_IDS = new Set([
|
|
139
|
+
'locale',
|
|
140
|
+
'locales',
|
|
141
|
+
'currentUser',
|
|
142
|
+
'userIsLoggedIn',
|
|
143
|
+
'ecommerce',
|
|
144
|
+
'cart',
|
|
145
|
+
]);
|
|
118
146
|
var normalizeGlobalRef = function (node) {
|
|
119
|
-
if (
|
|
147
|
+
if (!node.content.refPath || node.content.refPath.length === 0) {
|
|
148
|
+
return node;
|
|
149
|
+
}
|
|
150
|
+
if (node.content.id && KNOWN_GLOBAL_REF_IDS.has(node.content.id)) {
|
|
120
151
|
return node;
|
|
121
152
|
}
|
|
122
153
|
var firstSeg = node.content.refPath[0];
|
|
@@ -385,10 +416,72 @@ var maybeAddFormStoreFieldBinding = function (elementTag, elementName, attrs, pa
|
|
|
385
416
|
elementTag.openingElement.attributes.push(types.jsxAttribute(types.jsxIdentifier('onChange'), types.jsxExpressionContainer(handler)));
|
|
386
417
|
}
|
|
387
418
|
};
|
|
419
|
+
// Style plugins (styled-jsx, css-modules, styled-components, react-jss, plugin-css)
|
|
420
|
+
// emit ONE flat, component-scope CSS block/class-map from `element.style`, so a
|
|
421
|
+
// dynamic style value only resolves correctly there when the identifier it needs
|
|
422
|
+
// is reachable from that top-level scope (e.g. `token`/`prop`). A `ctx` reference
|
|
423
|
+
// resolves to the render-prop identifier of the enclosing repeater/data-source —
|
|
424
|
+
// only in scope inside that repeater's own render callback — and other reference
|
|
425
|
+
// types (`state`, `local`, `global`, `globalState`, ...) are never routed through
|
|
426
|
+
// `element.style` by any known UIDL producer either. When one shows up anyway, the
|
|
427
|
+
// only place that still knows the correct enclosing scope is here, while building
|
|
428
|
+
// this exact JSX node, so resolve it into an inline `style` attribute (mirroring
|
|
429
|
+
// how `dynamicStyleBindings` already handles ctx/state-bound styles) and strip it
|
|
430
|
+
// out of `element.style` so no downstream style plugin re-processes — and chokes
|
|
431
|
+
// on — the same entry.
|
|
432
|
+
var resolveScopedDynamicStyleValues = function (style, elementTag, params, options) {
|
|
433
|
+
if (!style) {
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
var inlineStyleOverrides = {};
|
|
437
|
+
for (var _i = 0, _a = Object.keys(style); _i < _a.length; _i++) {
|
|
438
|
+
var cssProperty = _a[_i];
|
|
439
|
+
var styleValue = style[cssProperty];
|
|
440
|
+
var camelCaseProperty = cssProperty.replace(/-([a-z])/g, function (_, letter) {
|
|
441
|
+
return letter.toUpperCase();
|
|
442
|
+
});
|
|
443
|
+
// A pre-resolved expression style value (e.g. a data-source-bound style whose
|
|
444
|
+
// mapper already produced the full member-access expression). The UIDL style
|
|
445
|
+
// type is narrowed to static|dynamic, so read the discriminator via a cast.
|
|
446
|
+
// Inline the parsed expression and strip it so no CSS/styled-jsx plugin sees it.
|
|
447
|
+
var rawStyleValue = styleValue;
|
|
448
|
+
if (rawStyleValue.type === 'expr') {
|
|
449
|
+
var exprContent = rawStyleValue.content;
|
|
450
|
+
if (typeof exprContent === 'string' && exprContent.length > 0) {
|
|
451
|
+
inlineStyleOverrides[camelCaseProperty] = new ParsedASTNode(parseJSExpressionAsAST(exprContent));
|
|
452
|
+
delete style[cssProperty];
|
|
453
|
+
}
|
|
454
|
+
continue;
|
|
455
|
+
}
|
|
456
|
+
// Skip: `token` → CSS variable (handled by the style plugin); a SIMPLE `prop`
|
|
457
|
+
// (no refPath) → the style plugin's `${props.x}` interpolation. A prop WITH a
|
|
458
|
+
// refPath (an object prop's field, e.g. `product.color`) MUST be inlined here
|
|
459
|
+
// instead — styled-jsx's prop case emits only `props.<id>` and would drop the
|
|
460
|
+
// refPath, producing `props.product` instead of `props.product.color`.
|
|
461
|
+
var isSimpleProp = styleValue.type === 'dynamic' &&
|
|
462
|
+
styleValue.content.referenceType === 'prop' &&
|
|
463
|
+
!(styleValue.content.refPath && styleValue.content.refPath.length > 0);
|
|
464
|
+
if (styleValue.type !== 'dynamic' ||
|
|
465
|
+
styleValue.content.referenceType === 'token' ||
|
|
466
|
+
isSimpleProp) {
|
|
467
|
+
continue;
|
|
468
|
+
}
|
|
469
|
+
var resolvedExpr = resolveDynamicReferenceExpression(styleValue, params, options);
|
|
470
|
+
var fallback = styleValue.content.fallback;
|
|
471
|
+
var finalExpr = fallback !== undefined && fallback !== ''
|
|
472
|
+
? types.logicalExpression('||', resolvedExpr, convertValueToLiteral(fallback))
|
|
473
|
+
: resolvedExpr;
|
|
474
|
+
inlineStyleOverrides[camelCaseProperty] = new ParsedASTNode(finalExpr);
|
|
475
|
+
delete style[cssProperty];
|
|
476
|
+
}
|
|
477
|
+
if (Object.keys(inlineStyleOverrides).length > 0) {
|
|
478
|
+
addAttributeToJSXTag(elementTag, 'style', inlineStyleOverrides);
|
|
479
|
+
}
|
|
480
|
+
};
|
|
388
481
|
var generateElementNode = function (node, params, jsxOptions) {
|
|
389
482
|
var dependencies = params.dependencies, nodesLookup = params.nodesLookup;
|
|
390
483
|
var options = __assign(__assign({}, DEFAULT_JSX_OPTIONS), jsxOptions);
|
|
391
|
-
var _a = node.content, elementType = _a.elementType, selfClosing = _a.selfClosing, children = _a.children, key = _a.key, attrs = _a.attrs, dependency = _a.dependency, events = _a.events;
|
|
484
|
+
var _a = node.content, elementType = _a.elementType, selfClosing = _a.selfClosing, children = _a.children, key = _a.key, attrs = _a.attrs, dependency = _a.dependency, events = _a.events, style = _a.style;
|
|
392
485
|
var originalElementName = elementType || 'component';
|
|
393
486
|
var tagName = originalElementName;
|
|
394
487
|
// Check if this is a fragment element - normalize to Fragment before processing
|
|
@@ -434,6 +527,7 @@ var generateElementNode = function (node, params, jsxOptions) {
|
|
|
434
527
|
if (attrs) {
|
|
435
528
|
addAttributesToJSXTag(attrs, elementTag, options, params, node.content.semanticType || elementType);
|
|
436
529
|
}
|
|
530
|
+
resolveScopedDynamicStyleValues(style, elementTag, params, options);
|
|
437
531
|
if (events) {
|
|
438
532
|
Object.keys(events).forEach(function (eventKey) {
|
|
439
533
|
addEventHandlerToTag(elementTag, eventKey, events[eventKey], params, options);
|
|
@@ -1057,7 +1151,7 @@ var generateDataSourceNode = function (node, params, options) {
|
|
|
1057
1151
|
if (property.type === 'static') {
|
|
1058
1152
|
// Special handling for filters array - convert dynamic destinations
|
|
1059
1153
|
if (attrKey === 'filters' && Array.isArray(property.content)) {
|
|
1060
|
-
|
|
1154
|
+
var filterEntries = property.content.map(function (filter) {
|
|
1061
1155
|
return types.objectExpression([
|
|
1062
1156
|
types.objectProperty(types.identifier('source'), types.stringLiteral(filter.source || '')),
|
|
1063
1157
|
types.objectProperty(types.identifier('destination'), ASTUtils.convertFilterDestinationToExpression(filter.destination, {
|
|
@@ -1065,7 +1159,15 @@ var generateDataSourceNode = function (node, params, options) {
|
|
|
1065
1159
|
})),
|
|
1066
1160
|
types.objectProperty(types.identifier('operand'), types.stringLiteral(filter.operand || '')),
|
|
1067
1161
|
]);
|
|
1068
|
-
})
|
|
1162
|
+
});
|
|
1163
|
+
// Drop conditions whose destination resolves to an empty value at
|
|
1164
|
+
// runtime (empty string / null / undefined, or an empty
|
|
1165
|
+
// array-overlap set) so a "show all" reset means no filter rather
|
|
1166
|
+
// than a query that matches zero rows. Mirrors the Next.js pages
|
|
1167
|
+
// path's `buildNonEmptyDestinationPredicate` (kept inline here
|
|
1168
|
+
// because teleport-plugin-common must not depend on the
|
|
1169
|
+
// next-data-source plugin).
|
|
1170
|
+
acc.push(types.objectProperty(types.stringLiteral(attrKey), types.callExpression(types.memberExpression(types.arrayExpression(filterEntries), types.identifier('filter')), [buildNonEmptyFilterDestinationPredicate()])));
|
|
1069
1171
|
}
|
|
1070
1172
|
else {
|
|
1071
1173
|
acc.push(types.objectProperty(types.stringLiteral(attrKey), resolveObjectValue(property)));
|
|
@@ -1186,6 +1288,14 @@ var generateCMSListRepeaterNode = function (node, params, options) {
|
|
|
1186
1288
|
repeaterItemsExpr = types.logicalExpression('||', expr, types.arrayExpression([]));
|
|
1187
1289
|
params.globalReferences.push('ecommerce');
|
|
1188
1290
|
}
|
|
1291
|
+
else if (source === 'ecommerceCategories') {
|
|
1292
|
+
// The `E-Commerce Categories` global (the nested category tree) is baked
|
|
1293
|
+
// onto the ecommerce context as `ecommerce.ecommerceCategories`. Fixed
|
|
1294
|
+
// one-segment path (independent of the item name) → `ecommerce?.ecommerceCategories || []`.
|
|
1295
|
+
var expr = types.optionalMemberExpression(types.identifier('ecommerce'), types.identifier('ecommerceCategories'), false, true);
|
|
1296
|
+
repeaterItemsExpr = types.logicalExpression('||', expr, types.arrayExpression([]));
|
|
1297
|
+
params.globalReferences.push('ecommerce');
|
|
1298
|
+
}
|
|
1189
1299
|
else {
|
|
1190
1300
|
// Resolve any global-state reference encoded in `source` and register it
|
|
1191
1301
|
// so the `next-global-state` component plugin destructures the matching
|