jtlt 0.13.0 → 0.14.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/CHANGES.md +10 -0
- package/README.md +99 -85
- package/demo/calltemplate-params-demo.js +13 -22
- package/demo/vendor/jhtml/src/SAJJ/SAJJ.ObjectArrayDelegator.js +17 -17
- package/demo/vendor/jhtml/src/SAJJ/SAJJ.js +60 -61
- package/demo/vendor/jhtml/src/jhtml-browser.js +1 -0
- package/demo/vendor/jhtml/src/jhtml-node.js +1 -0
- package/demo/vendor/jhtml/src/jhtml.js +18 -15
- package/dist/AbstractJoiningTransformer.d.ts +5 -5
- package/dist/AbstractJoiningTransformer.d.ts.map +1 -1
- package/dist/JSONPathTransformer.d.ts +13 -12
- package/dist/JSONPathTransformer.d.ts.map +1 -1
- package/dist/JSONPathTransformerContext.d.ts +50 -20
- package/dist/JSONPathTransformerContext.d.ts.map +1 -1
- package/dist/XPathTransformer.d.ts +9 -2
- package/dist/XPathTransformer.d.ts.map +1 -1
- package/dist/XPathTransformerContext.d.ts +46 -9
- package/dist/XPathTransformerContext.d.ts.map +1 -1
- package/dist/index.d.ts +104 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/indexedDB.d.ts +107 -0
- package/dist/indexedDB.d.ts.map +1 -0
- package/dist/maybeAsync.d.ts +15 -0
- package/dist/maybeAsync.d.ts.map +1 -0
- package/docs/API.expanded.md +70 -20
- package/docs/API.md +34 -4
- package/docs/TO-DO.md +2 -2
- package/eslint.config.js +11 -3
- package/package.json +7 -5
- package/pnpm-workspace.yaml +9 -0
- package/src/AbstractJoiningTransformer.js +3 -3
- package/src/JSONPathTransformer.js +45 -7
- package/src/JSONPathTransformerContext.js +157 -22
- package/src/XPathTransformer.js +33 -1
- package/src/XPathTransformerContext.js +136 -16
- package/src/index.js +85 -8
- package/src/indexedDB.js +530 -0
- package/src/maybeAsync.js +44 -0
package/dist/index.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ export type TemplateObject<T, U, TCtx> = {
|
|
|
36
36
|
};
|
|
37
37
|
export type TemplateFunction<T, U, TCtx> = (this: TCtx, value: ResultType<U>, cfg?: {
|
|
38
38
|
mode?: string;
|
|
39
|
-
}) => ResultType<T> | void
|
|
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>>;
|
|
41
41
|
export type XPathTemplateObject<T> = TemplateObject<T, "dom", import('./XPathTransformerContext.js').default>;
|
|
42
42
|
export type XPathTemplateArray<T> = (XPathTemplateObject<T> | [
|
|
@@ -47,17 +47,50 @@ export type JSONPathTemplateArray<T extends "json" | "string" | "dom"> = JSONPat
|
|
|
47
47
|
string,
|
|
48
48
|
TemplateFunction<T, "json", import('./JSONPathTransformerContext.js').default>
|
|
49
49
|
];
|
|
50
|
-
export type
|
|
50
|
+
export type JoiningTransformerContract = {
|
|
51
|
+
append: (item: unknown) => unknown;
|
|
52
|
+
get: () => unknown;
|
|
53
|
+
text?: (txt: string) => unknown;
|
|
54
|
+
string?: (str: unknown, cb?: () => void) => unknown;
|
|
55
|
+
number?: (num: unknown) => unknown;
|
|
56
|
+
object?: (obj: unknown, cb?: unknown, usePropertySets?: unknown, propSets?: unknown) => unknown;
|
|
57
|
+
array?: (arr: unknown, cb?: unknown) => unknown;
|
|
58
|
+
element?: (name: string, atts?: unknown, children?: unknown, cb?: unknown, useAttributeSets?: unknown) => unknown;
|
|
59
|
+
attribute?: (name: string, val: unknown, avoidAttEscape?: unknown) => unknown;
|
|
60
|
+
comment?: (text: string) => unknown;
|
|
61
|
+
processingInstruction?: (target: string, data: string) => unknown;
|
|
62
|
+
plainText?: (str: unknown) => unknown;
|
|
63
|
+
propValue?: (prop: unknown, val: unknown) => unknown;
|
|
64
|
+
rawAppend?: (item: unknown) => unknown;
|
|
65
|
+
namespace?: (prefix: string, namespaceURI: string) => unknown;
|
|
66
|
+
setContext?: (context: unknown) => unknown;
|
|
67
|
+
output?: (cfg: unknown) => unknown;
|
|
68
|
+
mode?: (cfg: unknown) => unknown;
|
|
69
|
+
stylesheet?: (cfg: unknown) => unknown;
|
|
70
|
+
function?: (cfg: unknown) => unknown;
|
|
71
|
+
invokeFunctionByArity?: (name: string, args?: unknown[]) => unknown;
|
|
72
|
+
characterMap?: (name: string, outputCharacters: unknown) => unknown;
|
|
73
|
+
attributeSet?: (name: string, attributes: unknown) => unknown;
|
|
74
|
+
namespaceAlias?: (stylesheetPrefix: string, resultPrefix: string) => unknown;
|
|
75
|
+
};
|
|
76
|
+
export type BuiltinJoiningTransformer = (StringJoiningTransformer | DOMJoiningTransformer | JSONJoiningTransformer);
|
|
77
|
+
export type JoiningTransformer = BuiltinJoiningTransformer | JoiningTransformerContract;
|
|
51
78
|
export type joiningTypes = "json" | "string" | "dom";
|
|
52
|
-
export type ResultType<T, E extends boolean | undefined = false> = T extends "json" ? (E extends true ?
|
|
79
|
+
export type ResultType<T, E extends boolean | undefined = false> = T extends "json" ? (E extends true ? unknown[] : unknown) : T extends "string" ? (E extends true ? string[] : string) : (E extends true ? XMLDocument[] : DocumentFragment | Element);
|
|
53
80
|
export type BaseJTLTOptions<T, E extends boolean | undefined = false> = {
|
|
81
|
+
/**
|
|
82
|
+
* Off by default: the engine awaits any Promise a
|
|
83
|
+
* template returns (e.g. from `await this.indexedDB(...)`). Set `true` to
|
|
84
|
+
* forbid asynchrony — a template that returns a Promise then throws.
|
|
85
|
+
*/
|
|
86
|
+
sync?: boolean;
|
|
54
87
|
/**
|
|
55
88
|
* A callback supplied
|
|
56
89
|
* with a single argument that is the result of this instance's
|
|
57
90
|
* transform() method. When used in TypeScript, this can be made
|
|
58
91
|
* generic as `success<T>(result: T): void`.
|
|
59
92
|
*/
|
|
60
|
-
success
|
|
93
|
+
success?: (result: ResultType<T, E>) => ResultType<T, E> | void;
|
|
61
94
|
/**
|
|
62
95
|
* A JSON
|
|
63
96
|
* object or DOM document (XPath)
|
|
@@ -150,7 +183,7 @@ export type XPathJTLTOptions<T extends "json" | "string" | "dom", E extends bool
|
|
|
150
183
|
xpathVersion?: 1 | 2 | 3.1;
|
|
151
184
|
outputType?: T;
|
|
152
185
|
};
|
|
153
|
-
export type JTLTOptions<E extends boolean | undefined =
|
|
186
|
+
export type JTLTOptions<E extends boolean | undefined = boolean | undefined> = JSONPathJTLTOptions<"json", E> | JSONPathJTLTOptions<"string", E> | JSONPathJTLTOptions<"dom", E> | XPathJTLTOptions<"json", E> | XPathJTLTOptions<"string", E> | XPathJTLTOptions<"dom", E>;
|
|
154
187
|
/**
|
|
155
188
|
* Internal options extension adding private runtime state flags.
|
|
156
189
|
* Not part of the public API surface but used for narrowing casts.
|
|
@@ -182,7 +215,7 @@ export type JTLTOptions<E extends boolean | undefined = any> = JSONPathJTLTOptio
|
|
|
182
215
|
* @typedef {(this: TCtx,
|
|
183
216
|
* value: ResultType<U>,
|
|
184
217
|
* cfg?: {mode?: string}
|
|
185
|
-
* ) => ResultType<T>|void} TemplateFunction
|
|
218
|
+
* ) => ResultType<T>|void|Promise<ResultType<T>|void>} TemplateFunction
|
|
186
219
|
*/
|
|
187
220
|
/**
|
|
188
221
|
* @template {"json"|"string"|"dom"} T
|
|
@@ -209,11 +242,69 @@ export type JTLTOptions<E extends boolean | undefined = any> = JSONPathJTLTOptio
|
|
|
209
242
|
* >]} JSONPathTemplateArray
|
|
210
243
|
*/
|
|
211
244
|
/**
|
|
245
|
+
* The output-sink surface a custom `joiningTransformer` may provide. Only
|
|
246
|
+
* `append` and `get` are required; the rest are optional because the engine
|
|
247
|
+
* guards each call. The built-in joiners' `append`/`string`/… signatures
|
|
248
|
+
* diverge (e.g. the DOM joiner also accepts `Node`), so under
|
|
249
|
+
* `strictFunctionTypes` no single structural type is a supertype of all
|
|
250
|
+
* three; this contract lists the surface with `unknown` parameters, and
|
|
251
|
+
* {@link JoiningTransformer} unions it with the concrete classes so real
|
|
252
|
+
* joiners still type precisely.
|
|
253
|
+
* @typedef {object} JoiningTransformerContract
|
|
254
|
+
* @property {(item: unknown) => unknown} append
|
|
255
|
+
* @property {() => unknown} get
|
|
256
|
+
* @property {(txt: string) => unknown} [text]
|
|
257
|
+
* @property {(str: unknown, cb?: () => void) => unknown} [string]
|
|
258
|
+
* @property {(num: unknown) => unknown} [number]
|
|
259
|
+
* @property {(
|
|
260
|
+
* obj: unknown, cb?: unknown, usePropertySets?: unknown, propSets?: unknown
|
|
261
|
+
* ) => unknown} [object]
|
|
262
|
+
* @property {(arr: unknown, cb?: unknown) => unknown} [array]
|
|
263
|
+
* @property {(
|
|
264
|
+
* name: string, atts?: unknown, children?: unknown,
|
|
265
|
+
* cb?: unknown, useAttributeSets?: unknown
|
|
266
|
+
* ) => unknown} [element]
|
|
267
|
+
* @property {(
|
|
268
|
+
* name: string, val: unknown, avoidAttEscape?: unknown
|
|
269
|
+
* ) => unknown} [attribute]
|
|
270
|
+
* @property {(text: string) => unknown} [comment]
|
|
271
|
+
* @property {(
|
|
272
|
+
* target: string, data: string
|
|
273
|
+
* ) => unknown} [processingInstruction]
|
|
274
|
+
* @property {(str: unknown) => unknown} [plainText]
|
|
275
|
+
* @property {(prop: unknown, val: unknown) => unknown} [propValue]
|
|
276
|
+
* @property {(item: unknown) => unknown} [rawAppend]
|
|
277
|
+
* @property {(prefix: string, namespaceURI: string) => unknown} [namespace]
|
|
278
|
+
* @property {(context: unknown) => unknown} [setContext]
|
|
279
|
+
* @property {(cfg: unknown) => unknown} [output]
|
|
280
|
+
* @property {(cfg: unknown) => unknown} [mode]
|
|
281
|
+
* @property {(cfg: unknown) => unknown} [stylesheet]
|
|
282
|
+
* @property {(cfg: unknown) => unknown} [function]
|
|
283
|
+
* @property {(
|
|
284
|
+
* name: string, args?: unknown[]
|
|
285
|
+
* ) => unknown} [invokeFunctionByArity]
|
|
286
|
+
* @property {(
|
|
287
|
+
* name: string, outputCharacters: unknown
|
|
288
|
+
* ) => unknown} [characterMap]
|
|
289
|
+
* @property {(name: string, attributes: unknown) => unknown} [attributeSet]
|
|
290
|
+
* @property {(
|
|
291
|
+
* stylesheetPrefix: string, resultPrefix: string
|
|
292
|
+
* ) => unknown} [namespaceAlias]
|
|
293
|
+
*/
|
|
294
|
+
/**
|
|
295
|
+
* One of the three built-in joiners. Used where engine internals rely on
|
|
296
|
+
* concrete members (e.g. `_modeConfig`).
|
|
212
297
|
* @typedef {(
|
|
213
298
|
* StringJoiningTransformer|
|
|
214
299
|
* DOMJoiningTransformer|
|
|
215
300
|
* JSONJoiningTransformer
|
|
216
|
-
* )}
|
|
301
|
+
* )} BuiltinJoiningTransformer
|
|
302
|
+
*/
|
|
303
|
+
/**
|
|
304
|
+
* The type accepted for a config `joiningTransformer`: a built-in joiner or
|
|
305
|
+
* any object implementing {@link JoiningTransformerContract}.
|
|
306
|
+
* @typedef {BuiltinJoiningTransformer | JoiningTransformerContract
|
|
307
|
+
* } JoiningTransformer
|
|
217
308
|
*/
|
|
218
309
|
/**
|
|
219
310
|
* @typedef {"json"|"string"|"dom"} joiningTypes
|
|
@@ -222,7 +313,7 @@ export type JTLTOptions<E extends boolean | undefined = any> = JSONPathJTLTOptio
|
|
|
222
313
|
* @template T
|
|
223
314
|
* @template {boolean|undefined} [E=false]
|
|
224
315
|
* @typedef {T extends "json" ?
|
|
225
|
-
* (E extends true ?
|
|
316
|
+
* (E extends true ? unknown[] : unknown) :
|
|
226
317
|
* T extends "string" ?
|
|
227
318
|
* (E extends true ? string[] : string) :
|
|
228
319
|
* (E extends true ? XMLDocument[] :
|
|
@@ -233,9 +324,12 @@ export type JTLTOptions<E extends boolean | undefined = any> = JSONPathJTLTOptio
|
|
|
233
324
|
* @template T
|
|
234
325
|
* @template {boolean|undefined} [E=false]
|
|
235
326
|
* @typedef {object} BaseJTLTOptions
|
|
327
|
+
* @property {boolean} [sync] Off by default: the engine awaits any Promise a
|
|
328
|
+
* template returns (e.g. from `await this.indexedDB(...)`). Set `true` to
|
|
329
|
+
* forbid asynchrony — a template that returns a Promise then throws.
|
|
236
330
|
* @property {(
|
|
237
331
|
* result: ResultType<T, E>
|
|
238
|
-
* ) => ResultType<T, E>|void} success A callback supplied
|
|
332
|
+
* ) => ResultType<T, E>|void} [success] A callback supplied
|
|
239
333
|
* with a single argument that is the result of this instance's
|
|
240
334
|
* transform() method. When used in TypeScript, this can be made
|
|
241
335
|
* generic as `success<T>(result: T): void`.
|
|
@@ -322,7 +416,7 @@ export type JTLTOptions<E extends boolean | undefined = any> = JSONPathJTLTOptio
|
|
|
322
416
|
* }} XPathJTLTOptions
|
|
323
417
|
*/
|
|
324
418
|
/**
|
|
325
|
-
* @template {boolean|undefined} [E=
|
|
419
|
+
* @template {boolean|undefined} [E=boolean|undefined]
|
|
326
420
|
* @typedef {JSONPathJTLTOptions<"json", E> |
|
|
327
421
|
* JSONPathJTLTOptions<"string", E> |
|
|
328
422
|
* JSONPathJTLTOptions<"dom", E> |
|
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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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
export type OpenDBFunction = typeof import("idb").openDB;
|
|
2
|
+
export type IndexedDBResultType = 'value' | 'key' | 'primaryKey' | 'all';
|
|
3
|
+
export type QueryOptions = {
|
|
4
|
+
index?: string;
|
|
5
|
+
range?: {
|
|
6
|
+
lower?: IDBValidKey;
|
|
7
|
+
upper?: IDBValidKey;
|
|
8
|
+
lowerOpen?: boolean;
|
|
9
|
+
upperOpen?: boolean;
|
|
10
|
+
};
|
|
11
|
+
query?: NonNullable<object | string | number>;
|
|
12
|
+
direction?: 'next' | 'nextunique' | 'prev' | 'prevunique';
|
|
13
|
+
count?: number;
|
|
14
|
+
resultType?: IndexedDBResultType;
|
|
15
|
+
};
|
|
16
|
+
export type IdbCursorLike = {
|
|
17
|
+
key: IDBValidKey;
|
|
18
|
+
primaryKey: IDBValidKey;
|
|
19
|
+
value: unknown;
|
|
20
|
+
continue: () => Promise<IdbCursorLike | null>;
|
|
21
|
+
};
|
|
22
|
+
export type IdbRecord = {
|
|
23
|
+
key: IDBValidKey;
|
|
24
|
+
primaryKey: IDBValidKey;
|
|
25
|
+
value: unknown;
|
|
26
|
+
};
|
|
27
|
+
export type IdbQueryTarget = {
|
|
28
|
+
openCursor: (range?: IDBKeyRange | null, direction?: IDBCursorDirection) => Promise<IdbCursorLike | null>;
|
|
29
|
+
openKeyCursor: (range?: IDBKeyRange | null, direction?: IDBCursorDirection) => Promise<IdbCursorLike | null>;
|
|
30
|
+
getAll: (range?: IDBKeyRange | null, count?: number) => Promise<unknown[]>;
|
|
31
|
+
getAllKeys: (range?: IDBKeyRange | null, count?: number) => Promise<IDBValidKey[]>;
|
|
32
|
+
getAllRecords?: ((options?: {
|
|
33
|
+
query?: IDBKeyRange | null;
|
|
34
|
+
count?: number;
|
|
35
|
+
direction?: IDBCursorDirection;
|
|
36
|
+
}) => Promise<IdbRecord[]>);
|
|
37
|
+
};
|
|
38
|
+
export declare function queryIndexedDB(dbName: string, storeName: string, options: QueryOptions & {
|
|
39
|
+
resultType: 'all';
|
|
40
|
+
}): Promise<IdbRecord[]>;
|
|
41
|
+
export declare function queryIndexedDB(dbName: string, storeName: string, options: QueryOptions & {
|
|
42
|
+
resultType: 'key' | 'primaryKey';
|
|
43
|
+
}): Promise<IDBValidKey[]>;
|
|
44
|
+
export declare function queryIndexedDB(dbName: string, storeName: string, options?: QueryOptions): Promise<unknown[]>;
|
|
45
|
+
export type ParsedIndexedDBExpression = {
|
|
46
|
+
dbName: string;
|
|
47
|
+
storeName: string;
|
|
48
|
+
options: QueryOptions | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* - A JSONPath segment applied to the fetched
|
|
51
|
+
* records (e.g. `.*.name` or `[0].name`), with surrounding whitespace
|
|
52
|
+
* trimmed. Used by the JSONPath engine only; the XPath engine exposes
|
|
53
|
+
* `indexedDB()` as a registered XPath function instead (see
|
|
54
|
+
* {@link evaluateXPathWithIndexedDB}).
|
|
55
|
+
*/
|
|
56
|
+
trailing: string;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* @typedef {object} ParsedIndexedDBExpression
|
|
60
|
+
* @property {string} dbName
|
|
61
|
+
* @property {string} storeName
|
|
62
|
+
* @property {QueryOptions|undefined} options
|
|
63
|
+
* @property {string} trailing - A JSONPath segment applied to the fetched
|
|
64
|
+
* records (e.g. `.*.name` or `[0].name`), with surrounding whitespace
|
|
65
|
+
* trimmed. Used by the JSONPath engine only; the XPath engine exposes
|
|
66
|
+
* `indexedDB()` as a registered XPath function instead (see
|
|
67
|
+
* {@link evaluateXPathWithIndexedDB}).
|
|
68
|
+
*/
|
|
69
|
+
/**
|
|
70
|
+
* Detect and parse an `indexedDB(...)` call at the start of a selector string.
|
|
71
|
+
* @param {string} expr
|
|
72
|
+
* @returns {ParsedIndexedDBExpression|null} `null` when `expr` is not an
|
|
73
|
+
* `indexedDB(...)` expression.
|
|
74
|
+
*/
|
|
75
|
+
export declare function parseIndexedDBExpression(expr: string): ParsedIndexedDBExpression | null;
|
|
76
|
+
/**
|
|
77
|
+
* Fetch the records for a parsed `indexedDB(...)` expression and, when a
|
|
78
|
+
* trailing JSONPath segment is present (e.g. `.*.name`), evaluate it against
|
|
79
|
+
* the fetched records. Shared by the JSONPath and XPath engines.
|
|
80
|
+
* @param {ParsedIndexedDBExpression} parsed
|
|
81
|
+
* @param {{preventEval?: boolean}} [options]
|
|
82
|
+
* @returns {Promise<unknown>}
|
|
83
|
+
*/
|
|
84
|
+
export declare function resolveIndexedDBQuery(parsed: ParsedIndexedDBExpression, { preventEval }?: {
|
|
85
|
+
preventEval?: boolean;
|
|
86
|
+
}): Promise<unknown>;
|
|
87
|
+
/**
|
|
88
|
+
* Namespace URI backing the predefined `jtlt` prefix under which the XPath
|
|
89
|
+
* `indexedDB()` function is registered.
|
|
90
|
+
*/
|
|
91
|
+
export declare const JTLT_XPATH_NAMESPACE = "urn:jtlt";
|
|
92
|
+
/**
|
|
93
|
+
* @param {unknown} expr
|
|
94
|
+
* @returns {boolean} Whether `expr` calls the `indexedDB()` XPath function
|
|
95
|
+
*/
|
|
96
|
+
export declare function xpathExpressionUsesIndexedDB(expr: unknown): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Evaluate an XPath 3.1 expression that may call `jtlt:indexedDB(...)`,
|
|
99
|
+
* to a string. Because fontoxpath is synchronous, this first evaluates the
|
|
100
|
+
* expression in "collect" mode to discover every `indexedDB()` call, awaits
|
|
101
|
+
* those queries, then evaluates again with the records available.
|
|
102
|
+
* @param {string} selectStr
|
|
103
|
+
* @param {Node} contextNode
|
|
104
|
+
* @returns {Promise<string>}
|
|
105
|
+
*/
|
|
106
|
+
export declare function evaluateXPathWithIndexedDB(selectStr: string, contextNode: Node): Promise<string>;
|
|
107
|
+
//# sourceMappingURL=indexedDB.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexedDB.d.ts","sourceRoot":"","sources":["../src/indexedDB.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Iterate over an array, staying fully synchronous while `body` returns
|
|
3
|
+
* synchronously and only chaining Promises once `body` returns a thenable.
|
|
4
|
+
*
|
|
5
|
+
* This lets a nested asynchronous operation (e.g. an
|
|
6
|
+
* `await this.indexedDB(...)` fetch inside a template) suspend the loop,
|
|
7
|
+
* without forcing the common synchronous case through microtasks or
|
|
8
|
+
* breaking DOM-bound consumers.
|
|
9
|
+
* @template T
|
|
10
|
+
* @param {T[]} array
|
|
11
|
+
* @param {(item: T, index: number, arr: T[]) => any} body
|
|
12
|
+
* @returns {Promise<void>|void}
|
|
13
|
+
*/
|
|
14
|
+
export declare function maybeAsyncLoop<T>(array: T[], body: (item: T, index: number, arr: T[]) => any): Promise<void> | void;
|
|
15
|
+
//# sourceMappingURL=maybeAsync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maybeAsync.d.ts","sourceRoot":"","sources":["../src/maybeAsync.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CALjB,CAAC,EAKkB,KAAK,EAJ1B,CAAC,EAIyB,EAAE,IAAI,EAHhC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,GAGN,GAF9B,OAAO,CAAC,IAAI,CAAC,GAAC,IAAI,CAgC9B"}
|
package/docs/API.expanded.md
CHANGED
|
@@ -4,14 +4,18 @@ This document describes the public API surface of JTLT (JavaScript Template Lang
|
|
|
4
4
|
|
|
5
5
|
> Early alpha: APIs may evolve; experimental sections (XPath) can change without major version bumps.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Entry points: `jtlt()` and `JTLT`
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
### `jtlt(config)` — recommended
|
|
10
|
+
|
|
11
|
+
Runs a transform and returns a `Promise` resolving to the result. It takes
|
|
12
|
+
every option below **except `success`**, and does not accept `autostart`
|
|
13
|
+
meaningfully (it always runs).
|
|
10
14
|
|
|
11
15
|
```js
|
|
12
|
-
import
|
|
16
|
+
import {jtlt} from 'jtlt';
|
|
13
17
|
|
|
14
|
-
const out =
|
|
18
|
+
const out = await jtlt({
|
|
15
19
|
data: {title: 'Hello'},
|
|
16
20
|
outputType: 'string',
|
|
17
21
|
templates: [
|
|
@@ -22,31 +26,56 @@ const out = JTLT.create({
|
|
|
22
26
|
this.string('</h1>');
|
|
23
27
|
}
|
|
24
28
|
}
|
|
25
|
-
]
|
|
29
|
+
]
|
|
30
|
+
});
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### `JTLT` class — lower level
|
|
34
|
+
|
|
35
|
+
`JTLT.create(config)` (or `new JTLT(config)`) returns a `JTLT` instance. The
|
|
36
|
+
result is delivered through the **required `success` callback**, which is
|
|
37
|
+
also the return value of `.transform(mode?)`:
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
import JTLT from 'jtlt';
|
|
41
|
+
|
|
42
|
+
const inst = JTLT.create({
|
|
43
|
+
data: {title: 'Hello'},
|
|
44
|
+
outputType: 'string',
|
|
45
|
+
templates: [/* … */],
|
|
26
46
|
success: (res) => res
|
|
27
|
-
})
|
|
47
|
+
});
|
|
48
|
+
const out = inst.transform('');
|
|
28
49
|
```
|
|
29
50
|
|
|
30
|
-
|
|
51
|
+
By default the constructor runs the transform immediately; pass
|
|
52
|
+
`autostart: false` to defer it to your own `.transform()` call.
|
|
53
|
+
|
|
54
|
+
### Options
|
|
55
|
+
|
|
56
|
+
Common to both entry points unless noted.
|
|
31
57
|
|
|
32
58
|
| Option | Type | Description |
|
|
33
59
|
| ------ | ---- | ----------- |
|
|
34
|
-
| `data` |
|
|
60
|
+
| `data` | object \| primitive | Root JSON/JS value (or DOM `Document`/`Element` for the XPath engine). Required unless `ajaxData` provided. |
|
|
35
61
|
| `ajaxData` | string | URL to fetch JSON (async start). |
|
|
36
|
-
| `templates` | Array
|
|
62
|
+
| `templates` | Array<TemplateObject> | Template declarations; see below. |
|
|
37
63
|
| `template` | Function \| TemplateObject | Single root template convenience. |
|
|
38
64
|
| `query` | Function | Root template convenience (wrapped as `path: '$'`). |
|
|
39
65
|
| `forQuery` | [select, cb] | One-off query (like FLWOR `for`). Auto-wrapped as root template. |
|
|
40
|
-
| `success` | Function(result) |
|
|
66
|
+
| `success` | Function(result) | **`JTLT` only** — required callback; also the return of `.transform()`. Not accepted by `jtlt()`. |
|
|
41
67
|
| `mode` | string | Starting mode for template matching. |
|
|
42
|
-
| `outputType` | 'string' \| 'dom' \| 'json' | Chooses joiner. Default 'string'
|
|
43
|
-
| `
|
|
68
|
+
| `outputType` | 'string' \| 'dom' \| 'json' | Chooses joiner. Default `'string'`. |
|
|
69
|
+
| `engineType` | 'jsonpath' \| 'xpath' | Engine to use. Default `'jsonpath'`. |
|
|
70
|
+
| `xpathVersion` | 1 \| 2 \| 3.1 | XPath engine only. `1` native, `2` xpath2.js, `3.1` fontoxpath. Default `1`. |
|
|
71
|
+
| `sync` | boolean | Off by default (async templates are awaited). When `true`, a template that returns a Promise throws; disables `indexedDB()`. |
|
|
72
|
+
| `joiningTransformer` | Joiner | Custom joiner; skip auto creation. Needs `append` and `get` (see `JoiningTransformerContract`). |
|
|
44
73
|
| `joiningConfig` | object | Passed to joiner (e.g., `{xmlElements:true}`). |
|
|
45
74
|
| `unwrapSingleResult` | boolean | For JSON joiner: unwrap single-item root array. |
|
|
46
75
|
| `errorOnEqualPriority` | boolean | Throw when multiple templates share priority on a node. |
|
|
47
|
-
| `specificityPriorityResolver` | fn(path)
|
|
48
|
-
| `engine` | fn(config)
|
|
49
|
-
| `autostart` | boolean |
|
|
76
|
+
| `specificityPriorityResolver` | fn(path)=>number | Custom resolver for relative priorities. Defaults to XSLT-like JSONPath resolver. |
|
|
77
|
+
| `engine` | fn(config)=>result | Override transform engine (defaults to JSONPathTransformer). |
|
|
78
|
+
| `autostart` | boolean | **`JTLT` only** — if `false`, don't auto-call `transform()` in constructor. |
|
|
50
79
|
| `preventEval` | boolean | Disable parenthetical eval portions of JSONPath (security). |
|
|
51
80
|
|
|
52
81
|
## Template objects
|
|
@@ -123,9 +152,10 @@ const out = engine.transform('');
|
|
|
123
152
|
```
|
|
124
153
|
|
|
125
154
|
Limitations:
|
|
126
|
-
- Versions 2 and 3 (`xpath2.js` and `fontoxpath`) may lack some XPath
|
|
127
|
-
stick to basic location paths and simple predicates.
|
|
128
|
-
-
|
|
155
|
+
- Versions 2 and 3.1 (`xpath2.js` and `fontoxpath`) may lack some XPath
|
|
156
|
+
functions; stick to basic location paths and simple predicates.
|
|
157
|
+
- A user `namespaceResolver` option is not yet exposed (the XPath 3.1
|
|
158
|
+
`jtlt:` prefix used by `indexedDB()` is wired in internally).
|
|
129
159
|
|
|
130
160
|
## Contexts
|
|
131
161
|
|
|
@@ -144,6 +174,13 @@ Methods (subset):
|
|
|
144
174
|
- `variable(name, select)` – stores value/array from JSONPath.
|
|
145
175
|
- `callTemplate(name, withParam?)`
|
|
146
176
|
- `key(name, match, use)` / `getKey(name, value)`
|
|
177
|
+
- `indexedDB(dbName, storeName, options?)` – returns a `Promise` of matching
|
|
178
|
+
IndexedDB records. `options` mirror `jsonpath-plus`'s `resultType`
|
|
179
|
+
(`'value'` default, `'key'`, `'primaryKey'`, `'all'`) plus `index`,
|
|
180
|
+
`range`, `query`, `direction`, `count`. A template using it must be
|
|
181
|
+
`async` (or return the Promise). Throws under `sync: true`. A selector of
|
|
182
|
+
the form `indexedDB('db', 'store').*.name` in `valueOf()` is intercepted
|
|
183
|
+
and resolved the same way.
|
|
147
184
|
- Joiner passthrough: `string()`, `text()`, `element()`, `object()`, `array()`, `number()`, `boolean()`, etc.
|
|
148
185
|
\- Cloning helpers:
|
|
149
186
|
- `copy(propertySets?)` — Shallow clone of current context value (object/array). Nested references are preserved. Optional `propertySets` (array of registered names) merge into the top-level clone when object-like.
|
|
@@ -163,6 +200,14 @@ Parallels JSONPath context with XPath evaluation:
|
|
|
163
200
|
current context node; absolute paths (`/`, `//`) target the document root.
|
|
164
201
|
- `variable(name, select)` – always stores node arrays for XPath.
|
|
165
202
|
- `key(name, match, use)` – index by attribute value; `getKey` returns matching Element or context sentinel (`this`).
|
|
203
|
+
- `indexedDB(dbName, storeName, options?)` – same direct helper as the
|
|
204
|
+
JSONPath context. Additionally, `jtlt:indexedDB('db', 'store')` is
|
|
205
|
+
registered as an XPath 3.1 function (predefined `jtlt` prefix,
|
|
206
|
+
`urn:jtlt`), so `valueOf()` selectors such as
|
|
207
|
+
`string-join(jtlt:indexedDB('db', 'store') ! ?name, ',')` work; options
|
|
208
|
+
are passed as an XPath map. Since fontoxpath is synchronous, the
|
|
209
|
+
expression is evaluated in a collect pass, the queries are awaited, then
|
|
210
|
+
it is re-evaluated with the records. Throws under `sync: true`.
|
|
166
211
|
- Default template rules: root traverses `.`, element traverses `*`, text nodes emit `nodeValue`, scalars emit `valueOf('.')`.
|
|
167
212
|
\- Cloning helpers:
|
|
168
213
|
- `copy()` — Shallow clone of the current context node (`cloneNode(false)`) appended to the joiner.
|
|
@@ -456,9 +501,14 @@ See `README.md` for FLWOR-style and join patterns.
|
|
|
456
501
|
## Roadmap (selected)
|
|
457
502
|
|
|
458
503
|
- Namespace support for XPath.
|
|
459
|
-
- Copy helpers (deep/shallow) parity with XSLT.
|
|
460
|
-
- Streaming / async query execution.
|
|
461
504
|
- Schema-aware template targeting.
|
|
505
|
+
- Broader async data sources (async templates and IndexedDB access via
|
|
506
|
+
`this.indexedDB(...)` already land).
|
|
507
|
+
- Closing remaining `xsl:copy` / `xsl:copy-of` parity gaps: a sequence
|
|
508
|
+
constructor for `copy()` (shallow-copy the node, then build its content in
|
|
509
|
+
the same call), `use-attribute-sets` on the XPath `copy()` (the JSONPath
|
|
510
|
+
one already takes `propertySets`), and `copy-namespaces` /
|
|
511
|
+
`inherit-namespaces` control over which namespace nodes are carried.
|
|
462
512
|
|
|
463
513
|
## Versioning
|
|
464
514
|
|
package/docs/API.md
CHANGED
|
@@ -3,11 +3,15 @@
|
|
|
3
3
|
For the full reference (engines, contexts, joiners, sorting, keys, variables,
|
|
4
4
|
property sets, defaults, roadmap), see `docs/API.expanded.md`.
|
|
5
5
|
|
|
6
|
-
##
|
|
6
|
+
## Entry points: `jtlt()` and `JTLT`
|
|
7
|
+
|
|
8
|
+
**`jtlt(config)`** is the recommended entry point. It runs the transform and
|
|
9
|
+
returns a `Promise` that resolves to the result — no `success` callback:
|
|
7
10
|
|
|
8
11
|
```js
|
|
9
|
-
import
|
|
10
|
-
|
|
12
|
+
import {jtlt} from 'jtlt';
|
|
13
|
+
|
|
14
|
+
const out = await jtlt({
|
|
11
15
|
data: {title: 'Hi'},
|
|
12
16
|
templates: [
|
|
13
17
|
{path: '$.title', template (v) {
|
|
@@ -15,11 +19,32 @@ JTLT.create({
|
|
|
15
19
|
this.string('</h1>');
|
|
16
20
|
}}
|
|
17
21
|
],
|
|
22
|
+
outputType: 'string'
|
|
23
|
+
});
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Async templates (e.g. `await this.indexedDB(...)`) are awaited automatically;
|
|
27
|
+
pass `sync: true` to forbid them (a template that returns a Promise then
|
|
28
|
+
throws).
|
|
29
|
+
|
|
30
|
+
The lower-level **`JTLT`** class (`JTLT.create(config)` / `new JTLT(config)`)
|
|
31
|
+
is for when you need the instance itself, `autostart: false`, or to call
|
|
32
|
+
`.transform(mode)` yourself. It delivers the result through a **required
|
|
33
|
+
`success` callback** (also returned from `.transform()`):
|
|
34
|
+
|
|
35
|
+
```js
|
|
36
|
+
import JTLT from 'jtlt';
|
|
37
|
+
|
|
38
|
+
const out = JTLT.create({
|
|
39
|
+
data: {title: 'Hi'},
|
|
40
|
+
templates: [/* … */],
|
|
18
41
|
outputType: 'string',
|
|
19
|
-
success: (
|
|
42
|
+
success: (result) => result
|
|
20
43
|
}).transform('');
|
|
21
44
|
```
|
|
22
45
|
|
|
46
|
+
`jtlt()` accepts every `JTLT` option except `success`.
|
|
47
|
+
|
|
23
48
|
## Engines
|
|
24
49
|
|
|
25
50
|
- JSONPathTransformer: on JSON with JSONPath selectors; resolves
|
|
@@ -33,6 +58,11 @@ JTLT.create({
|
|
|
33
58
|
`variable(name, select)`, `key(name, match, use)`, `getKey(name, value)`.
|
|
34
59
|
JSONPath variables store values; XPath variables store arrays of nodes.
|
|
35
60
|
|
|
61
|
+
Async: a template may be `async` and `await` inside it. `this.indexedDB(db,
|
|
62
|
+
store, options?)` resolves to matching IndexedDB records (see
|
|
63
|
+
`docs/API.expanded.md`). Unavailable when JTLT is configured with
|
|
64
|
+
`sync: true`.
|
|
65
|
+
|
|
36
66
|
Cloning:
|
|
37
67
|
`copy()` (shallow clone current JSON value or DOM node) and
|
|
38
68
|
`copyOf(select?)` (deep clone; optional selector overrides target; scalar
|
package/docs/TO-DO.md
CHANGED
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
functions (or in XQuery), add equivalents to XSLT's
|
|
77
77
|
`document()` and `unparsed-text()` for allowing non-JSON file
|
|
78
78
|
retrieval (as well as variables/parameters) and also methods for
|
|
79
|
-
iterating or retrieving
|
|
79
|
+
iterating or retrieving `localStorage` and cookies
|
|
80
80
|
(names, keys and values).
|
|
81
81
|
|
|
82
82
|
6. Add `outputType` which uses a DOM joiner but allows specialized
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
|
|
87
87
|
7. See code for other possible to-dos
|
|
88
88
|
|
|
89
|
-
8.
|
|
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
91
|
9. Consider implementing the following elements from <https://www.w3.org/TR/xslt-30/>
|
|
92
92
|
which are not yet implemented.
|
package/eslint.config.js
CHANGED
|
@@ -9,6 +9,14 @@ export default [
|
|
|
9
9
|
'demo/codemirror.esm.js'
|
|
10
10
|
]
|
|
11
11
|
},
|
|
12
|
+
{
|
|
13
|
+
languageOptions: {
|
|
14
|
+
ecmaVersion: 'latest',
|
|
15
|
+
globals: {
|
|
16
|
+
IDBKeyRange: 'readonly'
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
12
20
|
...ashNazg(['sauron']),
|
|
13
21
|
{
|
|
14
22
|
rules: {
|
|
@@ -19,9 +27,6 @@ export default [
|
|
|
19
27
|
'unicorn/prefer-private-class-fields': 0,
|
|
20
28
|
'unicorn/no-undeclared-class-members': 0,
|
|
21
29
|
|
|
22
|
-
// AI was frequently making egregious mistakes here, so make fixable
|
|
23
|
-
'jsdoc/check-alignment': 'error',
|
|
24
|
-
|
|
25
30
|
// We frequently use callbacks for nested interactions
|
|
26
31
|
'promise/prefer-await-to-callbacks': 0,
|
|
27
32
|
|
|
@@ -42,6 +47,9 @@ export default [
|
|
|
42
47
|
{
|
|
43
48
|
files: ['test/**/*.js', 'test.js'],
|
|
44
49
|
rules: {
|
|
50
|
+
// Reapply rule to testing file as it demonstrates the API
|
|
51
|
+
'jsdoc/reject-any-type': ['error'],
|
|
52
|
+
|
|
45
53
|
'unicorn/prefer-https': 0, // Old namespaces
|
|
46
54
|
// Too many are JSON properties called "children"
|
|
47
55
|
'unicorn/better-dom-traversing': 0,
|