xml-model 0.1.2 → 0.2.2
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/build/main/defaults/index.js +22 -16
- package/build/main/defaults/models.js +4 -4
- package/build/main/errors.d.ts +4 -0
- package/build/main/errors.js +35 -0
- package/build/main/middleware.js +11 -11
- package/build/main/model/index.d.ts +7 -9
- package/build/main/model/index.js +88 -67
- package/build/main/model/property.js +16 -14
- package/build/main/model/types.d.ts +5 -1
- package/build/main/model/types.js +86 -70
- package/build/main/types.d.ts +10 -2
- package/build/main/types.js +34 -1
- package/build/{module/xml.d.ts → main/xml/index.d.ts} +5 -4
- package/build/main/{xml.js → xml/index.js} +29 -19
- package/build/main/xml/xml-js.d.ts +9 -0
- package/build/main/xml/xml-js.js +26 -0
- package/build/module/defaults/index.js +24 -17
- package/build/module/defaults/models.js +6 -10
- package/build/module/errors.d.ts +4 -0
- package/build/module/errors.js +31 -0
- package/build/module/middleware.js +11 -11
- package/build/module/model/index.d.ts +7 -9
- package/build/module/model/index.js +97 -74
- package/build/module/model/property.js +18 -16
- package/build/module/model/types.d.ts +5 -1
- package/build/module/model/types.js +88 -72
- package/build/module/types.d.ts +10 -2
- package/build/module/types.js +33 -2
- package/build/{main/xml.d.ts → module/xml/index.d.ts} +5 -4
- package/build/module/{xml.js → xml/index.js} +26 -18
- package/build/module/xml/xml-js.d.ts +9 -0
- package/build/module/xml/xml-js.js +24 -0
- package/package.json +2 -2
- package/build/main/model.spec.d.ts +0 -1
- package/build/main/model.spec.js +0 -261
- package/build/module/model.spec.d.ts +0 -1
- package/build/module/model.spec.js +0 -259
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setAttribute = exports.addElement = exports.fromContent = exports.getContent = exports.stringify = exports.parse = void 0;
|
|
6
|
+
exports.deleteAttribute = exports.setAttribute = exports.addElement = exports.fromContent = exports.getContent = exports.stringify = exports.parse = void 0;
|
|
4
7
|
const __RΦ = { m: (k, v) => (t, ...a) => t && Reflect.metadata ? Reflect.metadata(k, v)(t, ...a) : void 0, f: (f, d, n) => (d.forEach(d => d(f)), Object.defineProperty(f, "name", { value: n, writable: false }), f), c: (c, d, dp, dsp, n) => (d.forEach(d => d(c)), dp.forEach(([p, d]) => d(c.prototype, p)), dsp.forEach(([p, d]) => d(c, p)), n ? Object.defineProperty(c, "name", { value: n, writable: false }) : undefined, c), r: (o, a) => (Object.assign(o, a)), a: id => {
|
|
5
8
|
let t = __RΦ.t[id];
|
|
6
9
|
if (t === void 0)
|
|
@@ -16,22 +19,19 @@ const __RΦ = { m: (k, v) => (t, ...a) => t && Reflect.metadata ? Reflect.metada
|
|
|
16
19
|
__RΦ.t[id] = t = l;
|
|
17
20
|
}
|
|
18
21
|
return t;
|
|
19
|
-
}, t: { [13]: { LΦ: t => String }, [
|
|
20
|
-
|
|
22
|
+
}, t: { [13]: { LΦ: t => String }, [109]: { RΦ: t => ({ TΦ: "O", m: [{ n: "elements", f: "", t: __RΦ.a(105) }] }) }, [105]: { RΦ: t => ({ TΦ: "[", e: __RΦ.a(103) }) }, [103]: { LΦ: t => require("../types").IΦXMLElement }, [108]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(10), __RΦ.a(13), __RΦ.a(14), __RΦ.a(17), __RΦ.a(19)] }) }, [10]: { RΦ: t => ({ TΦ: "u" }) }, [14]: { LΦ: t => Number }, [17]: { RΦ: t => ({ TΦ: "0" }) }, [19]: { RΦ: t => ({ TΦ: "1" }) }, [46]: { LΦ: t => "" }, [104]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(10), __RΦ.a(101)] }) }, [101]: { LΦ: t => require("../types").IΦXMLAttributes }, [22]: { RΦ: t => ({ TΦ: "V" }) } } };
|
|
23
|
+
/**
|
|
24
|
+
* @rtti:skip
|
|
25
|
+
*/
|
|
26
|
+
const xml_js_1 = __importDefault(require("./xml-js"));
|
|
21
27
|
function parse(string) {
|
|
22
|
-
return
|
|
28
|
+
return xml_js_1.default.parse(string);
|
|
23
29
|
}
|
|
24
30
|
exports.parse = parse;
|
|
25
31
|
__RΦ.m("rt:p", [{ n: "string", t: () => __RΦ.a(13), v: null }])(parse);
|
|
26
32
|
__RΦ.m("rt:f", "F")(parse);
|
|
27
|
-
__RΦ.m("rt:t", () => __RΦ.a(
|
|
28
|
-
|
|
29
|
-
return (0, xml_js_1.js2xml)(xml, options);
|
|
30
|
-
}
|
|
31
|
-
exports.stringify = stringify;
|
|
32
|
-
__RΦ.m("rt:p", [{ n: "xml", t: () => __RΦ.a(93), v: null }, { n: "options", t: () => __RΦ.a(1021), v: null, f: "?" }])(stringify);
|
|
33
|
-
__RΦ.m("rt:f", "F")(stringify);
|
|
34
|
-
__RΦ.m("rt:t", () => __RΦ.a(13))(stringify);
|
|
33
|
+
__RΦ.m("rt:t", () => __RΦ.a(109))(parse);
|
|
34
|
+
exports.stringify = xml_js_1.default.stringify;
|
|
35
35
|
function getContent(xml) {
|
|
36
36
|
var _a;
|
|
37
37
|
if (((_a = xml.elements) === null || _a === void 0 ? void 0 : _a.length) === 1) {
|
|
@@ -44,9 +44,9 @@ function getContent(xml) {
|
|
|
44
44
|
throw new TypeError(`can't get text from XMLElement: ${JSON.stringify(xml)}`);
|
|
45
45
|
}
|
|
46
46
|
exports.getContent = getContent;
|
|
47
|
-
__RΦ.m("rt:p", [{ n: "xml", t: () => __RΦ.a(
|
|
47
|
+
__RΦ.m("rt:p", [{ n: "xml", t: () => __RΦ.a(103), v: null }])(getContent);
|
|
48
48
|
__RΦ.m("rt:f", "F")(getContent);
|
|
49
|
-
__RΦ.m("rt:t", () => __RΦ.a(
|
|
49
|
+
__RΦ.m("rt:t", () => __RΦ.a(108))(getContent);
|
|
50
50
|
function fromContent(content = "", tag, attributes) {
|
|
51
51
|
const el = {
|
|
52
52
|
elements: content ? [{ type: "text", text: String(content) }] : [],
|
|
@@ -63,16 +63,16 @@ function fromContent(content = "", tag, attributes) {
|
|
|
63
63
|
return el;
|
|
64
64
|
}
|
|
65
65
|
exports.fromContent = fromContent;
|
|
66
|
-
__RΦ.m("rt:p", [{ n: "content", t: () => __RΦ.a(46), v: function () { return ""; } }, { n: "tag", t: () => __RΦ.a(13), v: null, f: "?" }, { n: "attributes", t: () => __RΦ.a(
|
|
66
|
+
__RΦ.m("rt:p", [{ n: "content", t: () => __RΦ.a(46), v: function () { return ""; } }, { n: "tag", t: () => __RΦ.a(13), v: null, f: "?" }, { n: "attributes", t: () => __RΦ.a(104), v: null, f: "?" }])(fromContent);
|
|
67
67
|
__RΦ.m("rt:f", "F")(fromContent);
|
|
68
|
-
__RΦ.m("rt:t", () => __RΦ.a(
|
|
68
|
+
__RΦ.m("rt:t", () => __RΦ.a(103))(fromContent);
|
|
69
69
|
function addElement(xml, element) {
|
|
70
70
|
if (!xml.elements)
|
|
71
71
|
xml.elements = [];
|
|
72
72
|
xml.elements.push(element);
|
|
73
73
|
}
|
|
74
74
|
exports.addElement = addElement;
|
|
75
|
-
__RΦ.m("rt:p", [{ n: "xml", t: () => __RΦ.a(
|
|
75
|
+
__RΦ.m("rt:p", [{ n: "xml", t: () => __RΦ.a(103), v: null }, { n: "element", t: () => __RΦ.a(103), v: null }])(addElement);
|
|
76
76
|
__RΦ.m("rt:f", "F")(addElement);
|
|
77
77
|
__RΦ.m("rt:t", () => __RΦ.a(22))(addElement);
|
|
78
78
|
function setAttribute(xml, attribute, value) {
|
|
@@ -81,15 +81,25 @@ function setAttribute(xml, attribute, value) {
|
|
|
81
81
|
xml.attributes[attribute] = value;
|
|
82
82
|
}
|
|
83
83
|
exports.setAttribute = setAttribute;
|
|
84
|
-
__RΦ.m("rt:p", [{ n: "xml", t: () => __RΦ.a(
|
|
84
|
+
__RΦ.m("rt:p", [{ n: "xml", t: () => __RΦ.a(103), v: null }, { n: "attribute", t: () => __RΦ.a(13), v: null }, { n: "value", t: () => __RΦ.a(13), v: null }])(setAttribute);
|
|
85
85
|
__RΦ.m("rt:f", "F")(setAttribute);
|
|
86
86
|
__RΦ.m("rt:t", () => __RΦ.a(22))(setAttribute);
|
|
87
|
+
function deleteAttribute(xml, attribute) {
|
|
88
|
+
if (!xml.attributes)
|
|
89
|
+
return;
|
|
90
|
+
delete xml.attributes[attribute];
|
|
91
|
+
}
|
|
92
|
+
exports.deleteAttribute = deleteAttribute;
|
|
93
|
+
__RΦ.m("rt:p", [{ n: "xml", t: () => __RΦ.a(103), v: null }, { n: "attribute", t: () => __RΦ.a(13), v: null }])(deleteAttribute);
|
|
94
|
+
__RΦ.m("rt:f", "F")(deleteAttribute);
|
|
95
|
+
__RΦ.m("rt:t", () => __RΦ.a(22))(deleteAttribute);
|
|
87
96
|
const XML = {
|
|
88
97
|
parse,
|
|
89
|
-
stringify,
|
|
98
|
+
stringify: exports.stringify,
|
|
90
99
|
fromContent,
|
|
91
100
|
getContent,
|
|
92
101
|
addElement,
|
|
93
102
|
setAttribute,
|
|
103
|
+
deleteAttribute,
|
|
94
104
|
};
|
|
95
105
|
exports.default = XML;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const __RΦ = { m: (k, v) => (t, ...a) => t && Reflect.metadata ? Reflect.metadata(k, v)(t, ...a) : void 0, f: (f, d, n) => (d.forEach(d => d(f)), Object.defineProperty(f, "name", { value: n, writable: false }), f), c: (c, d, dp, dsp, n) => (d.forEach(d => d(c)), dp.forEach(([p, d]) => d(c.prototype, p)), dsp.forEach(([p, d]) => d(c, p)), n ? Object.defineProperty(c, "name", { value: n, writable: false }) : undefined, c), r: (o, a) => (Object.assign(o, a)), a: id => {
|
|
4
|
+
let t = __RΦ.t[id];
|
|
5
|
+
if (t === void 0)
|
|
6
|
+
return void 0;
|
|
7
|
+
if (t.RΦ) {
|
|
8
|
+
let r = t.RΦ;
|
|
9
|
+
delete t.RΦ;
|
|
10
|
+
__RΦ.r(t, r(t));
|
|
11
|
+
}
|
|
12
|
+
else if (t.LΦ) {
|
|
13
|
+
let l = t.LΦ();
|
|
14
|
+
delete t.LΦ;
|
|
15
|
+
__RΦ.t[id] = t = l;
|
|
16
|
+
}
|
|
17
|
+
return t;
|
|
18
|
+
}, t: {} };
|
|
19
|
+
/**
|
|
20
|
+
* @rtti:skip
|
|
21
|
+
*/
|
|
22
|
+
const xml_js_1 = require("xml-js");
|
|
23
|
+
exports.default = {
|
|
24
|
+
parse: xml_js_1.xml2js,
|
|
25
|
+
stringify: xml_js_1.js2xml,
|
|
26
|
+
};
|
|
@@ -21,18 +21,22 @@ export const defaults = {
|
|
|
21
21
|
throw new TypeError("you should define 'defaults.fromXML' yourself or provide a 'fromXML' function to @Model() decorator's options");
|
|
22
22
|
},
|
|
23
23
|
propertyResolveSourceElements(context) {
|
|
24
|
+
var _a;
|
|
24
25
|
// We assume context.xml.elements is a single tag containing all the props
|
|
25
26
|
// FIXME: is it safe ?
|
|
26
|
-
const innerElements = context.xml.elements[0]
|
|
27
|
+
const innerElements = ((_a = context.xml.elements[0]) === null || _a === void 0 ? void 0 : _a.elements) || [];
|
|
27
28
|
return innerElements.filter((el) => context.property.isSourceElement(el, context));
|
|
28
29
|
},
|
|
29
30
|
propertySourceElementsFilter(element, context) {
|
|
30
|
-
return context.property.tagname
|
|
31
|
+
return context.property.tagname === element.name;
|
|
31
32
|
},
|
|
32
33
|
propertyFromXML(context) {
|
|
33
34
|
// TODO: handle inline
|
|
34
35
|
const prop = context.property;
|
|
35
36
|
const elements = context.elements;
|
|
37
|
+
if (prop.model) {
|
|
38
|
+
return prop.model.fromXML({ elements });
|
|
39
|
+
}
|
|
36
40
|
const type = context.property.reflected.type;
|
|
37
41
|
if (prop.reflected.isOptional && elements.length === 0) {
|
|
38
42
|
return undefined;
|
|
@@ -49,20 +53,18 @@ export const defaults = {
|
|
|
49
53
|
// we assume our array is contained in a root tag
|
|
50
54
|
arrayEl = elements[0];
|
|
51
55
|
}
|
|
52
|
-
else if (prop.inline
|
|
53
|
-
elements.every((el) => el.name === prop.tagname)) {
|
|
56
|
+
else if (prop.inline) {
|
|
54
57
|
// we assume our array is contained in xml.elements
|
|
55
58
|
arrayEl = { elements };
|
|
56
59
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
60
|
+
const els = arrayEl.elements || [];
|
|
61
|
+
const elType = type.elementType;
|
|
62
|
+
if (elType.is("class")) {
|
|
63
|
+
const model = getModel(elType.class);
|
|
64
|
+
const xmlInstances = els.map((el) => ({
|
|
65
|
+
elements: [el],
|
|
66
|
+
}));
|
|
67
|
+
return xmlInstances.map((xml) => model.fromXML(xml));
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
70
|
else if (type.is("union") &&
|
|
@@ -84,14 +86,16 @@ export const defaults = {
|
|
|
84
86
|
/* Object -> XML */
|
|
85
87
|
toXML({ properties, model }) {
|
|
86
88
|
const elements = [];
|
|
87
|
-
model.
|
|
89
|
+
model.resolveAllProperties().forEach((prop) => {
|
|
88
90
|
if (prop.name in properties && typeof prop.name !== "symbol") {
|
|
89
91
|
// FIXME: prop.name should never be a symbol anyway
|
|
90
92
|
const _xml = properties[prop.name];
|
|
91
|
-
// overwrite tagnames
|
|
92
93
|
_xml.elements.forEach((el) => {
|
|
93
|
-
(
|
|
94
|
-
|
|
94
|
+
if (!prop.inline) {
|
|
95
|
+
// overwrite tagnames
|
|
96
|
+
el.name = prop.tagname; // TODO: configurable ?
|
|
97
|
+
}
|
|
98
|
+
elements.push(el);
|
|
95
99
|
});
|
|
96
100
|
}
|
|
97
101
|
});
|
|
@@ -113,6 +117,9 @@ export const defaults = {
|
|
|
113
117
|
},
|
|
114
118
|
propertyToXML(context) {
|
|
115
119
|
const property = context.property;
|
|
120
|
+
if (property.model) {
|
|
121
|
+
return property.model.toXML(context.value);
|
|
122
|
+
}
|
|
116
123
|
const type = property.reflected.type;
|
|
117
124
|
const value = context.value;
|
|
118
125
|
if (property.reflected.isOptional && typeof value === "undefined") {
|
|
@@ -13,17 +13,17 @@ const __RΦ = { m: (k, v) => (t, ...a) => t && Reflect.metadata ? Reflect.metada
|
|
|
13
13
|
__RΦ.t[id] = t = l;
|
|
14
14
|
}
|
|
15
15
|
return t;
|
|
16
|
-
}, t: { [4]: { RΦ: t => ({ TΦ: "~" }) }, [
|
|
16
|
+
}, t: { [4]: { RΦ: t => ({ TΦ: "~" }) }, [109]: { RΦ: t => ({ TΦ: "O", m: [{ n: "elements", f: "", t: __RΦ.a(105) }] }) }, [105]: { RΦ: t => ({ TΦ: "[", e: __RΦ.a(103) }) }, [103]: { LΦ: t => LΦ_0.IΦXMLElement }, [13]: { LΦ: t => String }, [14]: { LΦ: t => Number }, [1694]: { RΦ: t => ({ TΦ: "O", m: [{ n: "elements", f: "", t: __RΦ.a(3121) }] }) }, [3121]: { RΦ: t => ({ TΦ: "[", e: __RΦ.a(3119) }) }, [3119]: { RΦ: t => ({ TΦ: "O", m: [{ n: "type", f: "", t: __RΦ.a(13) }, { n: "name", f: "", t: __RΦ.a(13) }] }) }, [20]: { LΦ: t => Boolean } } };
|
|
17
17
|
import { createModel } from "../model";
|
|
18
18
|
import { getContent, fromContent } from "../xml";
|
|
19
|
-
import * as LΦ_0 from "
|
|
19
|
+
import * as LΦ_0 from "../types";
|
|
20
20
|
// string is <string>value</string>
|
|
21
21
|
createModel(String, {
|
|
22
22
|
toXML: __RΦ.f((ctx) => {
|
|
23
23
|
return {
|
|
24
24
|
elements: [fromContent(ctx.object, "string")],
|
|
25
25
|
};
|
|
26
|
-
}, [__RΦ.m("rt:p", [{ n: "ctx", t: () => __RΦ.a(4), v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(
|
|
26
|
+
}, [__RΦ.m("rt:p", [{ n: "ctx", t: () => __RΦ.a(4), v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(109))], "toXML"),
|
|
27
27
|
fromXML: __RΦ.f((ctx) => {
|
|
28
28
|
return String(getContent(ctx.xml.elements[0]));
|
|
29
29
|
}, [__RΦ.m("rt:p", [{ n: "ctx", t: () => __RΦ.a(4), v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(13))], "fromXML"),
|
|
@@ -34,7 +34,7 @@ createModel(Number, {
|
|
|
34
34
|
return {
|
|
35
35
|
elements: [fromContent(String(ctx.object), "number")],
|
|
36
36
|
};
|
|
37
|
-
}, [__RΦ.m("rt:p", [{ n: "ctx", t: () => __RΦ.a(4), v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(
|
|
37
|
+
}, [__RΦ.m("rt:p", [{ n: "ctx", t: () => __RΦ.a(4), v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(109))], "toXML"),
|
|
38
38
|
fromXML: __RΦ.f((ctx) => {
|
|
39
39
|
return Number(getContent(ctx.xml.elements[0]));
|
|
40
40
|
}, [__RΦ.m("rt:p", [{ n: "ctx", t: () => __RΦ.a(4), v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(14))], "fromXML"),
|
|
@@ -44,14 +44,10 @@ createModel(Boolean, {
|
|
|
44
44
|
toXML: __RΦ.f((ctx) => {
|
|
45
45
|
return {
|
|
46
46
|
elements: [
|
|
47
|
-
{
|
|
48
|
-
type: "element",
|
|
49
|
-
name: "boolean",
|
|
50
|
-
...fromContent(String(ctx.object)),
|
|
51
|
-
},
|
|
47
|
+
Object.assign({ type: "element", name: "boolean" }, fromContent(String(ctx.object))),
|
|
52
48
|
],
|
|
53
49
|
};
|
|
54
|
-
}, [__RΦ.m("rt:p", [{ n: "ctx", t: () => __RΦ.a(4), v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(
|
|
50
|
+
}, [__RΦ.m("rt:p", [{ n: "ctx", t: () => __RΦ.a(4), v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(1694))], "toXML"),
|
|
55
51
|
fromXML: __RΦ.f((ctx) => {
|
|
56
52
|
return Boolean(getContent(ctx.xml.elements[0]));
|
|
57
53
|
}, [__RΦ.m("rt:p", [{ n: "ctx", t: () => __RΦ.a(4), v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(20))], "fromXML"),
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const __RΦ = { m: (k, v) => (t, ...a) => t && Reflect.metadata ? Reflect.metadata(k, v)(t, ...a) : void 0, f: (f, d, n) => (d.forEach(d => d(f)), Object.defineProperty(f, "name", { value: n, writable: false }), f), c: (c, d, dp, dsp, n) => (d.forEach(d => d(c)), dp.forEach(([p, d]) => d(c.prototype, p)), dsp.forEach(([p, d]) => d(c, p)), n ? Object.defineProperty(c, "name", { value: n, writable: false }) : undefined, c), r: (o, a) => (Object.assign(o, a)), a: id => {
|
|
2
|
+
let t = __RΦ.t[id];
|
|
3
|
+
if (t === void 0)
|
|
4
|
+
return void 0;
|
|
5
|
+
if (t.RΦ) {
|
|
6
|
+
let r = t.RΦ;
|
|
7
|
+
delete t.RΦ;
|
|
8
|
+
__RΦ.r(t, r(t));
|
|
9
|
+
}
|
|
10
|
+
else if (t.LΦ) {
|
|
11
|
+
let l = t.LΦ();
|
|
12
|
+
delete t.LΦ;
|
|
13
|
+
__RΦ.t[id] = t = l;
|
|
14
|
+
}
|
|
15
|
+
return t;
|
|
16
|
+
}, t: { [13]: { LΦ: t => String }, [8]: { RΦ: t => ({ TΦ: "U" }) } } };
|
|
17
|
+
export class XMLConversionError extends Error {
|
|
18
|
+
constructor(message, origin) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.origin = origin;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
(t => __RΦ.t[85] = t)(XMLConversionError);
|
|
24
|
+
__RΦ.m("rt:SP", [])(XMLConversionError);
|
|
25
|
+
__RΦ.m("rt:P", ["origin"])(XMLConversionError);
|
|
26
|
+
__RΦ.m("rt:Sm", [])(XMLConversionError);
|
|
27
|
+
__RΦ.m("rt:m", [])(XMLConversionError);
|
|
28
|
+
__RΦ.m("rt:p", [{ n: "message", t: () => __RΦ.a(13), v: null }, { n: "origin", t: () => __RΦ.a(8), v: null, f: "?" }])(XMLConversionError);
|
|
29
|
+
__RΦ.m("rt:f", "Ce")(XMLConversionError);
|
|
30
|
+
__RΦ.m("rt:t", () => __RΦ.a(8))(XMLConversionError.prototype, "origin");
|
|
31
|
+
__RΦ.m("rt:f", "P")(XMLConversionError.prototype, "origin");
|
|
@@ -13,19 +13,19 @@ const __RΦ = { m: (k, v) => (t, ...a) => t && Reflect.metadata ? Reflect.metada
|
|
|
13
13
|
__RΦ.t[id] = t = l;
|
|
14
14
|
}
|
|
15
15
|
return t;
|
|
16
|
-
}, t: { [
|
|
16
|
+
}, t: { [118]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(12), __RΦ.a(115)] }) }, [12]: { RΦ: t => ({ TΦ: "n" }) }, [115]: { TΦ: "5", name: "ChainableOptions" }, [121]: { RΦ: t => ({ TΦ: "[", e: __RΦ.a(120) }) }, [120]: { RΦ: t => ({ TΦ: "O", m: [{ n: "__call", f: "", t: __RΦ.a(4) }] }) }, [4]: { RΦ: t => ({ TΦ: "~" }) }, [124]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(115), p: [__RΦ.a(122), __RΦ.a(123)] }) }, [122]: { LΦ: t => Object }, [123]: { LΦ: t => Object }, [143]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(138), p: [__RΦ.a(125), __RΦ.a(22), __RΦ.a(8)] }) }, [138]: { LΦ: t => Object }, [125]: { RΦ: t => ({ TΦ: "O", m: [{ n: "__call", f: "", t: __RΦ.a(4) }] }) }, [22]: { RΦ: t => ({ TΦ: "V" }) }, [8]: { RΦ: t => ({ TΦ: "U" }) }, [155]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(147), p: [__RΦ.a(158), __RΦ.a(1), __RΦ.a(10)] }) }, [147]: { LΦ: t => Object }, [158]: { RΦ: t => ({ TΦ: "O", m: [{ n: "__call", f: "", t: __RΦ.a(4) }] }) }, [1]: { RΦ: t => ({ TΦ: "~" }) }, [10]: { RΦ: t => ({ TΦ: "u" }) }, [153]: { LΦ: t => Object }, [154]: { LΦ: t => Object } } };
|
|
17
17
|
var IΦChainableOptions = { name: "ChainableOptions", prototype: {}, identity: Symbol("ChainableOptions (interface)") };
|
|
18
|
-
(t => __RΦ.t[
|
|
18
|
+
(t => __RΦ.t[115] = t)(IΦChainableOptions);
|
|
19
19
|
__RΦ.m("rt:P", ["parent", "middlewares"])(IΦChainableOptions);
|
|
20
20
|
__RΦ.m("rt:m", [])(IΦChainableOptions);
|
|
21
21
|
__RΦ.m("rt:f", "I")(IΦChainableOptions);
|
|
22
|
-
__RΦ.m("rt:t", () => __RΦ.a(
|
|
22
|
+
__RΦ.m("rt:t", () => __RΦ.a(118))(IΦChainableOptions.prototype, "parent");
|
|
23
23
|
__RΦ.m("rt:f", "P")(IΦChainableOptions.prototype, "parent");
|
|
24
|
-
__RΦ.m("rt:t", () => __RΦ.a(
|
|
24
|
+
__RΦ.m("rt:t", () => __RΦ.a(121))(IΦChainableOptions.prototype, "middlewares");
|
|
25
25
|
__RΦ.m("rt:f", "P")(IΦChainableOptions.prototype, "middlewares");
|
|
26
|
-
__RΦ.m("rt:t", () => __RΦ.a(
|
|
26
|
+
__RΦ.m("rt:t", () => __RΦ.a(118))(IΦChainableOptions.prototype, "parent");
|
|
27
27
|
__RΦ.m("rt:f", "P")(IΦChainableOptions.prototype, "parent");
|
|
28
|
-
__RΦ.m("rt:t", () => __RΦ.a(
|
|
28
|
+
__RΦ.m("rt:t", () => __RΦ.a(121))(IΦChainableOptions.prototype, "middlewares");
|
|
29
29
|
__RΦ.m("rt:f", "P")(IΦChainableOptions.prototype, "middlewares");
|
|
30
30
|
export function* MiddlewareChain(options) {
|
|
31
31
|
do {
|
|
@@ -38,9 +38,9 @@ export function* MiddlewareChain(options) {
|
|
|
38
38
|
return;
|
|
39
39
|
} while (true);
|
|
40
40
|
}
|
|
41
|
-
__RΦ.m("rt:p", [{ n: "options", t: () => __RΦ.a(
|
|
41
|
+
__RΦ.m("rt:p", [{ n: "options", t: () => __RΦ.a(124), v: null }])(MiddlewareChain);
|
|
42
42
|
__RΦ.m("rt:f", "F")(MiddlewareChain);
|
|
43
|
-
__RΦ.m("rt:t", () => __RΦ.a(
|
|
43
|
+
__RΦ.m("rt:t", () => __RΦ.a(143))(MiddlewareChain);
|
|
44
44
|
export function resolve(middlewares, context) {
|
|
45
45
|
const next = __RΦ.f(() => {
|
|
46
46
|
const { value: nextMiddleware, done } = middlewares.next();
|
|
@@ -52,9 +52,9 @@ export function resolve(middlewares, context) {
|
|
|
52
52
|
else {
|
|
53
53
|
return nextMiddleware(context, next);
|
|
54
54
|
}
|
|
55
|
-
}, [__RΦ.m("rt:p", []), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(
|
|
55
|
+
}, [__RΦ.m("rt:p", []), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(154))], "next");
|
|
56
56
|
return next();
|
|
57
57
|
}
|
|
58
|
-
__RΦ.m("rt:p", [{ n: "middlewares", t: () => __RΦ.a(
|
|
58
|
+
__RΦ.m("rt:p", [{ n: "middlewares", t: () => __RΦ.a(155), v: null }, { n: "context", t: () => __RΦ.a(153), v: null }])(resolve);
|
|
59
59
|
__RΦ.m("rt:f", "F")(resolve);
|
|
60
|
-
__RΦ.m("rt:t", () => __RΦ.a(
|
|
60
|
+
__RΦ.m("rt:t", () => __RΦ.a(154))(resolve);
|
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
2
|
import type { Constructor } from "typescript-rtti";
|
|
3
|
-
import { XMLModelOptions } from "./types";
|
|
3
|
+
import { XMLModelOptions, XMLModelPropertyOptions, CreateXMLModelOptions } from "./types";
|
|
4
4
|
import { XMLRoot } from "../types";
|
|
5
|
-
export interface XMLModelConversionOptions<T> {
|
|
6
|
-
fromXML?: XMLModelOptions<T>["fromXML"]["middlewares"][number];
|
|
7
|
-
tagname?: string;
|
|
8
|
-
toXML?: XMLModelOptions<T>["toXML"]["middlewares"][number];
|
|
9
|
-
}
|
|
10
5
|
export declare class XMLModel<T = any> {
|
|
11
6
|
readonly type: Constructor<T>;
|
|
12
7
|
options: XMLModelOptions<T>;
|
|
13
|
-
constructor(type: Constructor<T>, options:
|
|
8
|
+
constructor(type: Constructor<T>, options: CreateXMLModelOptions<T>);
|
|
14
9
|
fromXML(xml: XMLRoot | string): T;
|
|
15
10
|
toXML(instance: object): XMLRoot;
|
|
16
11
|
get reflectedClass(): import("typescript-rtti").ReflectedClass<Constructor<T>>;
|
|
12
|
+
resolveAllProperties(): Map<string, XMLModelPropertyOptions<any> & {
|
|
13
|
+
model: any;
|
|
14
|
+
}>;
|
|
17
15
|
}
|
|
18
|
-
export declare function createModel<T>(type: Constructor<T>, options:
|
|
16
|
+
export declare function createModel<T>(type: Constructor<T>, options: CreateXMLModelOptions<T>): XMLModel<T>;
|
|
19
17
|
declare type ModelID<T> = Constructor<T>;
|
|
20
18
|
export declare const Models: Map<ModelID<unknown>, XMLModel<unknown>>;
|
|
21
19
|
export declare function findModel<T>(id: ModelID<T>): XMLModel<T> | undefined;
|
|
22
20
|
export declare function getModel<T>(id: ModelID<T>): XMLModel<T>;
|
|
23
|
-
declare function ModelDecoratorFactory<T>(options?:
|
|
21
|
+
declare function ModelDecoratorFactory<T>(options?: CreateXMLModelOptions<T>): (constructor: Constructor<T>) => void;
|
|
24
22
|
export { ModelDecoratorFactory as Model };
|
|
25
23
|
export { Prop } from "./property";
|
|
26
24
|
import "../defaults/models";
|