jtlt 0.14.0 → 0.16.0
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/.c8rc.json +1 -0
- package/CHANGES.md +16 -0
- package/README.md +5 -4
- package/demo/codemirror.esm.js +50 -15
- package/dist/JSONPathTransformer.d.ts.map +1 -1
- package/dist/JSONPathTransformerContext.d.ts +102 -0
- package/dist/JSONPathTransformerContext.d.ts.map +1 -1
- package/dist/XPathTransformerContext.d.ts +104 -0
- package/dist/XPathTransformerContext.d.ts.map +1 -1
- package/dist/context-extensions.d.ts +24 -0
- package/dist/extendContext.d.ts +10 -0
- package/dist/extendContext.d.ts.map +1 -0
- package/dist/index.d.ts +30 -3
- package/dist/index.d.ts.map +1 -1
- package/docs/TO-DO.md +15 -1
- package/package.json +19 -14
- package/pnpm-workspace.yaml +4 -4
- package/src/JSONPathTransformer.js +3 -1
- package/src/JSONPathTransformerContext.js +162 -12
- package/src/XPathTransformerContext.js +162 -9
- package/src/context-extensions.d.ts +24 -0
- package/src/extendContext.js +21 -0
- package/src/index.js +22 -3
- package/tsconfig.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export type TemplateObject<T, U, TCtx> = {
|
|
|
34
34
|
*/
|
|
35
35
|
template: TemplateFunction<T, U, TCtx>;
|
|
36
36
|
};
|
|
37
|
-
export type TemplateFunction<T, U, TCtx> = (this: TCtx, value: ResultType<U>, cfg?: {
|
|
37
|
+
export type TemplateFunction<T, U, TCtx> = (this: TCtx & import('./context-extensions.js').ContextExtensions, value: ResultType<U>, cfg?: {
|
|
38
38
|
mode?: string;
|
|
39
39
|
}) => ResultType<T> | void | Promise<ResultType<T> | void>;
|
|
40
40
|
export type JSONPathTemplateObject<T extends "json" | "string" | "dom"> = TemplateObject<T, "json", import('./JSONPathTransformerContext.js').default<T>>;
|
|
@@ -165,12 +165,21 @@ export type BaseJTLTOptions<T, E extends boolean | undefined = false> = {
|
|
|
165
165
|
* Parent property name for context
|
|
166
166
|
*/
|
|
167
167
|
parentProperty?: string;
|
|
168
|
+
/**
|
|
169
|
+
* Parameter values supplied at
|
|
170
|
+
* runtime, mirroring the stylesheet parameters an XSLT processor is handed.
|
|
171
|
+
* A `this.param(name, default)` declaration whose name appears here resolves
|
|
172
|
+
* to this value instead of its default, and `$name` references such a
|
|
173
|
+
* parameter from any template.
|
|
174
|
+
*/
|
|
175
|
+
params?: Record<string, unknown>;
|
|
168
176
|
};
|
|
169
177
|
export type JSONPathJTLTOptions<T extends "json" | "string" | "dom" = "json", E extends boolean | undefined = false> = BaseJTLTOptions<T, E> & {
|
|
170
178
|
templates?: JSONPathTemplateArray<T>[] | TemplateFunction<T, "json", import('./JSONPathTransformerContext.js').default<T>>;
|
|
171
179
|
template?: JSONPathTemplateObject<T> | TemplateFunction<T, "json", import('./JSONPathTransformerContext.js').default>;
|
|
172
180
|
query?: TemplateFunction<T, "json", import('./JSONPathTransformerContext.js').default>;
|
|
173
181
|
forQuery?: [string, TemplateFunction<T, "json", import('./XPathTransformerContext.js').default>];
|
|
182
|
+
extensions?: Record<string, unknown> & ThisType<import('./JSONPathTransformerContext.js').default<T> & import('./context-extensions.js').ContextExtensions>;
|
|
174
183
|
engineType?: 'jsonpath';
|
|
175
184
|
outputType?: T;
|
|
176
185
|
};
|
|
@@ -179,6 +188,7 @@ export type XPathJTLTOptions<T extends "json" | "string" | "dom", E extends bool
|
|
|
179
188
|
template?: XPathTemplateObject<T> | TemplateFunction<T, "dom", import('./XPathTransformerContext.js').default>;
|
|
180
189
|
query?: TemplateFunction<T, "dom", import('./XPathTransformerContext.js').default>;
|
|
181
190
|
forQuery?: [string, TemplateFunction<T, "dom", import('./JSONPathTransformerContext.js').default>];
|
|
191
|
+
extensions?: Record<string, unknown> & ThisType<import('./XPathTransformerContext.js').default & import('./context-extensions.js').ContextExtensions>;
|
|
182
192
|
engineType: 'xpath';
|
|
183
193
|
xpathVersion?: 1 | 2 | 3.1;
|
|
184
194
|
outputType?: T;
|
|
@@ -208,11 +218,15 @@ export type JTLTOptions<E extends boolean | undefined = boolean | undefined> = J
|
|
|
208
218
|
* @property {TemplateFunction<T, U, TCtx>} template - Template function
|
|
209
219
|
*/
|
|
210
220
|
/**
|
|
211
|
-
* A callable template function with an engine-specific `this`.
|
|
221
|
+
* A callable template function with an engine-specific `this`. The `this`
|
|
222
|
+
* type is intersected with {@link ContextExtensions} so helpers registered
|
|
223
|
+
* through the `extensions` option are visible once a consumer augments that
|
|
224
|
+
* interface.
|
|
212
225
|
* @template T
|
|
213
226
|
* @template U
|
|
214
227
|
* @template TCtx
|
|
215
|
-
* @typedef {(this: TCtx
|
|
228
|
+
* @typedef {(this: TCtx &
|
|
229
|
+
* import('./context-extensions.js').ContextExtensions,
|
|
216
230
|
* value: ResultType<U>,
|
|
217
231
|
* cfg?: {mode?: string}
|
|
218
232
|
* ) => ResultType<T>|void|Promise<ResultType<T>|void>} TemplateFunction
|
|
@@ -371,6 +385,11 @@ export type JTLTOptions<E extends boolean | undefined = boolean | undefined> = J
|
|
|
371
385
|
* transformer.
|
|
372
386
|
* @property {object} [parent] Parent object for context
|
|
373
387
|
* @property {string} [parentProperty] Parent property name for context
|
|
388
|
+
* @property {Record<string, unknown>} [params] Parameter values supplied at
|
|
389
|
+
* runtime, mirroring the stylesheet parameters an XSLT processor is handed.
|
|
390
|
+
* A `this.param(name, default)` declaration whose name appears here resolves
|
|
391
|
+
* to this value instead of its default, and `$name` references such a
|
|
392
|
+
* parameter from any template.
|
|
374
393
|
*/
|
|
375
394
|
/**
|
|
376
395
|
* JSONPath engine options with context-aware template typing.
|
|
@@ -389,6 +408,10 @@ export type JTLTOptions<E extends boolean | undefined = boolean | undefined> = J
|
|
|
389
408
|
* forQuery?: [string, TemplateFunction<T, "json",
|
|
390
409
|
* import('./XPathTransformerContext.js').default
|
|
391
410
|
* >],
|
|
411
|
+
* extensions?: Record<string, unknown> & ThisType<
|
|
412
|
+
* import('./JSONPathTransformerContext.js').default<T> &
|
|
413
|
+
* import('./context-extensions.js').ContextExtensions
|
|
414
|
+
* >,
|
|
392
415
|
* engineType?: 'jsonpath',
|
|
393
416
|
* outputType?: T
|
|
394
417
|
* }} JSONPathJTLTOptions
|
|
@@ -410,6 +433,10 @@ export type JTLTOptions<E extends boolean | undefined = boolean | undefined> = J
|
|
|
410
433
|
* forQuery?: [string, TemplateFunction<T, "dom",
|
|
411
434
|
* import('./JSONPathTransformerContext.js').default
|
|
412
435
|
* >],
|
|
436
|
+
* extensions?: Record<string, unknown> & ThisType<
|
|
437
|
+
* import('./XPathTransformerContext.js').default &
|
|
438
|
+
* import('./context-extensions.js').ContextExtensions
|
|
439
|
+
* >,
|
|
413
440
|
* engineType: 'xpath',
|
|
414
441
|
* xpathVersion?: 1|2|3.1,
|
|
415
442
|
* outputType?: T
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"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"}
|
package/docs/TO-DO.md
CHANGED
|
@@ -88,7 +88,21 @@
|
|
|
88
88
|
|
|
89
89
|
8. jtlt as templating engine (including zodexy-aware path expressions like @blob() for jsonpath-plus with `copyOf`/`valueOf` `document(...url...)`; work on **schema-driven** search forms too
|
|
90
90
|
|
|
91
|
-
9.
|
|
91
|
+
9. Note that while we could allow `template` to act as a sync function with sync calls to `this.valueOf` even when indexedDB was used within that latter call, the problem is that with the easy solution, it would require adding content to output after subsequent synchronous calls within the function did so.
|
|
92
|
+
|
|
93
|
+
```js
|
|
94
|
+
const args = {
|
|
95
|
+
template () {
|
|
96
|
+
this.valueOf({select: "indexedDB('db','store').*.name"}); // resolves later
|
|
97
|
+
this.string('!'); // appends NOW
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
// -> "!Alice,Bob,Charlie" (not "Alice,Bob,Charlie!")
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
We'd otherwise have to refactor a great deal to maintain a buffer.
|
|
104
|
+
|
|
105
|
+
10. Consider implementing the following elements from <https://www.w3.org/TR/xslt-30/>
|
|
92
106
|
which are not yet implemented.
|
|
93
107
|
|
|
94
108
|
xsl:accept
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jtlt",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"author": "Brett Zamir",
|
|
6
6
|
"contributors": [],
|
|
@@ -8,12 +8,17 @@
|
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
9
|
"main": "src/index-node.js",
|
|
10
10
|
"exports": {
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
"
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"browser": {
|
|
14
|
+
"import": "./src/index-browser.js"
|
|
15
|
+
},
|
|
16
|
+
"node": {
|
|
17
|
+
"import": "./src/index-node.js"
|
|
18
|
+
}
|
|
14
19
|
},
|
|
15
|
-
"
|
|
16
|
-
"
|
|
20
|
+
"./context-extensions": {
|
|
21
|
+
"types": "./dist/context-extensions.d.ts"
|
|
17
22
|
}
|
|
18
23
|
},
|
|
19
24
|
"engines": {
|
|
@@ -29,12 +34,12 @@
|
|
|
29
34
|
"@codemirror/lang-json": "^6.0.2",
|
|
30
35
|
"@codemirror/lang-xml": "^6.1.0",
|
|
31
36
|
"@codemirror/language": "^6.12.4",
|
|
32
|
-
"@codemirror/state": "^6.7.
|
|
37
|
+
"@codemirror/state": "^6.7.4",
|
|
33
38
|
"@lezer/highlight": "^1.2.3",
|
|
34
39
|
"codemirror": "^6.0.2",
|
|
35
40
|
"fontoxpath": "^3.34.0",
|
|
36
41
|
"idb": "^8.0.3",
|
|
37
|
-
"jamilih": "0.69.
|
|
42
|
+
"jamilih": "0.69.1",
|
|
38
43
|
"jhtml": "0.7.3",
|
|
39
44
|
"jsdom": "30.0.1",
|
|
40
45
|
"jsonpath-plus": "10.4.0",
|
|
@@ -51,13 +56,13 @@
|
|
|
51
56
|
"@types/chai": "^5.2.3",
|
|
52
57
|
"@types/jsdom": "^30.0.0",
|
|
53
58
|
"@types/mocha": "^10.0.10",
|
|
54
|
-
"baseline-browser-mapping": "^2.11.
|
|
59
|
+
"baseline-browser-mapping": "^2.11.21",
|
|
55
60
|
"c8": "^12.0.0",
|
|
56
61
|
"chai": "^6.2.2",
|
|
57
|
-
"eslint": "^10.
|
|
58
|
-
"eslint-config-ash-nazg": "^43.1.
|
|
59
|
-
"indexeddbshim": "^
|
|
60
|
-
"mocha": "^
|
|
62
|
+
"eslint": "^10.10.0",
|
|
63
|
+
"eslint-config-ash-nazg": "^43.1.7",
|
|
64
|
+
"indexeddbshim": "^19.0.1",
|
|
65
|
+
"mocha": "^12.0.0",
|
|
61
66
|
"open": "^11.0.2",
|
|
62
67
|
"rollup": "^4.63.1",
|
|
63
68
|
"typescript": "^7.0.2"
|
|
@@ -74,7 +79,7 @@
|
|
|
74
79
|
"start": "open http://localhost:8021/demo/ && static -p 8021",
|
|
75
80
|
"attw": "attw --pack . --profile esm-only",
|
|
76
81
|
"tsc": "tsc",
|
|
77
|
-
"build": "tsc -p tsconfig-prod.json && npm run rollup",
|
|
82
|
+
"build": "tsc -p tsconfig-prod.json && cp src/context-extensions.d.ts dist/context-extensions.d.ts && npm run rollup",
|
|
78
83
|
"rollup": "rollup -c",
|
|
79
84
|
"copy-simple-get-json": "cp -r node_modules/simple-get-json/dist/index-es.js demo/vendor/simple-get-json/dist/index-es.js",
|
|
80
85
|
"copy-jhtml": "cp -Rf node_modules/jhtml/src demo/vendor/jhtml",
|
package/pnpm-workspace.yaml
CHANGED
|
@@ -3,7 +3,6 @@ allowBuilds:
|
|
|
3
3
|
canvas: true
|
|
4
4
|
is-hidden-file: true
|
|
5
5
|
libxmljs: true
|
|
6
|
-
sqlite3: true
|
|
7
6
|
unrs-resolver: true
|
|
8
7
|
minimumReleaseAgeExclude:
|
|
9
8
|
- '@rollup/rollup-android-arm-eabi@4.63.0'
|
|
@@ -33,9 +32,10 @@ minimumReleaseAgeExclude:
|
|
|
33
32
|
- '@rollup/rollup-win32-x64-msvc@4.63.0'
|
|
34
33
|
- rollup@4.63.0
|
|
35
34
|
- jhtml@0.7.2 || 0.7.3
|
|
36
|
-
- eslint-config-ash-nazg@43.1.0
|
|
35
|
+
- eslint-config-ash-nazg@43.1.0 || 43.1.6
|
|
37
36
|
- eslint-plugin-escompat@3.12.0
|
|
38
|
-
- eslint-plugin-jsdoc@64.3.0
|
|
39
|
-
- indexeddbshim@17.4.1 || 17.4.2 || 17.4.3
|
|
37
|
+
- eslint-plugin-jsdoc@64.3.0 || 64.3.3
|
|
38
|
+
- indexeddbshim@17.4.1 || 17.4.2 || 17.4.3 || 17.5.0 || 17.6.0
|
|
40
39
|
- open@11.0.2
|
|
41
40
|
- powershell-utils@0.2.1
|
|
41
|
+
- websql-configurable@4.0.0
|
|
@@ -171,7 +171,9 @@ class JSONPathTransformer {
|
|
|
171
171
|
*/
|
|
172
172
|
const ret = /** @type {import('./index.js').JSONPathTemplateObject<T>} */ (
|
|
173
173
|
templateObj
|
|
174
|
-
|
|
174
|
+
// `this` carries runtime `extensions`; a consumer's `ContextExtensions`
|
|
175
|
+
// augmentation would otherwise reject the bare context here.
|
|
176
|
+
).template.call(/** @type {any} */ (jte), undefined, {mode});
|
|
175
177
|
|
|
176
178
|
if (ret !== null && typeof ret !== 'undefined' &&
|
|
177
179
|
typeof ret.then === 'function') {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {JSONPath as jsonpath} from 'jsonpath-plus';
|
|
2
2
|
import JSONPathTransformer from './JSONPathTransformer.js';
|
|
3
3
|
import {maybeAsyncLoop} from './maybeAsync.js';
|
|
4
|
+
import applyExtensions from './extendContext.js';
|
|
4
5
|
import {
|
|
5
6
|
parseIndexedDBExpression, queryIndexedDB, resolveIndexedDBQuery
|
|
6
7
|
} from './indexedDB.js';
|
|
@@ -98,6 +99,14 @@ const escapeRegexReplacement = (string) => {
|
|
|
98
99
|
* Priority resolver function
|
|
99
100
|
* @property {import('./index.js').JSONPathTemplateObject<T>[]|
|
|
100
101
|
* import('./index.js').JSONPathTemplateArray<T>[]} [templates]
|
|
102
|
+
* @property {Record<string, unknown>} [params] Runtime parameter values
|
|
103
|
+
* (like an XSLT processor's stylesheet parameters); a `param()` with a
|
|
104
|
+
* matching name uses this value instead of its declared default
|
|
105
|
+
* @property {Record<string, unknown> & ThisType<
|
|
106
|
+
* import('./JSONPathTransformerContext.js').default<T> &
|
|
107
|
+
* import('./context-extensions.js').ContextExtensions
|
|
108
|
+
* >} [extensions] Extra methods/values
|
|
109
|
+
* merged onto this context so templates can call `this.myHelper()`
|
|
101
110
|
*/
|
|
102
111
|
|
|
103
112
|
/**
|
|
@@ -145,10 +154,26 @@ class JSONPathTransformerContext {
|
|
|
145
154
|
this._currPath = undefined;
|
|
146
155
|
/** @type {Record<string, any> | undefined} */
|
|
147
156
|
this._params = undefined;
|
|
157
|
+
/**
|
|
158
|
+
* Parameter values supplied at runtime via `config.params`, mirroring the
|
|
159
|
+
* stylesheet parameters an XSLT processor is handed. A `param()` whose
|
|
160
|
+
* name appears here takes this value instead of its declared default.
|
|
161
|
+
* @type {Record<string, unknown>}
|
|
162
|
+
*/
|
|
163
|
+
this._runtimeParams = /** @type {any} */ (config).params || {};
|
|
164
|
+
/**
|
|
165
|
+
* Parameters staged by `withParam()` and consumed (then cleared) by the
|
|
166
|
+
* next `callTemplate()` or `applyTemplates()` call.
|
|
167
|
+
* @type {{name: string, select?: string, value?: unknown}[] | undefined}
|
|
168
|
+
*/
|
|
169
|
+
this._pendingParams = undefined;
|
|
148
170
|
/** @type {string[]} */
|
|
149
171
|
this._preserveSpaceElements = [];
|
|
150
172
|
/** @type {string[]} */
|
|
151
173
|
this._stripSpaceElements = [];
|
|
174
|
+
if (config.extensions) {
|
|
175
|
+
applyExtensions(this, config.extensions);
|
|
176
|
+
}
|
|
152
177
|
}
|
|
153
178
|
|
|
154
179
|
/**
|
|
@@ -264,6 +289,12 @@ class JSONPathTransformerContext {
|
|
|
264
289
|
mode = select.mode ?? mode;
|
|
265
290
|
select = select.select ?? select;
|
|
266
291
|
}
|
|
292
|
+
// Resolve params staged via `this.withParam()` in the calling context,
|
|
293
|
+
// once, before iterating; each matched template receives them
|
|
294
|
+
// (`xsl:apply-templates` / `xsl:with-param`).
|
|
295
|
+
/** @type {Record<string, unknown>} */
|
|
296
|
+
const appliedParams = {};
|
|
297
|
+
this._drainPendingParams(appliedParams);
|
|
267
298
|
if (!this._initialized) {
|
|
268
299
|
select ||= '$';
|
|
269
300
|
this._currPath = '$';
|
|
@@ -580,7 +611,7 @@ class JSONPathTransformerContext {
|
|
|
580
611
|
|
|
581
612
|
// Set up parameter context for valueOf() access in templates
|
|
582
613
|
const prevTemplateParams = that._params;
|
|
583
|
-
that._params = {0: value};
|
|
614
|
+
that._params = {0: value, ...appliedParams};
|
|
584
615
|
|
|
585
616
|
/**
|
|
586
617
|
* The template may return synchronously or return a Promise (e.g. from
|
|
@@ -591,7 +622,9 @@ class JSONPathTransformerContext {
|
|
|
591
622
|
/** @type {import('./index.js').JSONPathTemplateObject<T>} */ (
|
|
592
623
|
templateObj
|
|
593
624
|
).template.call(
|
|
594
|
-
|
|
625
|
+
// `this` carries runtime `extensions`; a consumer's
|
|
626
|
+
// `ContextExtensions` augmentation would otherwise reject `that`.
|
|
627
|
+
/** @type {any} */ (that), value, {mode, parent, parentProperty}
|
|
595
628
|
);
|
|
596
629
|
|
|
597
630
|
// Restore previous parameter context
|
|
@@ -699,6 +732,10 @@ class JSONPathTransformerContext {
|
|
|
699
732
|
const params = {};
|
|
700
733
|
this._params = params;
|
|
701
734
|
|
|
735
|
+
// Params staged via `this.withParam()` seed the set; explicit `withParam`
|
|
736
|
+
// entries below override any of the same name (`xsl:with-param`).
|
|
737
|
+
this._drainPendingParams(params);
|
|
738
|
+
|
|
702
739
|
withParams.forEach((withParam, index) => {
|
|
703
740
|
const value = withParam.value !== undefined
|
|
704
741
|
? withParam.value
|
|
@@ -722,7 +759,11 @@ class JSONPathTransformerContext {
|
|
|
722
759
|
);
|
|
723
760
|
}
|
|
724
761
|
|
|
725
|
-
const result = templateObj.template.call(
|
|
762
|
+
const result = templateObj.template.call(
|
|
763
|
+
// `this` carries runtime `extensions`; a consumer's `ContextExtensions`
|
|
764
|
+
// augmentation would otherwise reject the bare context.
|
|
765
|
+
/** @type {any} */ (this), this._contextObj, {}
|
|
766
|
+
);
|
|
726
767
|
if (typeof result !== 'undefined') {
|
|
727
768
|
/** @type {any} */ (results).append(result);
|
|
728
769
|
}
|
|
@@ -1155,7 +1196,7 @@ class JSONPathTransformerContext {
|
|
|
1155
1196
|
return 0;
|
|
1156
1197
|
}
|
|
1157
1198
|
if (Number.isNaN(an)) {
|
|
1158
|
-
return
|
|
1199
|
+
return order;
|
|
1159
1200
|
}
|
|
1160
1201
|
if (Number.isNaN(bn)) {
|
|
1161
1202
|
return -order;
|
|
@@ -1305,9 +1346,8 @@ class JSONPathTransformerContext {
|
|
|
1305
1346
|
// Check if it's a parameter reference ($param, not $.jsonpath)
|
|
1306
1347
|
if (trimmed.startsWith('$') && !trimmed.startsWith('$.')) {
|
|
1307
1348
|
const paramName = trimmed.slice(1);
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
: undefined;
|
|
1349
|
+
const {has, value} = this._lookupParam(paramName);
|
|
1350
|
+
return has ? value : undefined;
|
|
1311
1351
|
}
|
|
1312
1352
|
// Check if it's a string literal
|
|
1313
1353
|
if ((trimmed.startsWith("'") && trimmed.endsWith("'")) ||
|
|
@@ -1346,9 +1386,8 @@ class JSONPathTransformerContext {
|
|
|
1346
1386
|
!valueExpr.includes('.') && !valueExpr.includes('[')) {
|
|
1347
1387
|
// Parameter reference (no path components)
|
|
1348
1388
|
const paramName = valueExpr.trim().slice(1);
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
: 0;
|
|
1389
|
+
const {has, value} = this._lookupParam(paramName);
|
|
1390
|
+
numValue = has ? value : 0;
|
|
1352
1391
|
} else {
|
|
1353
1392
|
// Try to parse as number or evaluate as JSONPath
|
|
1354
1393
|
const trimmed = valueExpr.trim();
|
|
@@ -1376,8 +1415,9 @@ class JSONPathTransformerContext {
|
|
|
1376
1415
|
// Check if this is a parameter reference (starts with $)
|
|
1377
1416
|
if (selectStr && selectStr.startsWith('$')) {
|
|
1378
1417
|
const paramName = selectStr.slice(1);
|
|
1379
|
-
|
|
1380
|
-
|
|
1418
|
+
const {has, value} = this._lookupParam(paramName);
|
|
1419
|
+
result = has
|
|
1420
|
+
? value
|
|
1381
1421
|
: this.get(/** @type {string} */ (selectStr), false);
|
|
1382
1422
|
} else {
|
|
1383
1423
|
result = this.get(/** @type {string} */ (select), false);
|
|
@@ -1614,6 +1654,116 @@ class JSONPathTransformerContext {
|
|
|
1614
1654
|
return this;
|
|
1615
1655
|
}
|
|
1616
1656
|
|
|
1657
|
+
/**
|
|
1658
|
+
* Normalize a `param()`/`withParam()` default/value argument to `{select}`
|
|
1659
|
+
* or `{value}`: a bare string is a JSONPath expression, `{value}` is a
|
|
1660
|
+
* literal, and `{select}` (or an omitted argument) is an expression.
|
|
1661
|
+
* @param {string|{select?: string, value?: unknown}|undefined} arg
|
|
1662
|
+
* @returns {{select?: string, value?: unknown}}
|
|
1663
|
+
* @private
|
|
1664
|
+
*/
|
|
1665
|
+
// eslint-disable-next-line class-methods-use-this -- pure helper
|
|
1666
|
+
_paramSpec (arg) {
|
|
1667
|
+
if (typeof arg === 'string') {
|
|
1668
|
+
return {select: arg};
|
|
1669
|
+
}
|
|
1670
|
+
if (arg && 'value' in arg) {
|
|
1671
|
+
return {value: arg.value};
|
|
1672
|
+
}
|
|
1673
|
+
// `{select}` object, or omitted (a default of `undefined`).
|
|
1674
|
+
return {select: arg && arg.select};
|
|
1675
|
+
}
|
|
1676
|
+
|
|
1677
|
+
/**
|
|
1678
|
+
* Look up a parameter by name across the active with-param scope and the
|
|
1679
|
+
* runtime `config.params`, so runtime-supplied params act like XSLT global
|
|
1680
|
+
* parameters (visible to every template and expression).
|
|
1681
|
+
* @param {string} name
|
|
1682
|
+
* @returns {{has: boolean, value: any}}
|
|
1683
|
+
* @private
|
|
1684
|
+
*/
|
|
1685
|
+
_lookupParam (name) {
|
|
1686
|
+
if (this._params && Object.hasOwn(this._params, name)) {
|
|
1687
|
+
return {has: true, value: this._params[name]};
|
|
1688
|
+
}
|
|
1689
|
+
if (Object.hasOwn(this._runtimeParams, name)) {
|
|
1690
|
+
return {has: true, value: this._runtimeParams[name]};
|
|
1691
|
+
}
|
|
1692
|
+
return {has: false, value: undefined};
|
|
1693
|
+
}
|
|
1694
|
+
|
|
1695
|
+
/**
|
|
1696
|
+
* Resolve a `{select}` or `{value}` parameter spec to its value in the
|
|
1697
|
+
* current context.
|
|
1698
|
+
* @param {{select?: string, value?: unknown}} spec
|
|
1699
|
+
* @returns {any}
|
|
1700
|
+
* @private
|
|
1701
|
+
*/
|
|
1702
|
+
_resolveParam (spec) {
|
|
1703
|
+
if ('value' in spec) {
|
|
1704
|
+
return spec.value;
|
|
1705
|
+
}
|
|
1706
|
+
return spec.select === undefined ? undefined : this.get(spec.select, false);
|
|
1707
|
+
}
|
|
1708
|
+
|
|
1709
|
+
/**
|
|
1710
|
+
* Resolve staged `withParam()` entries into `target` (in the calling
|
|
1711
|
+
* context) and clear the staged set. Shared by `callTemplate()` and
|
|
1712
|
+
* `applyTemplates()`.
|
|
1713
|
+
* @param {Record<string, unknown>} target
|
|
1714
|
+
* @returns {void}
|
|
1715
|
+
* @private
|
|
1716
|
+
*/
|
|
1717
|
+
_drainPendingParams (target) {
|
|
1718
|
+
const pending = this._pendingParams;
|
|
1719
|
+
this._pendingParams = undefined;
|
|
1720
|
+
if (!pending) {
|
|
1721
|
+
return;
|
|
1722
|
+
}
|
|
1723
|
+
for (const entry of pending) {
|
|
1724
|
+
target[entry.name] = this._resolveParam(entry);
|
|
1725
|
+
}
|
|
1726
|
+
}
|
|
1727
|
+
|
|
1728
|
+
/**
|
|
1729
|
+
* Declare a template parameter, equivalent to `xsl:param`. Binds `name` to
|
|
1730
|
+
* the given default, unless a value was supplied by the caller (via
|
|
1731
|
+
* `this.withParam()` or `callTemplate`'s `withParam`) or at runtime (via
|
|
1732
|
+
* `config.params`), in which case the supplied value wins.
|
|
1733
|
+
* @param {string} name - Parameter name
|
|
1734
|
+
* @param {string|{select: string}|{value: unknown}} [select] - The default:
|
|
1735
|
+
* a JSONPath expression string, an explicit `{select}`, or a literal
|
|
1736
|
+
* `{value}`. Omitted means a default of `undefined`.
|
|
1737
|
+
* @returns {this}
|
|
1738
|
+
*/
|
|
1739
|
+
param (name, select) {
|
|
1740
|
+
this._params ||= {};
|
|
1741
|
+
const supplied = this._lookupParam(name);
|
|
1742
|
+
// A caller's with-param or a `config.params` value overrides the default.
|
|
1743
|
+
const resolved = supplied.has
|
|
1744
|
+
? supplied.value
|
|
1745
|
+
: this._resolveParam(this._paramSpec(select));
|
|
1746
|
+
this._params[name] = resolved;
|
|
1747
|
+
this.vars[name] = resolved;
|
|
1748
|
+
return this;
|
|
1749
|
+
}
|
|
1750
|
+
|
|
1751
|
+
/**
|
|
1752
|
+
* Stage a parameter for the next `callTemplate()` or `applyTemplates()`
|
|
1753
|
+
* call, equivalent to `xsl:with-param`. The staged set is consumed and
|
|
1754
|
+
* cleared by that call; entries are evaluated in the current (calling)
|
|
1755
|
+
* context.
|
|
1756
|
+
* @param {string} name - Parameter name
|
|
1757
|
+
* @param {string|{select: string}|{value: unknown}} [select] - A JSONPath
|
|
1758
|
+
* expression string, an explicit `{select}`, or a literal `{value}`.
|
|
1759
|
+
* @returns {this}
|
|
1760
|
+
*/
|
|
1761
|
+
withParam (name, select) {
|
|
1762
|
+
this._pendingParams ||= [];
|
|
1763
|
+
this._pendingParams.push({name, ...this._paramSpec(select)});
|
|
1764
|
+
return this;
|
|
1765
|
+
}
|
|
1766
|
+
|
|
1617
1767
|
/**
|
|
1618
1768
|
* @param {unknown} json - JSON data to log
|
|
1619
1769
|
* @returns {void}
|