jtlt 0.2.0 → 0.3.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 +18 -0
- package/README.md +16 -87
- package/demo/calltemplate-params-demo.js +138 -0
- package/demo/index.html +31 -0
- package/demo/index.js +30 -0
- package/demo/xpath2-placeholder.js +1 -0
- package/dist/AbstractJoiningTransformer.d.ts +83 -9
- package/dist/AbstractJoiningTransformer.d.ts.map +1 -1
- package/dist/DOMJoiningTransformer.d.ts +85 -25
- package/dist/DOMJoiningTransformer.d.ts.map +1 -1
- package/dist/JSONJoiningTransformer.d.ts +159 -51
- package/dist/JSONJoiningTransformer.d.ts.map +1 -1
- package/dist/JSONPathTransformer.d.ts +37 -38
- package/dist/JSONPathTransformer.d.ts.map +1 -1
- package/dist/JSONPathTransformerContext.d.ts +247 -121
- package/dist/JSONPathTransformerContext.d.ts.map +1 -1
- package/dist/StringJoiningTransformer.d.ts +132 -41
- package/dist/StringJoiningTransformer.d.ts.map +1 -1
- package/dist/XPathTransformer.d.ts +35 -20
- package/dist/XPathTransformer.d.ts.map +1 -1
- package/dist/XPathTransformerContext.d.ts +191 -99
- package/dist/XPathTransformerContext.d.ts.map +1 -1
- package/dist/index-browser.d.ts +4 -0
- package/dist/index-browser.d.ts.map +1 -0
- package/dist/index-node.d.ts +4 -0
- package/dist/index-node.d.ts.map +1 -0
- package/dist/index.d.ts +330 -57
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +204 -0
- package/dist/types.d.ts.map +1 -0
- package/docs/API.expanded.md +167 -2
- package/docs/API.md +91 -1
- package/docs/TO-DO.md +144 -0
- package/docs/calltemplate-params.md +251 -0
- package/eslint.config.js +9 -5
- package/package.json +13 -7
- package/pnpm-workspace.yaml +1 -0
- package/src/AbstractJoiningTransformer.js +54 -15
- package/src/DOMJoiningTransformer.js +275 -28
- package/src/JSONJoiningTransformer.js +351 -70
- package/src/JSONPathTransformer.js +48 -30
- package/src/JSONPathTransformerContext.js +308 -104
- package/src/StringJoiningTransformer.js +311 -57
- package/src/XPathTransformer.js +27 -12
- package/src/XPathTransformerContext.js +467 -89
- package/src/index-browser.js +5 -0
- package/src/index-node.js +7 -0
- package/src/index.js +498 -97
- package/typings/xpath2-js.d.ts +40 -1
- package/src/types/xpath2-js.d.ts +0 -2
|
@@ -1,4 +1,33 @@
|
|
|
1
1
|
export default StringJoiningTransformer;
|
|
2
|
+
export type OutputConfig = {
|
|
3
|
+
encoding?: string;
|
|
4
|
+
indent?: boolean;
|
|
5
|
+
omitXmlDeclaration?: boolean;
|
|
6
|
+
doctypePublic?: string;
|
|
7
|
+
doctypeSystem?: string;
|
|
8
|
+
cdataSectionElements?: string[];
|
|
9
|
+
mediaType?: string;
|
|
10
|
+
version?: string;
|
|
11
|
+
standalone?: boolean;
|
|
12
|
+
method?: "xml" | "html" | "text" | "json" | "xhtml";
|
|
13
|
+
};
|
|
14
|
+
export type SimpleCallback = (this: StringJoiningTransformer) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Attributes object for element() allowing standard string attributes
|
|
17
|
+
* plus special helpers: dataset (object) and $a (ordered attribute array).
|
|
18
|
+
*/
|
|
19
|
+
export type ElementAttributes = Record<string, unknown> & {
|
|
20
|
+
dataset?: Record<string, string>;
|
|
21
|
+
$a?: Array<[string, string]>;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Attributes object for element() allowing standard string attributes
|
|
25
|
+
* plus special helpers: dataset (object) and $a (ordered attribute array).
|
|
26
|
+
* @typedef {Record<string, unknown> & {
|
|
27
|
+
* dataset?: Record<string, string>,
|
|
28
|
+
* $a?: Array<[string, string]>
|
|
29
|
+
* }} ElementAttributes
|
|
30
|
+
*/
|
|
2
31
|
/**
|
|
3
32
|
*
|
|
4
33
|
*/
|
|
@@ -28,13 +57,15 @@ export default StringJoiningTransformer;
|
|
|
28
57
|
* name mapping rules differ, etc.).
|
|
29
58
|
* - cfg.preEscapedAttributes: skip escaping attribute values.
|
|
30
59
|
* - cfg.JHTMLForJSON / cfg.mode: affect how object()/array() serialize.
|
|
60
|
+
* @extends {AbstractJoiningTransformer<"string">}
|
|
31
61
|
*/
|
|
32
|
-
declare class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
62
|
+
declare class StringJoiningTransformer extends AbstractJoiningTransformer<"string"> {
|
|
33
63
|
/**
|
|
34
64
|
* @param {string} s - Initial string
|
|
35
|
-
* @param {
|
|
65
|
+
* @param {import('./AbstractJoiningTransformer.js').
|
|
66
|
+
* StringJoiningTransformerConfig} [cfg] - Configuration object
|
|
36
67
|
*/
|
|
37
|
-
constructor(s: string, cfg
|
|
68
|
+
constructor(s: string, cfg?: import("./AbstractJoiningTransformer.js").StringJoiningTransformerConfig);
|
|
38
69
|
_str: string;
|
|
39
70
|
/** @type {any} */
|
|
40
71
|
_objPropTemp: any;
|
|
@@ -50,59 +81,72 @@ declare class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
50
81
|
_arr: any[];
|
|
51
82
|
/** @type {string | undefined} */
|
|
52
83
|
_strTemp: string | undefined;
|
|
53
|
-
/** @type {Record<string,
|
|
54
|
-
propertySets: Record<string,
|
|
84
|
+
/** @type {Record<string, unknown>} */
|
|
85
|
+
propertySets: Record<string, unknown>;
|
|
86
|
+
/** @type {string[]} */
|
|
87
|
+
_docs: string[];
|
|
88
|
+
/** @type {boolean} */
|
|
89
|
+
_insideDocument: boolean;
|
|
90
|
+
/** @type {Array<{href: string, document: string, format?: string}>} */
|
|
91
|
+
_resultDocuments: Array<{
|
|
92
|
+
href: string;
|
|
93
|
+
document: string;
|
|
94
|
+
format?: string;
|
|
95
|
+
}>;
|
|
55
96
|
/**
|
|
56
|
-
* @param {string
|
|
97
|
+
* @param {string|any} s - String or value to append
|
|
57
98
|
* @returns {StringJoiningTransformer}
|
|
58
99
|
*/
|
|
59
100
|
append(s: string | any): StringJoiningTransformer;
|
|
60
101
|
/**
|
|
61
|
-
* @returns {string}
|
|
102
|
+
* @returns {string|string[]}
|
|
62
103
|
*/
|
|
63
|
-
get(): string;
|
|
104
|
+
get(): string | string[];
|
|
64
105
|
/**
|
|
65
106
|
* @param {string} prop - Property name
|
|
66
|
-
* @param {
|
|
107
|
+
* @param {any} val - Property value
|
|
67
108
|
* @returns {StringJoiningTransformer}
|
|
68
109
|
*/
|
|
69
110
|
propValue(prop: string, val: any): StringJoiningTransformer;
|
|
70
111
|
/**
|
|
71
112
|
* @param {string} prop - Property name
|
|
72
|
-
* @param {
|
|
113
|
+
* @param {(this: StringJoiningTransformer) => void} cb - Callback function
|
|
73
114
|
* @returns {StringJoiningTransformer}
|
|
74
115
|
*/
|
|
75
|
-
propOnly(prop: string, cb:
|
|
116
|
+
propOnly(prop: string, cb: (this: StringJoiningTransformer) => void): StringJoiningTransformer;
|
|
76
117
|
/**
|
|
77
|
-
* @param {
|
|
78
|
-
* @param {
|
|
118
|
+
* @param {Record<string, unknown>|Element} obj - Object to serialize
|
|
119
|
+
* @param {(this: StringJoiningTransformer) => void} cb - Callback function
|
|
79
120
|
* @param {any[]} [usePropertySets] - Property sets to use
|
|
80
|
-
* @param {
|
|
121
|
+
* @param {Record<string, unknown>} [propSets] - Additional property sets
|
|
81
122
|
* @returns {StringJoiningTransformer}
|
|
82
123
|
*/
|
|
83
|
-
object(obj:
|
|
124
|
+
object(obj: Record<string, unknown> | Element, cb: (this: StringJoiningTransformer) => void, usePropertySets?: any[], propSets?: Record<string, unknown>): StringJoiningTransformer;
|
|
84
125
|
/**
|
|
85
126
|
* @param {any[]|Element} [arr] - Array to serialize
|
|
86
|
-
* @param {
|
|
127
|
+
* @param {(this: StringJoiningTransformer) => void} [cb] - Callback function
|
|
87
128
|
* @returns {StringJoiningTransformer}
|
|
88
129
|
*/
|
|
89
|
-
array(arr?: any[] | Element, cb?:
|
|
130
|
+
array(arr?: any[] | Element, cb?: (this: StringJoiningTransformer) => void): StringJoiningTransformer;
|
|
90
131
|
/**
|
|
91
|
-
* @param {string|Element|
|
|
92
|
-
*
|
|
132
|
+
* @param {string|Element|Record<string, unknown>} str
|
|
133
|
+
* String value or element
|
|
134
|
+
* @param {(this: StringJoiningTransformer) => void} [cb] - Callback function
|
|
93
135
|
* @returns {StringJoiningTransformer}
|
|
94
136
|
*/
|
|
95
|
-
string(str: string | Element |
|
|
137
|
+
string(str: string | Element | Record<string, unknown>, cb?: (this: StringJoiningTransformer) => void): StringJoiningTransformer;
|
|
96
138
|
/**
|
|
97
|
-
* @param {number|Element|
|
|
139
|
+
* @param {number|Element|Record<string, unknown>} num
|
|
140
|
+
* Number value or element
|
|
98
141
|
* @returns {StringJoiningTransformer}
|
|
99
142
|
*/
|
|
100
|
-
number(num: number | Element |
|
|
143
|
+
number(num: number | Element | Record<string, unknown>): StringJoiningTransformer;
|
|
101
144
|
/**
|
|
102
|
-
* @param {boolean|Element|
|
|
145
|
+
* @param {boolean|Element|Record<string, unknown>} bool
|
|
146
|
+
* Boolean value or element
|
|
103
147
|
* @returns {StringJoiningTransformer}
|
|
104
148
|
*/
|
|
105
|
-
boolean(bool: boolean | Element |
|
|
149
|
+
boolean(bool: boolean | Element | Record<string, unknown>): StringJoiningTransformer;
|
|
106
150
|
/**
|
|
107
151
|
* @returns {StringJoiningTransformer}
|
|
108
152
|
*/
|
|
@@ -117,52 +161,99 @@ declare class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
117
161
|
*/
|
|
118
162
|
nonfiniteNumber(num: number | Element): StringJoiningTransformer;
|
|
119
163
|
/**
|
|
120
|
-
* @param {
|
|
164
|
+
* @param {((...args: any[]) => any)|Element} func - Function to stringify
|
|
165
|
+
* @returns {StringJoiningTransformer}
|
|
166
|
+
*/
|
|
167
|
+
function(func: ((...args: any[]) => any) | Element): StringJoiningTransformer;
|
|
168
|
+
/**
|
|
169
|
+
* @param {OutputConfig} cfg
|
|
121
170
|
* @returns {StringJoiningTransformer}
|
|
122
171
|
*/
|
|
123
|
-
|
|
172
|
+
output(cfg: OutputConfig): StringJoiningTransformer;
|
|
173
|
+
_outputConfig: any;
|
|
174
|
+
mediaType: string | undefined;
|
|
124
175
|
/**
|
|
125
|
-
* @param {string|
|
|
126
|
-
* @param {
|
|
176
|
+
* @param {string|Element} elName - Element name or element object
|
|
177
|
+
* @param {ElementAttributes} [atts] - Element attributes
|
|
127
178
|
* @param {any[]} [childNodes] - Child nodes
|
|
128
|
-
* @param {
|
|
179
|
+
* @param {(this: StringJoiningTransformer) => void} [cb] - Callback function
|
|
129
180
|
* @returns {StringJoiningTransformer}
|
|
130
181
|
*/
|
|
131
|
-
element(elName: string |
|
|
182
|
+
element(elName: string | Element, atts?: ElementAttributes, childNodes?: any[], cb?: (this: StringJoiningTransformer) => void): StringJoiningTransformer;
|
|
132
183
|
_openTagState: any;
|
|
184
|
+
root: any;
|
|
133
185
|
/**
|
|
134
186
|
* @param {string} name - Attribute name
|
|
135
|
-
* @param {string|
|
|
187
|
+
* @param {string|Record<string, unknown>|
|
|
188
|
+
* string[][]} val - Attribute value
|
|
136
189
|
* @param {boolean} [avoidAttEscape] - Whether to avoid escaping the
|
|
137
190
|
* attribute value
|
|
138
191
|
* @returns {StringJoiningTransformer}
|
|
139
192
|
*/
|
|
140
|
-
attribute(name: string, val: string |
|
|
193
|
+
attribute(name: string, val: string | Record<string, unknown> | string[][], avoidAttEscape?: boolean): StringJoiningTransformer;
|
|
141
194
|
/**
|
|
142
195
|
* @param {string} txt - Text content to escape and append
|
|
143
196
|
* @returns {StringJoiningTransformer}
|
|
144
197
|
*/
|
|
145
198
|
text(txt: string): StringJoiningTransformer;
|
|
146
199
|
/**
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
200
|
+
* @param {string} text
|
|
201
|
+
* @returns {StringJoiningTransformer}}
|
|
202
|
+
*/
|
|
203
|
+
comment(text: string): StringJoiningTransformer;
|
|
204
|
+
/**
|
|
205
|
+
* @param {string} target
|
|
206
|
+
* @param {string} data
|
|
207
|
+
* @returns {StringJoiningTransformer}}
|
|
208
|
+
*/
|
|
209
|
+
processingInstruction(target: string, data: string): StringJoiningTransformer;
|
|
210
|
+
/**
|
|
211
|
+
* Unlike text(), does not escape for HTML; unlike string(), does not perform
|
|
212
|
+
* JSON stringification; unlike append(), does not do other checks (but
|
|
213
|
+
* still varies in its role across transformers).
|
|
214
|
+
* @param {string} str
|
|
215
|
+
* @returns {StringJoiningTransformer}
|
|
216
|
+
*/
|
|
153
217
|
rawAppend(str: string): StringJoiningTransformer;
|
|
154
218
|
/**
|
|
155
219
|
* @param {string} str - Plain text to append without escaping
|
|
156
220
|
* @returns {StringJoiningTransformer}
|
|
157
221
|
*/
|
|
158
222
|
plainText(str: string): StringJoiningTransformer;
|
|
223
|
+
/**
|
|
224
|
+
* Creates a new string document and executes a callback in its context.
|
|
225
|
+
* Similar to XSLT's xsl:document, this allows templates to generate
|
|
226
|
+
* multiple output documents. The created document is pushed to this._docs
|
|
227
|
+
* and will be included in the result when exposeDocuments is true.
|
|
228
|
+
*
|
|
229
|
+
* @param {(this: StringJoiningTransformer) => void} cb
|
|
230
|
+
* Callback that builds the document content
|
|
231
|
+
* @param {OutputConfig} [cfg]
|
|
232
|
+
* Output configuration for the document (encoding, doctype, etc.)
|
|
233
|
+
* @returns {StringJoiningTransformer}
|
|
234
|
+
*/
|
|
235
|
+
document(cb: (this: StringJoiningTransformer) => void, cfg?: OutputConfig): StringJoiningTransformer;
|
|
236
|
+
/**
|
|
237
|
+
* Creates a new result document with metadata (href, format).
|
|
238
|
+
* Similar to XSLT's xsl:result-document, this allows templates to generate
|
|
239
|
+
* multiple output documents with associated metadata like URIs. The created
|
|
240
|
+
* document is stored in this._resultDocuments with the provided href.
|
|
241
|
+
*
|
|
242
|
+
* @param {string} href - URI/path for the result document
|
|
243
|
+
* @param {(this: StringJoiningTransformer) => void} cb
|
|
244
|
+
* Callback that builds the document content
|
|
245
|
+
* @param {OutputConfig} [cfg]
|
|
246
|
+
* Output configuration for the document (encoding, doctype, format, etc.)
|
|
247
|
+
* @returns {StringJoiningTransformer}
|
|
248
|
+
*/
|
|
249
|
+
resultDocument(href: string, cb: (this: StringJoiningTransformer) => void, cfg?: OutputConfig): StringJoiningTransformer;
|
|
159
250
|
/**
|
|
160
251
|
* Helper method to use property sets.
|
|
161
|
-
* @param {
|
|
252
|
+
* @param {Record<string, unknown>} obj - Object to apply property set to
|
|
162
253
|
* @param {string} psName - Property set name
|
|
163
|
-
* @returns {
|
|
254
|
+
* @returns {Record<string, unknown>}
|
|
164
255
|
*/
|
|
165
|
-
_usePropertySets(obj:
|
|
256
|
+
_usePropertySets(obj: Record<string, unknown>, psName: string): Record<string, unknown>;
|
|
166
257
|
}
|
|
167
258
|
import AbstractJoiningTransformer from './AbstractJoiningTransformer.js';
|
|
168
259
|
//# sourceMappingURL=StringJoiningTransformer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/StringJoiningTransformer.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"StringJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/StringJoiningTransformer.js"],"names":[],"mappings":";2BAKa;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,GAAC,MAAM,GAAC,MAAM,GAAC,MAAM,GAAC,OAAO,CAAA;CAC5C;iEAMS,IAAI;;;;;gCAyBJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC7B;AANJ;;;;;;;GAOG;AAEH;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH;IACE;;;;OAIG;IACH,eAJW,MAAM,QACN,OAAO,iCAAiC,EAC9C,8BAA8B,EA4BlC;IAvBC,aAAmB;IACnB,kBAAkB;IAClB,cADW,GAAG,CACe;IAC7B,kCAAkC;IAClC,eADW,OAAO,GAAG,SAAS,CACA;IAC9B,kCAAkC;IAClC,eADW,OAAO,GAAG,SAAS,CACA;IAC9B,kCAAkC;IAClC,eADW,OAAO,GAAG,SAAS,CACA;IAC9B,kBAAkB;IAClB,MADW,GAAG,CACO;IACrB,oBAAoB;IACpB,MADW,GAAG,EAAE,CACF;IACd,iCAAiC;IACjC,UADW,MAAM,GAAG,SAAS,CACJ;IACzB,sCAAsC;IACtC,cADW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACZ;IACtB,uBAAuB;IACvB,OADW,MAAM,EAAE,CACJ;IACf,sBAAsB;IACtB,iBADW,OAAO,CACU;IAC5B,uEAAuE;IACvE,kBADW,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC,CACzC;IAG5B;;;OAGG;IACH,UAHW,MAAM,GAAC,GAAG,GACR,wBAAwB,CAqBpC;IAED;;OAEG;IACH,OAFa,MAAM,GAAC,MAAM,EAAE,CAa3B;IAED;;;;OAIG;IACH,gBAJW,MAAM,OACN,GAAG,GACD,wBAAwB,CAUpC;IAED;;;;OAIG;IACH,eAJW,MAAM,MACN,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,GACtC,wBAAwB,CAuBpC;IAED;;;;;;OAMG;IACH,YANW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAC,OAAO,MAC/B,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,oBACxC,GAAG,EAAE,aACL,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrB,wBAAwB,CAkDpC;IAED;;;;OAIG;IACH,YAJW,GAAG,EAAE,GAAC,OAAO,OACb,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,GACtC,wBAAwB,CA2CpC;IAED;;;;;OAKG;IACH,YALW,MAAM,GAAC,OAAO,GAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAEtC,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,GACtC,wBAAwB,CA4BpC;IAED;;;;OAIG;IACH,YAJW,MAAM,GAAC,OAAO,GAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAEpC,wBAAwB,CAWpC;IAED;;;;OAIG;IACH,cAJW,OAAO,GAAC,OAAO,GAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAErC,wBAAwB,CAWpC;IAED;;OAEG;IACH,QAFa,wBAAwB,CAMpC;IAED;;OAEG;IACH,aAFa,wBAAwB,CAWpC;IAED;;;OAGG;IACH,qBAHW,MAAM,GAAC,OAAO,GACZ,wBAAwB,CAgBpC;IAED;;;OAGG;IACH,eAHW,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAC,OAAO,GAC/B,wBAAwB,CAgBpC;IAED;;;OAGG;IACH,YAHW,YAAY,GACV,wBAAwB,CAUpC;IALC,mBAAwB;IAGxB,8BAA8B;IAIhC;;;;;;OAMG;IACH,gBANW,MAAM,GAAC,OAAO,SACd,iBAAiB,eACjB,GAAG,EAAE,OACL,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,GACtC,wBAAwB,CAkIpC;IA3HG,mBAA0B;IAI1B,UAAkB;IAyHtB;;;;;;;OAOG;IACH,gBAPW,MAAM,OACN,MAAM,GAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,MAAU,EAAE,EAAE,mBACJ,OAAO,GAEL,wBAAwB,CA2DpC;IAED;;;OAGG;IACH,UAHW,MAAM,GACJ,wBAAwB,CAWpC;IAED;;;OAGG;IACH,cAHW,MAAM,GACJ,wBAAwB,CAKpC;IAED;;;;OAIG;IACH,8BAJW,MAAM,QACN,MAAM,GACJ,wBAAwB,CAKpC;IAED;;;;;;OAMG;IACH,eAHW,MAAM,GACJ,wBAAwB,CAMpC;IAED;;;OAGG;IACH,eAHW,MAAM,GACJ,wBAAwB,CAQpC;IAED;;;;;;;;;;;OAWG;IACH,aANW,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,QAExC,YAAY,GAEV,wBAAwB,CA0CpC;IAED;;;;;;;;;;;;OAYG;IACH,qBAPW,MAAM,MACN,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,QAExC,YAAY,GAEV,wBAAwB,CA4CpC;IAED;;;;;OAKG;IACH,sBAJW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UACvB,MAAM,GACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWnC;CACF;uCAt0BsC,iCAAiC"}
|
|
@@ -1,16 +1,39 @@
|
|
|
1
1
|
export default XPathTransformer;
|
|
2
|
+
export type XPathTransformerConfig<T> = {
|
|
3
|
+
/**
|
|
4
|
+
* Throw on equal priority
|
|
5
|
+
*/
|
|
6
|
+
errorOnEqualPriority?: boolean | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* Template objects
|
|
9
|
+
*/
|
|
10
|
+
templates: import("./index.js").XPathTemplateArray<T>;
|
|
11
|
+
/**
|
|
12
|
+
* XPath version (1|2)
|
|
13
|
+
*/
|
|
14
|
+
xpathVersion?: number | undefined;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* @template T
|
|
18
|
+
* @typedef {object} XPathTransformerConfig
|
|
19
|
+
* @property {boolean} [errorOnEqualPriority] Throw on equal priority
|
|
20
|
+
* @property {import('./index.js').
|
|
21
|
+
* XPathTemplateArray<T>} templates Template objects
|
|
22
|
+
* @property {number} [xpathVersion] XPath version (1|2)
|
|
23
|
+
*/
|
|
2
24
|
/**
|
|
3
25
|
* Applies named XPath-driven templates to XML/HTML DOM data.
|
|
4
26
|
*
|
|
5
27
|
* Finds templates whose `path` XPath matches the current node (plus optional
|
|
6
28
|
* `mode`), sorts by priority, and invokes the winning template.
|
|
7
29
|
* Falls back to default rules when no template matches.
|
|
30
|
+
* @template T
|
|
8
31
|
*/
|
|
9
|
-
declare class XPathTransformer {
|
|
32
|
+
declare class XPathTransformer<T> {
|
|
10
33
|
static DefaultTemplateRules: {
|
|
11
34
|
transformRoot: {
|
|
12
35
|
/**
|
|
13
|
-
* @param {
|
|
36
|
+
* @param {any} node Node
|
|
14
37
|
* @param {{mode:string}} cfg Config
|
|
15
38
|
* @returns {void}
|
|
16
39
|
*/
|
|
@@ -20,32 +43,24 @@ declare class XPathTransformer {
|
|
|
20
43
|
};
|
|
21
44
|
};
|
|
22
45
|
/**
|
|
23
|
-
* @param {
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* @param {number} [config.xpathVersion] XPath version (1|2)
|
|
46
|
+
* @param {XPathTransformerConfig<T> &
|
|
47
|
+
* import('./XPathTransformerContext.js').
|
|
48
|
+
* XPathTransformerContextConfig} config Configuration
|
|
27
49
|
*/
|
|
28
|
-
constructor(config:
|
|
29
|
-
|
|
30
|
-
templates: any[];
|
|
31
|
-
xpathVersion?: number | undefined;
|
|
32
|
-
});
|
|
33
|
-
_config: {
|
|
34
|
-
errorOnEqualPriority?: boolean | undefined;
|
|
35
|
-
templates: any[];
|
|
36
|
-
xpathVersion?: number | undefined;
|
|
37
|
-
};
|
|
50
|
+
constructor(config: XPathTransformerConfig<T> & import("./XPathTransformerContext.js").XPathTransformerContextConfig);
|
|
51
|
+
_config: XPathTransformerConfig<T> & import("./XPathTransformerContext.js").XPathTransformerContextConfig;
|
|
38
52
|
/** @type {any[]} */
|
|
39
53
|
rootTemplates: any[];
|
|
40
|
-
|
|
54
|
+
/** @type {import('./index.js').XPathTemplateObject<T>[]} */
|
|
55
|
+
templates: import("./index.js").XPathTemplateObject<T>[];
|
|
41
56
|
/**
|
|
42
57
|
* @returns {void}
|
|
43
58
|
*/
|
|
44
59
|
_triggerEqualPriorityError(): void;
|
|
45
60
|
/**
|
|
46
|
-
* @param {string} mode Transformation mode
|
|
47
|
-
* @returns {
|
|
61
|
+
* @param {string} [mode] Transformation mode
|
|
62
|
+
* @returns {import('./index.js').ResultType<T>} Result of transformation
|
|
48
63
|
*/
|
|
49
|
-
transform(mode
|
|
64
|
+
transform(mode?: string): import("./index.js").ResultType<T>;
|
|
50
65
|
}
|
|
51
66
|
//# sourceMappingURL=XPathTransformer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XPathTransformer.d.ts","sourceRoot":"","sources":["../src/XPathTransformer.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"XPathTransformer.d.ts","sourceRoot":"","sources":["../src/XPathTransformer.js"],"names":[],"mappings":";mCAGa,CAAC;;;;;;;;eAGA,OAAO,YAAY,EAC5B,kBAAkB,CAAC,CAAC,CAAC;;;;;;AAL1B;;;;;;;GAOG;AAEH;;;;;;;GAOG;AACH,+BAFa,CAAC;IA6EZ;;YAEI;;;;eAIG;2BAHQ,GAAG,OACH;gBAAC,IAAI,EAAC,MAAM,CAAA;aAAC,GACX,IAAI;;MAMnB;IArFF;;;;OAIG;IACH,oBAJW,sBAAsB,CAAC,CAAC,CAAC,GACnC,OAAW,8BAA8B,EACrC,6BAA6B,EAiCjC;IA7BC,0GAAqB;IACrB,oBAAoB;IACpB,eADW,GAAG,EAAE,CACO;IAEvB,4DAA4D;IAC5D,WADW,OAAO,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAMtD;IAqBJ;;OAEG;IACH,8BAFa,IAAI,CAShB;IAED;;;OAGG;IACH,iBAHW,MAAM,GACJ,OAAO,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAoB9C;CAcF"}
|