abstract-document 15.0.3 → 15.0.8
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/lib/abstract-document-xml/handlebars-xml/parse-mustache-xml.d.ts +8 -2
- package/lib/abstract-document-xml/handlebars-xml/parse-mustache-xml.d.ts.map +1 -1
- package/lib/abstract-document-xml/handlebars-xml/parse-mustache-xml.js +22 -6
- package/lib/abstract-document-xml/handlebars-xml/parse-mustache-xml.js.map +1 -1
- package/package.json +5 -3
- package/src/abstract-document-xml/handlebars-xml/parse-mustache-xml.ts +20 -4
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { X2jOptions } from "fast-xml-parser";
|
|
2
|
+
import Mustache from "mustache";
|
|
2
3
|
export type XmlElement = {
|
|
3
4
|
readonly tagName: string;
|
|
4
5
|
readonly attributes: Record<string, string>;
|
|
5
6
|
readonly children: ReadonlyArray<XmlElement>;
|
|
6
7
|
readonly textContent?: string;
|
|
7
8
|
};
|
|
8
|
-
export declare
|
|
9
|
-
|
|
9
|
+
export declare enum TemplateMethod {
|
|
10
|
+
Mustache = 0,
|
|
11
|
+
Handlebars = 1
|
|
12
|
+
}
|
|
13
|
+
export declare const parseMustacheXml: (template: string, data: any, partials: Record<string, string>, method: TemplateMethod) => ReadonlyArray<XmlElement>;
|
|
14
|
+
export declare const renderMustache: typeof Mustache.render;
|
|
15
|
+
export declare const renderHandlebars: (template: string, data: any, partials: Record<string, string>) => string;
|
|
10
16
|
export declare function parseXmlCustom(text: string, options: Partial<X2jOptions>): ReadonlyArray<XmlElement>;
|
|
11
17
|
export declare const parseXml: (text: string) => ReadonlyArray<XmlElement>;
|
|
12
18
|
export declare const parseXsd: (text: string) => ReadonlyArray<XmlElement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-mustache-xml.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-xml/handlebars-xml/parse-mustache-xml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-mustache-xml.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-xml/handlebars-xml/parse-mustache-xml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AAExD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,oBAAY,cAAc;IACxB,QAAQ,IAAI;IACZ,UAAU,IAAI;CACf;AAED,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,EAChB,MAAM,GAAG,EACT,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,cAAc,KACrB,aAAa,CAAC,UAAU,CAU1B,CAAC;AAEF,eAAO,MAAM,cAAc,wBAAkB,CAAC;AAC9C,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,EAAE,MAAM,GAAG,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,MAGhG,CAAC;AAEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAKpG;AACD,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,aAAa,CAAC,UAAU,CAAwC,CAAC;AACzG,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,aAAa,CAAC,UAAU,CACP,CAAC;AAgC1D,wBAAgB,WAAW,CACzB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EACnC,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,UAAU,GAAG,SAAS,CAqBxB;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAc1F"}
|
|
@@ -3,21 +3,37 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.parseXsd = exports.parseXml = exports.
|
|
6
|
+
exports.parseXsd = exports.parseXml = exports.renderHandlebars = exports.renderMustache = exports.parseMustacheXml = exports.TemplateMethod = void 0;
|
|
7
7
|
exports.parseXmlCustom = parseXmlCustom;
|
|
8
8
|
exports.findElement = findElement;
|
|
9
9
|
exports.getChildren = getChildren;
|
|
10
10
|
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
11
11
|
const handlebars_1 = __importDefault(require("handlebars"));
|
|
12
|
-
const
|
|
13
|
-
|
|
12
|
+
const mustache_1 = __importDefault(require("mustache"));
|
|
13
|
+
var TemplateMethod;
|
|
14
|
+
(function (TemplateMethod) {
|
|
15
|
+
TemplateMethod[TemplateMethod["Mustache"] = 0] = "Mustache";
|
|
16
|
+
TemplateMethod[TemplateMethod["Handlebars"] = 1] = "Handlebars";
|
|
17
|
+
})(TemplateMethod || (exports.TemplateMethod = TemplateMethod = {}));
|
|
18
|
+
;
|
|
19
|
+
const parseMustacheXml = (template, data, partials, method) => {
|
|
20
|
+
switch (method) {
|
|
21
|
+
case TemplateMethod.Handlebars: {
|
|
22
|
+
return (0, exports.parseXml)((0, exports.renderHandlebars)(template, data, partials));
|
|
23
|
+
}
|
|
24
|
+
case TemplateMethod.Mustache:
|
|
25
|
+
default: {
|
|
26
|
+
return (0, exports.parseXml)((0, exports.renderMustache)(template, data, partials));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
14
29
|
};
|
|
15
30
|
exports.parseMustacheXml = parseMustacheXml;
|
|
16
|
-
|
|
31
|
+
exports.renderMustache = mustache_1.default.render;
|
|
32
|
+
const renderHandlebars = (template, data, partials) => {
|
|
17
33
|
Object.entries(partials).forEach(([name, partial]) => handlebars_1.default.registerPartial(name, partial));
|
|
18
|
-
return handlebars_1.default.compile(template)(data);
|
|
34
|
+
return handlebars_1.default.compile(template, { compat: true })(data);
|
|
19
35
|
};
|
|
20
|
-
exports.
|
|
36
|
+
exports.renderHandlebars = renderHandlebars;
|
|
21
37
|
function parseXmlCustom(text, options) {
|
|
22
38
|
const parser = new fast_xml_parser_1.XMLParser(options);
|
|
23
39
|
parser.addEntity("#x2F", "/");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-mustache-xml.js","sourceRoot":"","sources":["../../../src/abstract-document-xml/handlebars-xml/parse-mustache-xml.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"parse-mustache-xml.js","sourceRoot":"","sources":["../../../src/abstract-document-xml/handlebars-xml/parse-mustache-xml.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "abstract-document",
|
|
3
|
-
"version": "15.0.
|
|
3
|
+
"version": "15.0.8",
|
|
4
4
|
"description": "Dynamically create documents using code or JSX and render to any format",
|
|
5
5
|
"repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-document",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -19,11 +19,12 @@
|
|
|
19
19
|
"!/**/__tests__"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"abstract-image": "^11.0.
|
|
22
|
+
"abstract-image": "^11.0.13",
|
|
23
23
|
"base64-js": "^1.5.1",
|
|
24
24
|
"docx": "^6.0.3",
|
|
25
25
|
"fast-xml-parser": "^4.5.0",
|
|
26
26
|
"handlebars": "4.7.8",
|
|
27
|
+
"mustache": "^4.2.0",
|
|
27
28
|
"pdfkit": "^0.15.1",
|
|
28
29
|
"remark-parse": "^6.0.3",
|
|
29
30
|
"remark-sub-super": "^1.0.19",
|
|
@@ -37,6 +38,7 @@
|
|
|
37
38
|
"devDependencies": {
|
|
38
39
|
"@types/base64-js": "^1.3.2",
|
|
39
40
|
"@types/isomorphic-fetch": "^0.0.34",
|
|
41
|
+
"@types/mustache": "^4.2.5",
|
|
40
42
|
"@types/pdfkit": "^0.13.4",
|
|
41
43
|
"@types/react": "^19.0.10",
|
|
42
44
|
"diff-js-xml": "^1.0.8",
|
|
@@ -46,5 +48,5 @@
|
|
|
46
48
|
"vite": "^6.0.1",
|
|
47
49
|
"vitest": "^2.1.6"
|
|
48
50
|
},
|
|
49
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "d27c98c98740753fc0fcf6a7df7c6ac1262561c2"
|
|
50
52
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { X2jOptions, XMLParser } from "fast-xml-parser";
|
|
2
2
|
import Handlebars from "handlebars";
|
|
3
|
+
import Mustache from "mustache";
|
|
3
4
|
|
|
4
5
|
export type XmlElement = {
|
|
5
6
|
readonly tagName: string;
|
|
@@ -8,17 +9,32 @@ export type XmlElement = {
|
|
|
8
9
|
readonly textContent?: string;
|
|
9
10
|
};
|
|
10
11
|
|
|
12
|
+
export enum TemplateMethod {
|
|
13
|
+
Mustache = 0,
|
|
14
|
+
Handlebars = 1,
|
|
15
|
+
};
|
|
16
|
+
|
|
11
17
|
export const parseMustacheXml = (
|
|
12
18
|
template: string,
|
|
13
19
|
data: any,
|
|
14
|
-
partials: Record<string, string
|
|
20
|
+
partials: Record<string, string>,
|
|
21
|
+
method: TemplateMethod,
|
|
15
22
|
): ReadonlyArray<XmlElement> => {
|
|
16
|
-
|
|
23
|
+
switch(method) {
|
|
24
|
+
case TemplateMethod.Handlebars: {
|
|
25
|
+
return parseXml(renderHandlebars(template, data, partials));
|
|
26
|
+
}
|
|
27
|
+
case TemplateMethod.Mustache:
|
|
28
|
+
default: {
|
|
29
|
+
return parseXml(renderMustache(template, data, partials));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
17
32
|
};
|
|
18
33
|
|
|
19
|
-
export const
|
|
34
|
+
export const renderMustache = Mustache.render;
|
|
35
|
+
export const renderHandlebars = (template: string, data: any, partials: Record<string, string>): string => {
|
|
20
36
|
Object.entries(partials).forEach(([name, partial]) => Handlebars.registerPartial(name, partial));
|
|
21
|
-
return Handlebars.compile(template)(data);
|
|
37
|
+
return Handlebars.compile(template, { compat: true })(data);
|
|
22
38
|
};
|
|
23
39
|
|
|
24
40
|
export function parseXmlCustom(text: string, options: Partial<X2jOptions>): ReadonlyArray<XmlElement> {
|