jtlt 0.3.0 → 0.5.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.
Files changed (59) hide show
  1. package/CHANGES.md +18 -0
  2. package/README.md +46 -78
  3. package/demo/codemirror.esm.js +28242 -0
  4. package/demo/codemirror.js +94 -0
  5. package/demo/index.css +11 -0
  6. package/demo/index.html +11 -14
  7. package/demo/index.js +210 -26
  8. package/demo/vendor/fontoxpath/dist/fontoxpath.esm.js +600 -0
  9. package/demo/vendor/jamilih/dist/jml.mjs +2341 -0
  10. package/demo/vendor/jhtml/src/SAJJ/SAJJ.ObjectArrayDelegator.js +356 -0
  11. package/demo/vendor/jhtml/src/SAJJ/SAJJ.Stringifier.js +186 -0
  12. package/demo/vendor/jhtml/src/SAJJ/SAJJ.js +746 -0
  13. package/demo/vendor/jhtml/src/SAJJ/testing/SAJJ.html +33 -0
  14. package/demo/vendor/jhtml/src/SAJJ/testing/SAJJ.testing.js +25 -0
  15. package/demo/vendor/jhtml/src/jhtml-browser.js +5 -0
  16. package/demo/vendor/jhtml/src/jhtml-node.cts +3 -0
  17. package/demo/vendor/jhtml/src/jhtml-node.js +8 -0
  18. package/demo/vendor/jhtml/src/jhtml-node.mts +1 -0
  19. package/demo/vendor/jhtml/src/jhtml.cts +3 -0
  20. package/demo/vendor/jhtml/src/jhtml.js +602 -0
  21. package/demo/vendor/jhtml/src/jhtml.mts +1 -0
  22. package/demo/vendor/jsonpath-plus/dist/index-browser-esm.js +2158 -0
  23. package/demo/vendor/prsc/dist/prsc.esm.js +2 -0
  24. package/demo/vendor/simple-get-json/dist/index-es.js +151 -0
  25. package/demo/vendor/whynot/dist/whynot.esm.js +2 -0
  26. package/demo/vendor/xspattern/dist/xspattern.esm.js +2 -0
  27. package/dist/AbstractJoiningTransformer.d.ts +27 -0
  28. package/dist/AbstractJoiningTransformer.d.ts.map +1 -1
  29. package/dist/DOMJoiningTransformer.d.ts +60 -8
  30. package/dist/DOMJoiningTransformer.d.ts.map +1 -1
  31. package/dist/JSONJoiningTransformer.d.ts +8 -9
  32. package/dist/JSONJoiningTransformer.d.ts.map +1 -1
  33. package/dist/JSONPathTransformer.d.ts.map +1 -1
  34. package/dist/JSONPathTransformerContext.d.ts +223 -4
  35. package/dist/JSONPathTransformerContext.d.ts.map +1 -1
  36. package/dist/StringJoiningTransformer.d.ts +7 -7
  37. package/dist/StringJoiningTransformer.d.ts.map +1 -1
  38. package/dist/XPathTransformer.d.ts +2 -2
  39. package/dist/XPathTransformer.d.ts.map +1 -1
  40. package/dist/XPathTransformerContext.d.ts +161 -8
  41. package/dist/XPathTransformerContext.d.ts.map +1 -1
  42. package/dist/index.d.ts +4 -4
  43. package/dist/index.d.ts.map +1 -1
  44. package/docs/API.expanded.md +5 -3
  45. package/docs/API.md +1 -1
  46. package/docs/TO-DO.md +62 -36
  47. package/eslint.config.js +3 -1
  48. package/package.json +28 -4
  49. package/rollup.config.js +13 -0
  50. package/src/AbstractJoiningTransformer.js +42 -0
  51. package/src/DOMJoiningTransformer.js +115 -23
  52. package/src/JSONJoiningTransformer.js +50 -26
  53. package/src/JSONPathTransformer.js +2 -0
  54. package/src/JSONPathTransformerContext.js +936 -5
  55. package/src/StringJoiningTransformer.js +25 -21
  56. package/src/XPathTransformer.js +3 -1
  57. package/src/XPathTransformerContext.js +884 -15
  58. package/src/index.js +16 -7
  59. package/tsconfig.json +5 -2
package/src/index.js CHANGED
@@ -175,8 +175,8 @@ export const setWindow = (win) => {
175
175
  * import('./JSONPathTransformerContext.js').default
176
176
  * >],
177
177
  * engineType: 'xpath',
178
- * xpathVersion?: 1|2,
179
- * outputType?: 'string'|'dom'|'json'
178
+ * xpathVersion?: 1|2|3.1,
179
+ * outputType?: T
180
180
  * }} XPathJTLTOptions
181
181
  */
182
182
 
@@ -380,7 +380,13 @@ class JTLT {
380
380
  );
381
381
  // eslint-disable-next-line @stylistic/max-len -- Long
382
382
  // eslint-disable-next-line unicorn/no-array-method-this-argument -- Not array
383
- this.forEach(path, fn);
383
+ this.forEach(path, (arg) => {
384
+ const ret = fn.call(this, arg);
385
+ if (typeof ret !== 'undefined') {
386
+ // @ts-expect-error Ok?
387
+ this._getJoiningTransformer().append(ret);
388
+ }
389
+ });
384
390
  }
385
391
  : cfg.query || (
386
392
  typeof cfg.templates === 'function'
@@ -390,10 +396,13 @@ class JTLT {
390
396
  : null
391
397
  );
392
398
  this.config.templates = query
393
- // eslint-disable-next-line @stylistic/max-len -- Long
394
- ? /** @type {JSONPathTemplateObject<joiningTypes>[]|XPathTemplateObject<joiningTypes>[]} */ ([
395
- {name: 'root', path: '$', template: query}
396
- ])
399
+ ? this.config.engineType === 'xpath'
400
+ ? /** @type {XPathTemplateObject<joiningTypes>[]} */ ([
401
+ {name: 'root', path: '//*', template: query}
402
+ ])
403
+ : /** @type {JSONPathTemplateObject<joiningTypes>[]} */ ([
404
+ {name: 'root', path: '$', template: query}
405
+ ])
397
406
  // eslint-disable-next-line @stylistic/max-len -- Long
398
407
  : /** @type {JSONPathTemplateObject<joiningTypes>[]|XPathTemplateObject<joiningTypes>[]} */ (
399
408
  cfg.templates || [cfg.template]
package/tsconfig.json CHANGED
@@ -9,6 +9,9 @@
9
9
  "noEmit": true,
10
10
  "strict": true
11
11
  },
12
- "include": ["*.js", "*.d.ts", "src/**/*.js", "test/*.js", "typings/xpath2-js.d.ts"],
13
- "exclude": ["node_modules", "./dist/**/*.js"]
12
+ "include": [
13
+ "*.js", "*.d.ts", "src/**/*.js", "demo/**/*.js", "test/**/*.js",
14
+ "typings/xpath2-js.d.ts"
15
+ ],
16
+ "exclude": ["node_modules", "./dist/**/*.js", "demo/codemirror.esm.js", "demo/vendor"]
14
17
  }