xml-model 0.3.0 → 1.0.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/README.md +46 -1
- package/dist/defaults.d.ts +14 -0
- package/dist/defaults.js +129 -0
- package/{build/main → dist}/errors.d.ts +1 -1
- package/dist/errors.js +51 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +19 -0
- package/{build/main → dist}/middleware.d.ts +2 -2
- package/dist/middleware.js +31 -0
- package/dist/model/built-ins.d.ts +2 -0
- package/dist/model/built-ins.js +46 -0
- package/{build/module → dist}/model/index.d.ts +7 -11
- package/dist/model/index.js +242 -0
- package/{build/main → dist}/model/property.d.ts +2 -2
- package/dist/model/property.js +71 -0
- package/dist/model/registry.d.ts +8 -0
- package/dist/model/registry.js +26 -0
- package/{build/module → dist}/model/types.d.ts +7 -7
- package/dist/model/types.js +2 -0
- package/{build/module → dist}/types.d.ts +4 -4
- package/dist/types.js +2 -0
- package/dist/util/is-regexp.d.ts +11 -0
- package/dist/util/is-regexp.js +11 -0
- package/dist/util/kebab-case.d.ts +15 -0
- package/dist/util/kebab-case.js +18 -0
- package/dist/util/merge-maps.js +27 -0
- package/{build/main → dist}/xml/index.d.ts +4 -4
- package/dist/xml/index.js +73 -0
- package/{build/main → dist}/xml/xml-js.d.ts +1 -4
- package/dist/xml/xml-js.js +9 -0
- package/package.json +56 -39
- package/vite/dist/_virtual/_commonjs-dynamic-modules.js +7 -0
- package/vite/dist/_virtual/_commonjsHelpers.js +47 -0
- package/vite/dist/_virtual/_typescript.js +5 -0
- package/vite/dist/_virtual/api-call-transformer.js +5 -0
- package/vite/dist/_virtual/class-analyzer.js +5 -0
- package/vite/dist/_virtual/compile-error.js +5 -0
- package/vite/dist/_virtual/declarations-emitter.js +5 -0
- package/vite/dist/_virtual/encode-parameter.js +5 -0
- package/vite/dist/_virtual/find-relative-path.js +5 -0
- package/vite/dist/_virtual/flags.js +5 -0
- package/vite/dist/_virtual/format.js +5 -0
- package/vite/dist/_virtual/forward-ref.js +5 -0
- package/vite/dist/_virtual/get-exports-for-symbol.js +5 -0
- package/vite/dist/_virtual/import-analyzer.js +5 -0
- package/vite/dist/_virtual/index.js +8 -0
- package/vite/dist/_virtual/index2.js +5 -0
- package/vite/dist/_virtual/index3.js +5 -0
- package/vite/dist/_virtual/interface-analyzer.js +5 -0
- package/vite/dist/_virtual/legacy-decorator.js +5 -0
- package/vite/dist/_virtual/legacy-type-encoder.js +5 -0
- package/vite/dist/_virtual/literal-node.js +5 -0
- package/vite/dist/_virtual/metadata-collector.js +5 -0
- package/vite/dist/_virtual/metadata-decorator.js +5 -0
- package/vite/dist/_virtual/metadata-emitter.js +5 -0
- package/vite/dist/_virtual/metadata-encoder.js +5 -0
- package/vite/dist/_virtual/rt-helper.js +5 -0
- package/vite/dist/_virtual/rtti-visitor-base.js +5 -0
- package/vite/dist/_virtual/serialize.js +5 -0
- package/vite/dist/_virtual/type-encoder.js +5 -0
- package/vite/dist/_virtual/type-literal.js +5 -0
- package/vite/dist/_virtual/utils.js +5 -0
- package/vite/dist/_virtual/visitor-base.js +5 -0
- package/vite/dist/_virtual/workarounds.js +5 -0
- package/vite/dist/index.d.ts +21 -0
- package/vite/dist/index.js +62 -0
- package/vite/dist/node_modules/typescript-rtti/dist/common/format.js +69 -0
- package/vite/dist/node_modules/typescript-rtti/dist/common/index.js +34 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/api-call-transformer.js +197 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/class-analyzer.js +124 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/compile-error.js +18 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/import-analyzer.js +130 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/interface-analyzer.js +98 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/visitor-base.js +132 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/declarations-emitter.js +72 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/encode-parameter.js +110 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/find-relative-path.js +51 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/flags.js +59 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/forward-ref.js +35 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/get-exports-for-symbol.js +75 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/index.js +174 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/legacy-decorator.js +20 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/legacy-type-encoder.js +123 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/literal-node.js +19 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/metadata-collector.js +96 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/metadata-decorator.js +99 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/metadata-emitter.js +475 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/metadata-encoder.js +261 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/rt-helper.js +113 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/rtti-visitor-base.js +39 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/serialize.js +46 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/type-encoder.js +96 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/type-literal.js +546 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/utils.js +922 -0
- package/vite/dist/node_modules/typescript-rtti/dist/transformer/workarounds.js +16 -0
- package/build/main/defaults/index.d.ts +0 -14
- package/build/main/defaults/index.js +0 -170
- package/build/main/defaults/models.d.ts +0 -1
- package/build/main/defaults/models.js +0 -55
- package/build/main/errors.js +0 -93
- package/build/main/helper/merge-maps.js +0 -42
- package/build/main/index.d.ts +0 -6
- package/build/main/index.js +0 -46
- package/build/main/middleware.js +0 -61
- package/build/main/model/index.d.ts +0 -23
- package/build/main/model/index.js +0 -342
- package/build/main/model/property.js +0 -100
- package/build/main/model/types.d.ts +0 -73
- package/build/main/model/types.js +0 -152
- package/build/main/types.d.ts +0 -16
- package/build/main/types.js +0 -41
- package/build/main/xml/index.js +0 -105
- package/build/main/xml/xml-js.js +0 -26
- package/build/module/defaults/index.d.ts +0 -14
- package/build/module/defaults/index.js +0 -164
- package/build/module/defaults/models.d.ts +0 -1
- package/build/module/defaults/models.js +0 -54
- package/build/module/errors.d.ts +0 -23
- package/build/module/errors.js +0 -89
- package/build/module/helper/merge-maps.d.ts +0 -1
- package/build/module/helper/merge-maps.js +0 -39
- package/build/module/index.d.ts +0 -6
- package/build/module/index.js +0 -21
- package/build/module/middleware.d.ts +0 -9
- package/build/module/middleware.js +0 -56
- package/build/module/model/index.js +0 -334
- package/build/module/model/property.d.ts +0 -5
- package/build/module/model/property.js +0 -99
- package/build/module/model/types.js +0 -152
- package/build/module/types.js +0 -38
- package/build/module/xml/index.d.ts +0 -32
- package/build/module/xml/index.js +0 -94
- package/build/module/xml/xml-js.d.ts +0 -9
- package/build/module/xml/xml-js.js +0 -24
- /package/{build/main/helper → dist/util}/merge-maps.d.ts +0 -0
|
@@ -1,342 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Prop = exports.Model = exports.getModel = exports.findModel = exports.Models = exports.createModel = exports.XMLModel = void 0;
|
|
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 => {
|
|
8
|
-
let t = __RΦ.t[id];
|
|
9
|
-
if (t === void 0)
|
|
10
|
-
return void 0;
|
|
11
|
-
if (t.RΦ) {
|
|
12
|
-
let r = t.RΦ;
|
|
13
|
-
delete t.RΦ;
|
|
14
|
-
__RΦ.r(t, r(t));
|
|
15
|
-
}
|
|
16
|
-
else if (t.LΦ) {
|
|
17
|
-
let l = t.LΦ();
|
|
18
|
-
delete t.LΦ;
|
|
19
|
-
__RΦ.t[id] = t = l;
|
|
20
|
-
}
|
|
21
|
-
return t;
|
|
22
|
-
}, t: { [1316]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(270)] }) }, [777]: { LΦ: t => require("typescript-rtti/dist").IΦConstructor }, [270]: { LΦ: t => Object }, [1076]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(8)] }) }, [8]: { RΦ: t => ({ TΦ: "U" }) }, [2448]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(129), p: [__RΦ.a(1076), __RΦ.a(22), __RΦ.a(8)] }) }, [129]: { LΦ: t => Object }, [22]: { RΦ: t => ({ TΦ: "V" }) }, [272]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(269), p: [__RΦ.a(1)] }) }, [269]: { TΦ: "5", name: "XMLModel" }, [1]: { RΦ: t => ({ TΦ: "~" }) }, [2452]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(12), __RΦ.a(272)] }) }, [12]: { RΦ: t => ({ TΦ: "n" }) }, [2461]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(2268), p: [__RΦ.a(270)] }) }, [2268]: { LΦ: t => require("./types").IΦCreateXMLModelOptions }, [527]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(198), p: [__RΦ.a(270)] }) }, [198]: { LΦ: t => require("./types").IΦXMLModelOptions }, [2485]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(12), __RΦ.a(2043)] }) }, [2043]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(216), p: [__RΦ.a(335), __RΦ.a(2041)] }) }, [216]: { LΦ: t => require("./types").IΦConversionOptions }, [335]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(336), p: [__RΦ.a(279), __RΦ.a(211)], m: [{ n: "model", f: "", t: __RΦ.a(272) }, { n: "xml", f: "", t: __RΦ.a(100) }] }) }, [336]: { LΦ: t => Object }, [279]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(220), p: [__RΦ.a(1)] }) }, [220]: { LΦ: t => require("./types").IΦfromXMLContext }, [211]: { LΦ: t => "properties" }, [100]: { RΦ: t => ({ TΦ: "O", m: [{ n: "elements", f: "", t: __RΦ.a(96) }] }) }, [96]: { RΦ: t => ({ TΦ: "[", e: __RΦ.a(93) }) }, [93]: { LΦ: t => require("../types").IΦXMLElement }, [2041]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(2042), p: [__RΦ.a(1)], m: [] }) }, [2042]: { LΦ: t => Object }, [4]: { RΦ: t => ({ TΦ: "~" }) }, [576]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(577), p: [__RΦ.a(270)], m: [] }) }, [577]: { LΦ: t => Object }, [2493]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(12), __RΦ.a(2491)] }) }, [2491]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(216), p: [__RΦ.a(1333), __RΦ.a(1302)] }) }, [1333]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(1334), p: [__RΦ.a(1293), __RΦ.a(211)], m: [{ n: "object", f: "", t: __RΦ.a(1) }, { n: "model", f: "", t: __RΦ.a(272) }] }) }, [1334]: { LΦ: t => Object }, [1293]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(258), p: [__RΦ.a(1)] }) }, [258]: { LΦ: t => require("./types").IΦtoXMLContext }, [1302]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(1303), p: [__RΦ.a(1)], m: [] }) }, [1303]: { LΦ: t => Object }, [1359]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(1360), p: [__RΦ.a(270)], m: [] }) }, [1360]: { LΦ: t => Object }, [20]: { LΦ: t => Boolean }, [579]: { RΦ: t => ({ TΦ: "O", m: [{ n: "fromXML", f: "", t: __RΦ.a(588) }, { n: "toXML", f: "", t: __RΦ.a(1369) }, { n: "options", f: "", t: __RΦ.a(1577) }] }) }, [588]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(216), p: [__RΦ.a(586), __RΦ.a(576)] }) }, [586]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(587), p: [__RΦ.a(528), __RΦ.a(211)], m: [{ n: "model", f: "", t: __RΦ.a(269) }, { n: "xml", f: "", t: __RΦ.a(100) }] }) }, [587]: { LΦ: t => Object }, [528]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(220), p: [__RΦ.a(270)] }) }, [1369]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(216), p: [__RΦ.a(1367), __RΦ.a(1359)] }) }, [1367]: { RΦ: t => ({ TΦ: "m", t: __RΦ.a(1368), p: [__RΦ.a(1340), __RΦ.a(211)], m: [{ n: "object", f: "", t: __RΦ.a(270) }, { n: "model", f: "", t: __RΦ.a(269) }] }) }, [1368]: { LΦ: t => Object }, [1340]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(258), p: [__RΦ.a(270)] }) }, [1577]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(1066), p: [__RΦ.a(1575), __RΦ.a(1576)] }) }, [1066]: { LΦ: t => Map }, [1575]: { LΦ: t => Object }, [1576]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(235), p: [__RΦ.a(270)] }) }, [235]: { LΦ: t => require("./types").IΦXMLModelPropertyOptions }, [2509]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(12), __RΦ.a(2507)] }) }, [2507]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(216), p: [__RΦ.a(279), __RΦ.a(1)] }) }, [2513]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(12), __RΦ.a(2511)] }) }, [2511]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(216), p: [__RΦ.a(1293), __RΦ.a(100)] }) }, [13]: { LΦ: t => String }, [352]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(13), __RΦ.a(100)] }) }, [28]: { LΦ: t => Object }, [1768]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(1764), p: [__RΦ.a(1316)] }) }, [1764]: { LΦ: t => require("typescript-rtti/dist").ReflectedClass }, [1562]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(1066), p: [__RΦ.a(13), __RΦ.a(1561)] }) }, [1561]: { RΦ: t => ({ TΦ: "&", t: [__RΦ.a(338), __RΦ.a(1560)] }) }, [338]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(235), p: [__RΦ.a(1)] }) }, [1560]: { RΦ: t => ({ TΦ: "O", m: [{ n: "model", f: "", t: __RΦ.a(1) }] }) }, [2272]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(2267)] }) }, [2267]: { LΦ: t => Object }, [2271]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(2268), p: [__RΦ.a(2267)] }) }, [2302]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(269), p: [__RΦ.a(2267)] }) }, [1055]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(1054)] }) }, [1054]: { LΦ: t => Object }, [1080]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(10), __RΦ.a(1079)] }) }, [10]: { RΦ: t => ({ TΦ: "u" }) }, [1079]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(269), p: [__RΦ.a(1054)] }) }, [782]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(776)] }) }, [776]: { LΦ: t => Object }, [1081]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(269), p: [__RΦ.a(776)] }) }, [2564]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(2268), p: [__RΦ.a(2563)] }) }, [2563]: { LΦ: t => Object }, [2566]: { RΦ: t => ({ TΦ: "F", r: __RΦ.a(22), p: [{ n: "constructor", t: () => __RΦ.a(2567), b: void 0, v: null }], f: "" }) }, [2567]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(2563)] }) } } };
|
|
23
|
-
const typescript_rtti_1 = require("typescript-rtti");
|
|
24
|
-
const middleware_1 = require("../middleware");
|
|
25
|
-
const property_1 = require("./property");
|
|
26
|
-
const xml_1 = __importDefault(require("../xml"));
|
|
27
|
-
const defaults_1 = require("../defaults");
|
|
28
|
-
function* ParentChain(constructor) {
|
|
29
|
-
let parent = Object.getPrototypeOf(constructor);
|
|
30
|
-
if (parent === constructor) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
while (parent) {
|
|
34
|
-
yield parent;
|
|
35
|
-
const _parent = Object.getPrototypeOf(constructor);
|
|
36
|
-
if (parent === _parent) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
parent = _parent;
|
|
40
|
-
}
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
__RΦ.m("rt:p", [{ n: "constructor", t: () => __RΦ.a(1076), b: void 0, v: null }])(ParentChain);
|
|
44
|
-
__RΦ.m("rt:f", "F")(ParentChain);
|
|
45
|
-
__RΦ.m("rt:t", () => __RΦ.a(2448))(ParentChain);
|
|
46
|
-
function getParentModel(model) {
|
|
47
|
-
if (model.options.parent)
|
|
48
|
-
return model.options.parent;
|
|
49
|
-
for (const constructor of ParentChain(model.type)) {
|
|
50
|
-
const model = findModel(constructor);
|
|
51
|
-
if (model) {
|
|
52
|
-
return model;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
__RΦ.m("rt:p", [{ n: "model", t: () => __RΦ.a(272), b: void 0, v: null }])(getParentModel);
|
|
58
|
-
__RΦ.m("rt:f", "F")(getParentModel);
|
|
59
|
-
__RΦ.m("rt:t", () => __RΦ.a(2452))(getParentModel);
|
|
60
|
-
class XMLModel {
|
|
61
|
-
constructor(type, options) {
|
|
62
|
-
this.type = type;
|
|
63
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
64
|
-
const model = this;
|
|
65
|
-
let parent = undefined;
|
|
66
|
-
const getParent = __RΦ.f(() => {
|
|
67
|
-
if (typeof parent === "undefined")
|
|
68
|
-
parent = getParentModel(this);
|
|
69
|
-
return parent;
|
|
70
|
-
}, [__RΦ.m("rt:p", []), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(2452))], "getParent");
|
|
71
|
-
let propertiesLoaded = false;
|
|
72
|
-
const properties = {
|
|
73
|
-
options: new Map(),
|
|
74
|
-
fromXML: {
|
|
75
|
-
get parent() {
|
|
76
|
-
var _a;
|
|
77
|
-
return ((_a = getParent()) === null || _a === void 0 ? void 0 : _a.options.properties.fromXML) || null;
|
|
78
|
-
},
|
|
79
|
-
middlewares: [
|
|
80
|
-
__RΦ.f((context, next) => {
|
|
81
|
-
const record = getParent() ? next() : {};
|
|
82
|
-
properties.options.forEach(__RΦ.f((property) => {
|
|
83
|
-
const xml = context.xml;
|
|
84
|
-
const elements = property.resolveElements({
|
|
85
|
-
model,
|
|
86
|
-
xml,
|
|
87
|
-
property,
|
|
88
|
-
});
|
|
89
|
-
const propertyFromXMLContext = {
|
|
90
|
-
model,
|
|
91
|
-
xml: context.xml,
|
|
92
|
-
property,
|
|
93
|
-
elements,
|
|
94
|
-
};
|
|
95
|
-
try {
|
|
96
|
-
record[property.name] = property.fromXML(propertyFromXMLContext);
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
if (error instanceof errors_1.FromXMLConversionError) {
|
|
100
|
-
// TODO: might add some more context
|
|
101
|
-
throw error;
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
throw new errors_1.PropertyFromXMLConversionError(context, propertyFromXMLContext, error);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}, [__RΦ.m("rt:p", [{ n: "property", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(22))], ""));
|
|
108
|
-
return record;
|
|
109
|
-
}, [__RΦ.m("rt:p", [{ n: "context", t: () => __RΦ.a(4), b: void 0, v: null }, { n: "next", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(576))], ""),
|
|
110
|
-
],
|
|
111
|
-
},
|
|
112
|
-
toXML: {
|
|
113
|
-
get parent() {
|
|
114
|
-
var _a;
|
|
115
|
-
return ((_a = getParent()) === null || _a === void 0 ? void 0 : _a.options.properties.toXML) || null;
|
|
116
|
-
},
|
|
117
|
-
middlewares: [
|
|
118
|
-
__RΦ.f((context, next) => {
|
|
119
|
-
const record = getParent() ? next() : {};
|
|
120
|
-
properties.options.forEach(__RΦ.f((options) => {
|
|
121
|
-
const propertyToXMLContext = {
|
|
122
|
-
model,
|
|
123
|
-
object: context.object,
|
|
124
|
-
property: options,
|
|
125
|
-
value: context.object[options.name],
|
|
126
|
-
};
|
|
127
|
-
try {
|
|
128
|
-
record[options.name] = options.toXML(propertyToXMLContext);
|
|
129
|
-
}
|
|
130
|
-
catch (error) {
|
|
131
|
-
if (error instanceof errors_1.ToXMLConversionError) {
|
|
132
|
-
// TODO: might add some more context
|
|
133
|
-
throw error;
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
throw new errors_1.PropertyToXMLConversionError(context, propertyToXMLContext, error);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}, [__RΦ.m("rt:p", [{ n: "options", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(22))], ""));
|
|
140
|
-
return record;
|
|
141
|
-
}, [__RΦ.m("rt:p", [{ n: "context", t: () => __RΦ.a(4), b: void 0, v: null }, { n: "next", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(1359))], ""),
|
|
142
|
-
],
|
|
143
|
-
},
|
|
144
|
-
};
|
|
145
|
-
const loadProperties = __RΦ.f(() => {
|
|
146
|
-
const props = this.reflectedClass.ownProperties.filter(__RΦ.f((prop) => typeof prop.host.constructor.prototype[prop.name] !== "function", [__RΦ.m("rt:p", [{ n: "prop", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(20))], "")); // filter out methods like String.prototype.concat etc... that are seen as properties
|
|
147
|
-
props.forEach(__RΦ.f((property) => {
|
|
148
|
-
const options = (0, property_1.getPropertyConversionOptions)(this.type, property.name);
|
|
149
|
-
if (!options.ignored) {
|
|
150
|
-
properties.options.set(property.name, options);
|
|
151
|
-
}
|
|
152
|
-
}, [__RΦ.m("rt:p", [{ n: "property", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(22))], ""));
|
|
153
|
-
propertiesLoaded = true;
|
|
154
|
-
}, [__RΦ.m("rt:p", []), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(22))], "");
|
|
155
|
-
this.options = {
|
|
156
|
-
get properties() {
|
|
157
|
-
if (!propertiesLoaded)
|
|
158
|
-
loadProperties();
|
|
159
|
-
return properties;
|
|
160
|
-
},
|
|
161
|
-
fromXML: {
|
|
162
|
-
middlewares: [],
|
|
163
|
-
get parent() {
|
|
164
|
-
var _a;
|
|
165
|
-
return ((_a = getParent()) === null || _a === void 0 ? void 0 : _a.options.fromXML) || null;
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
|
-
toXML: {
|
|
169
|
-
middlewares: [],
|
|
170
|
-
get parent() {
|
|
171
|
-
var _a;
|
|
172
|
-
return ((_a = getParent()) === null || _a === void 0 ? void 0 : _a.options.toXML) || null;
|
|
173
|
-
},
|
|
174
|
-
},
|
|
175
|
-
get tagname() {
|
|
176
|
-
return options.tagname || defaults_1.defaults.tagnameFromModel(model);
|
|
177
|
-
},
|
|
178
|
-
};
|
|
179
|
-
if (options.parent)
|
|
180
|
-
this.options.parent = options.parent;
|
|
181
|
-
if (!getParent()) {
|
|
182
|
-
this.options.fromXML.middlewares.push(__RΦ.f((...args) => defaults_1.defaults.fromXML(...args), [__RΦ.m("rt:p", [{ n: "args", t: () => __RΦ.a(4), b: void 0, v: null, f: "3" }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(1))], ""));
|
|
183
|
-
this.options.toXML.middlewares.push(__RΦ.f((...args) => defaults_1.defaults.toXML(...args), [__RΦ.m("rt:p", [{ n: "args", t: () => __RΦ.a(4), b: void 0, v: null, f: "3" }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(100))], ""));
|
|
184
|
-
}
|
|
185
|
-
if (options.fromXML)
|
|
186
|
-
this.options.fromXML.middlewares.push(options.fromXML);
|
|
187
|
-
if (options.toXML)
|
|
188
|
-
this.options.toXML.middlewares.push(options.toXML);
|
|
189
|
-
}
|
|
190
|
-
fromXML(xml) {
|
|
191
|
-
const _xml = typeof xml === "string" ? xml_1.default.parse(xml) : xml;
|
|
192
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
193
|
-
const model = this;
|
|
194
|
-
const context = {
|
|
195
|
-
xml: _xml,
|
|
196
|
-
get properties() {
|
|
197
|
-
const propContext = {
|
|
198
|
-
xml: _xml,
|
|
199
|
-
model,
|
|
200
|
-
};
|
|
201
|
-
return (0, middleware_1.resolve)((0, middleware_1.MiddlewareChain)(model.options.properties.fromXML), propContext);
|
|
202
|
-
},
|
|
203
|
-
model,
|
|
204
|
-
};
|
|
205
|
-
return (0, middleware_1.resolve)((0, middleware_1.MiddlewareChain)(this.options.fromXML), context);
|
|
206
|
-
}
|
|
207
|
-
toXML(instance) {
|
|
208
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
209
|
-
const model = this;
|
|
210
|
-
if (instance instanceof this.type ||
|
|
211
|
-
(typeof instance !== "undefined" && instance.constructor === this.type) // FIXME: allow instance to be Undefined ?
|
|
212
|
-
) {
|
|
213
|
-
// intanceof won't work with type "String" for example
|
|
214
|
-
const context = {
|
|
215
|
-
object: instance,
|
|
216
|
-
get properties() {
|
|
217
|
-
const propContext = {
|
|
218
|
-
object: instance,
|
|
219
|
-
model,
|
|
220
|
-
};
|
|
221
|
-
return (0, middleware_1.resolve)((0, middleware_1.MiddlewareChain)(model.options.properties.toXML), propContext);
|
|
222
|
-
},
|
|
223
|
-
model: this,
|
|
224
|
-
};
|
|
225
|
-
return (0, middleware_1.resolve)((0, middleware_1.MiddlewareChain)(this.options.toXML), context);
|
|
226
|
-
}
|
|
227
|
-
else {
|
|
228
|
-
throw new TypeError(`provided object is not an instance of ${this.type.name}`);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
get reflectedClass() {
|
|
232
|
-
return (0, typescript_rtti_1.reflect)(this.type, { TΦ: "c", t: void 0, p: [__RΦ.a(1316)], r: void 0, tp: [] });
|
|
233
|
-
}
|
|
234
|
-
resolveAllProperties() {
|
|
235
|
-
const ownProperties = new Map();
|
|
236
|
-
const parent = getParentModel(this);
|
|
237
|
-
this.options.properties.options.forEach(__RΦ.f((options, key) => {
|
|
238
|
-
ownProperties.set(key, new Proxy(options, {
|
|
239
|
-
get: __RΦ.f((target, p, reciever) => {
|
|
240
|
-
if (p === "model")
|
|
241
|
-
return this;
|
|
242
|
-
else
|
|
243
|
-
return Reflect.get(target, p, reciever);
|
|
244
|
-
}, [__RΦ.m("rt:p", [{ n: "target", t: () => __RΦ.a(4), b: void 0, v: null }, { n: "p", t: () => __RΦ.a(4), b: void 0, v: null }, { n: "reciever", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(1))], "get"),
|
|
245
|
-
}) // FIXME: is typing ok ?
|
|
246
|
-
);
|
|
247
|
-
}, [__RΦ.m("rt:p", [{ n: "options", t: () => __RΦ.a(4), b: void 0, v: null }, { n: "key", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(22))], ""));
|
|
248
|
-
const res = parent
|
|
249
|
-
? (0, merge_maps_1.default)(parent.resolveAllProperties(), ownProperties)
|
|
250
|
-
: ownProperties;
|
|
251
|
-
return res;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
exports.XMLModel = XMLModel;
|
|
255
|
-
(t => __RΦ.t[269] = t)(XMLModel);
|
|
256
|
-
__RΦ.m("rt:SP", [])(XMLModel);
|
|
257
|
-
__RΦ.m("rt:P", ["options", "type", "reflectedClass"])(XMLModel);
|
|
258
|
-
__RΦ.m("rt:Sm", [])(XMLModel);
|
|
259
|
-
__RΦ.m("rt:m", ["fromXML", "toXML", "resolveAllProperties"])(XMLModel);
|
|
260
|
-
__RΦ.m("rt:p", [{ n: "type", t: () => __RΦ.a(1316), b: void 0, v: null, f: "R" }, { n: "options", t: () => __RΦ.a(2461), b: void 0, v: null }])(XMLModel);
|
|
261
|
-
__RΦ.m("rt:f", "Ce")(XMLModel);
|
|
262
|
-
__RΦ.m("rt:t", () => __RΦ.a(527))(XMLModel.prototype, "options");
|
|
263
|
-
__RΦ.m("rt:f", "P")(XMLModel.prototype, "options");
|
|
264
|
-
__RΦ.m("rt:t", () => __RΦ.a(2485))(XMLModel.prototype, "parent");
|
|
265
|
-
__RΦ.m("rt:f", "P")(XMLModel.prototype, "parent");
|
|
266
|
-
__RΦ.m("rt:t", () => __RΦ.a(2493))(XMLModel.prototype, "parent");
|
|
267
|
-
__RΦ.m("rt:f", "P")(XMLModel.prototype, "parent");
|
|
268
|
-
__RΦ.m("rt:t", () => __RΦ.a(579))(XMLModel.prototype, "properties");
|
|
269
|
-
__RΦ.m("rt:f", "P")(XMLModel.prototype, "properties");
|
|
270
|
-
__RΦ.m("rt:t", () => __RΦ.a(2509))(XMLModel.prototype, "parent");
|
|
271
|
-
__RΦ.m("rt:f", "P")(XMLModel.prototype, "parent");
|
|
272
|
-
__RΦ.m("rt:t", () => __RΦ.a(2513))(XMLModel.prototype, "parent");
|
|
273
|
-
__RΦ.m("rt:f", "P")(XMLModel.prototype, "parent");
|
|
274
|
-
__RΦ.m("rt:t", () => __RΦ.a(13))(XMLModel.prototype, "tagname");
|
|
275
|
-
__RΦ.m("rt:f", "P")(XMLModel.prototype, "tagname");
|
|
276
|
-
__RΦ.m("rt:f", "M.")(XMLModel.prototype["fromXML"]);
|
|
277
|
-
((t, p) => __RΦ.m("rt:h", () => typeof t === "object" ? t.constructor : t)(t[p]))(XMLModel.prototype, "fromXML");
|
|
278
|
-
__RΦ.m("rt:p", [{ n: "xml", t: () => __RΦ.a(352), b: void 0, v: null }])(XMLModel.prototype, "fromXML");
|
|
279
|
-
__RΦ.m("rt:f", "M.")(XMLModel.prototype, "fromXML");
|
|
280
|
-
__RΦ.m("rt:t", () => __RΦ.a(270))(XMLModel.prototype, "fromXML");
|
|
281
|
-
__RΦ.m("rt:t", () => __RΦ.a(576))(XMLModel.prototype, "properties");
|
|
282
|
-
__RΦ.m("rt:f", "P")(XMLModel.prototype, "properties");
|
|
283
|
-
__RΦ.m("rt:f", "M.")(XMLModel.prototype["toXML"]);
|
|
284
|
-
((t, p) => __RΦ.m("rt:h", () => typeof t === "object" ? t.constructor : t)(t[p]))(XMLModel.prototype, "toXML");
|
|
285
|
-
__RΦ.m("rt:p", [{ n: "instance", t: () => __RΦ.a(28), b: void 0, v: null }])(XMLModel.prototype, "toXML");
|
|
286
|
-
__RΦ.m("rt:f", "M.")(XMLModel.prototype, "toXML");
|
|
287
|
-
__RΦ.m("rt:t", () => __RΦ.a(100))(XMLModel.prototype, "toXML");
|
|
288
|
-
__RΦ.m("rt:t", () => __RΦ.a(1359))(XMLModel.prototype, "properties");
|
|
289
|
-
__RΦ.m("rt:f", "P")(XMLModel.prototype, "properties");
|
|
290
|
-
__RΦ.m("rt:t", () => __RΦ.a(1768))(XMLModel.prototype, "reflectedClass");
|
|
291
|
-
__RΦ.m("rt:f", "P")(XMLModel.prototype, "reflectedClass");
|
|
292
|
-
__RΦ.m("rt:f", "M.")(XMLModel.prototype["resolveAllProperties"]);
|
|
293
|
-
((t, p) => __RΦ.m("rt:h", () => typeof t === "object" ? t.constructor : t)(t[p]))(XMLModel.prototype, "resolveAllProperties");
|
|
294
|
-
__RΦ.m("rt:p", [])(XMLModel.prototype, "resolveAllProperties");
|
|
295
|
-
__RΦ.m("rt:f", "M.")(XMLModel.prototype, "resolveAllProperties");
|
|
296
|
-
__RΦ.m("rt:t", () => __RΦ.a(1562))(XMLModel.prototype, "resolveAllProperties");
|
|
297
|
-
function createModel(type, options) {
|
|
298
|
-
if (findModel(type)) {
|
|
299
|
-
throw new TypeError(`a model for type ${type.name} already exists`);
|
|
300
|
-
}
|
|
301
|
-
const model = new XMLModel(type, options);
|
|
302
|
-
exports.Models.set(type, model);
|
|
303
|
-
return model;
|
|
304
|
-
}
|
|
305
|
-
exports.createModel = createModel;
|
|
306
|
-
__RΦ.m("rt:p", [{ n: "type", t: () => __RΦ.a(2272), b: void 0, v: null }, { n: "options", t: () => __RΦ.a(2271), b: void 0, v: null }])(createModel);
|
|
307
|
-
__RΦ.m("rt:f", "F")(createModel);
|
|
308
|
-
__RΦ.m("rt:t", () => __RΦ.a(2302))(createModel);
|
|
309
|
-
exports.Models = new Map();
|
|
310
|
-
function findModel(id) {
|
|
311
|
-
return exports.Models.get(id);
|
|
312
|
-
}
|
|
313
|
-
exports.findModel = findModel;
|
|
314
|
-
__RΦ.m("rt:p", [{ n: "id", t: () => __RΦ.a(1055), b: void 0, v: null }])(findModel);
|
|
315
|
-
__RΦ.m("rt:f", "F")(findModel);
|
|
316
|
-
__RΦ.m("rt:t", () => __RΦ.a(1080))(findModel);
|
|
317
|
-
function getModel(id) {
|
|
318
|
-
const model = findModel(id);
|
|
319
|
-
if (model)
|
|
320
|
-
return model;
|
|
321
|
-
else
|
|
322
|
-
throw new TypeError(`couln't find model for type ${id.name}`);
|
|
323
|
-
}
|
|
324
|
-
exports.getModel = getModel;
|
|
325
|
-
__RΦ.m("rt:p", [{ n: "id", t: () => __RΦ.a(782), b: void 0, v: null }])(getModel);
|
|
326
|
-
__RΦ.m("rt:f", "F")(getModel);
|
|
327
|
-
__RΦ.m("rt:t", () => __RΦ.a(1081))(getModel);
|
|
328
|
-
// Model decorator
|
|
329
|
-
function ModelDecoratorFactory(options) {
|
|
330
|
-
return __RΦ.f(function (constructor) {
|
|
331
|
-
findModel(constructor) || createModel(constructor, options || {});
|
|
332
|
-
}, [__RΦ.m("rt:p", [{ n: "constructor", t: () => __RΦ.a(2567), b: void 0, v: null }]), __RΦ.m("rt:f", "M"), __RΦ.m("rt:t", () => __RΦ.a(22))], "");
|
|
333
|
-
}
|
|
334
|
-
exports.Model = ModelDecoratorFactory;
|
|
335
|
-
__RΦ.m("rt:p", [{ n: "options", t: () => __RΦ.a(2564), b: void 0, v: null, f: "?" }])(ModelDecoratorFactory);
|
|
336
|
-
__RΦ.m("rt:f", "F")(ModelDecoratorFactory);
|
|
337
|
-
__RΦ.m("rt:t", () => __RΦ.a(2566))(ModelDecoratorFactory);
|
|
338
|
-
var property_2 = require("./property");
|
|
339
|
-
Object.defineProperty(exports, "Prop", { enumerable: true, get: function () { return property_2.Prop; } });
|
|
340
|
-
require("../defaults/models");
|
|
341
|
-
const errors_1 = require("../errors");
|
|
342
|
-
const merge_maps_1 = __importDefault(require("../helper/merge-maps"));
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Prop = exports.getPropertyConversionOptions = void 0;
|
|
4
|
-
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
|
-
let t = __RΦ.t[id];
|
|
6
|
-
if (t === void 0)
|
|
7
|
-
return void 0;
|
|
8
|
-
if (t.RΦ) {
|
|
9
|
-
let r = t.RΦ;
|
|
10
|
-
delete t.RΦ;
|
|
11
|
-
__RΦ.r(t, r(t));
|
|
12
|
-
}
|
|
13
|
-
else if (t.LΦ) {
|
|
14
|
-
let l = t.LΦ();
|
|
15
|
-
delete t.LΦ;
|
|
16
|
-
__RΦ.t[id] = t = l;
|
|
17
|
-
}
|
|
18
|
-
return t;
|
|
19
|
-
}, t: { [1620]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(1615)] }) }, [777]: { LΦ: t => require("typescript-rtti/dist").IΦConstructor }, [1615]: { LΦ: t => Object }, [1619]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(1616), p: [__RΦ.a(1615)] }) }, [1616]: { LΦ: t => require("./types").IΦCreateXMLModelPropertyOptions }, [1622]: { LΦ: t => Object }, [1623]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(235), p: [__RΦ.a(1615)] }) }, [235]: { LΦ: t => require("./types").IΦXMLModelPropertyOptions }, [783]: { LΦ: t => require("typescript-rtti/dist").ReflectedProperty }, [13]: { LΦ: t => String }, [4]: { RΦ: t => ({ TΦ: "~" }) }, [20]: { LΦ: t => Boolean }, [96]: { RΦ: t => ({ TΦ: "[", e: __RΦ.a(93) }) }, [93]: { LΦ: t => require("../types").IΦXMLElement }, [1]: { RΦ: t => ({ TΦ: "~" }) }, [100]: { RΦ: t => ({ TΦ: "O", m: [{ n: "elements", f: "", t: __RΦ.a(96) }] }) }, [2102]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(2101)] }) }, [2101]: { LΦ: t => Object }, [2104]: { LΦ: t => Object }, [2105]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(235), p: [__RΦ.a(2101)] }) }, [22]: { RΦ: t => ({ TΦ: "V" }) }, [2117]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(2116)] }) }, [2116]: { LΦ: t => Object }, [2119]: { LΦ: t => Object }, [2128]: { RΦ: t => ({ TΦ: "|", t: [__RΦ.a(10), __RΦ.a(2120)] }) }, [10]: { RΦ: t => ({ TΦ: "u" }) }, [2120]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(235), p: [__RΦ.a(2116)] }) }, [2134]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(777), p: [__RΦ.a(2133)] }) }, [2133]: { LΦ: t => Object }, [2136]: { LΦ: t => Object }, [2160]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(235), p: [__RΦ.a(2133)] }) }, [2167]: { RΦ: t => ({ TΦ: "g", t: __RΦ.a(1616), p: [__RΦ.a(2166)] }) }, [2166]: { LΦ: t => Object }, [2169]: { RΦ: t => ({ TΦ: "F", r: __RΦ.a(22), p: [{ n: "prototype", t: () => __RΦ.a(1), b: void 0, v: null }, { n: "property", t: () => __RΦ.a(2171), b: void 0, v: null }], f: "" }) }, [2171]: { LΦ: t => Object } } };
|
|
20
|
-
const typescript_rtti_1 = require("typescript-rtti");
|
|
21
|
-
const defaults_1 = require("../defaults");
|
|
22
|
-
function resolvePropertyConversionOptions(options, constructor, property) {
|
|
23
|
-
const _options = {
|
|
24
|
-
name: property,
|
|
25
|
-
get reflected() {
|
|
26
|
-
const reflectedClass = (0, typescript_rtti_1.reflect)(constructor, { TΦ: "c", t: void 0, p: [__RΦ.a(1620)], r: void 0, tp: [] });
|
|
27
|
-
return (reflectedClass.getOwnProperty(property) ||
|
|
28
|
-
reflectedClass.getProperty(property)); // patch bug in typescript-rtti
|
|
29
|
-
// TODO: remove when typescript-rtti is patched
|
|
30
|
-
},
|
|
31
|
-
get tagname() {
|
|
32
|
-
return options.tagname || defaults_1.defaults.tagnameFromProperty(this);
|
|
33
|
-
},
|
|
34
|
-
inline: !!options.inline,
|
|
35
|
-
ignored: !!options.ignore,
|
|
36
|
-
isSourceElement: __RΦ.f((...args) => defaults_1.defaults.propertySourceElementsFilter(...args), [__RΦ.m("rt:p", [{ n: "args", t: () => __RΦ.a(4), b: void 0, v: null, f: "3" }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(20))], "isSourceElement"),
|
|
37
|
-
resolveElements: options.resolveElements
|
|
38
|
-
? options.resolveElements
|
|
39
|
-
: __RΦ.f((...args) => defaults_1.defaults.propertyResolveSourceElements(...args), [__RΦ.m("rt:p", [{ n: "args", t: () => __RΦ.a(4), b: void 0, v: null, f: "3" }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(96))], ""),
|
|
40
|
-
fromXML: __RΦ.f((context) => (options.fromXML || defaults_1.defaults.propertyFromXML)(context), [__RΦ.m("rt:p", [{ n: "context", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(1))], "fromXML"),
|
|
41
|
-
toXML: __RΦ.f((context) => (options.toXML || defaults_1.defaults.propertyToXML)(context), [__RΦ.m("rt:p", [{ n: "context", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(100))], "toXML"),
|
|
42
|
-
};
|
|
43
|
-
if (options === null || options === void 0 ? void 0 : options.model)
|
|
44
|
-
_options.model = options.model;
|
|
45
|
-
if (options === null || options === void 0 ? void 0 : options.sourceElements) {
|
|
46
|
-
const _sourceElements = options.sourceElements;
|
|
47
|
-
if (typeof _sourceElements === "string") {
|
|
48
|
-
_options.isSourceElement = __RΦ.f((element) => element.name === _sourceElements, [__RΦ.m("rt:p", [{ n: "element", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(20))], "");
|
|
49
|
-
}
|
|
50
|
-
else if (_sourceElements && _sourceElements instanceof RegExp) {
|
|
51
|
-
_options.isSourceElement = __RΦ.f((element) => _sourceElements.test(element.name || ""), [__RΦ.m("rt:p", [{ n: "element", t: () => __RΦ.a(4), b: void 0, v: null }]), __RΦ.m("rt:f", "F>"), __RΦ.m("rt:t", () => __RΦ.a(20))], "");
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
_options.isSourceElement = _sourceElements;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return _options;
|
|
58
|
-
}
|
|
59
|
-
__RΦ.m("rt:p", [{ n: "options", t: () => __RΦ.a(1619), b: void 0, v: null }, { n: "constructor", t: () => __RΦ.a(1620), b: void 0, v: null }, { n: "property", t: () => __RΦ.a(1622), b: void 0, v: null }])(resolvePropertyConversionOptions);
|
|
60
|
-
__RΦ.m("rt:f", "F")(resolvePropertyConversionOptions);
|
|
61
|
-
__RΦ.m("rt:t", () => __RΦ.a(1623))(resolvePropertyConversionOptions);
|
|
62
|
-
const PropertyOptions = new Map();
|
|
63
|
-
function storePropertyConversionOptions(constructor, property, options) {
|
|
64
|
-
let map = PropertyOptions.get(constructor);
|
|
65
|
-
if (!map) {
|
|
66
|
-
map = new Map();
|
|
67
|
-
PropertyOptions.set(constructor, map);
|
|
68
|
-
}
|
|
69
|
-
map.set(property, options);
|
|
70
|
-
}
|
|
71
|
-
__RΦ.m("rt:p", [{ n: "constructor", t: () => __RΦ.a(2102), b: void 0, v: null }, { n: "property", t: () => __RΦ.a(2104), b: void 0, v: null }, { n: "options", t: () => __RΦ.a(2105), b: void 0, v: null }])(storePropertyConversionOptions);
|
|
72
|
-
__RΦ.m("rt:f", "F")(storePropertyConversionOptions);
|
|
73
|
-
__RΦ.m("rt:t", () => __RΦ.a(22))(storePropertyConversionOptions);
|
|
74
|
-
function findPropertyConversionOptions(constructor, property) {
|
|
75
|
-
const options = PropertyOptions.get(constructor);
|
|
76
|
-
if (options) {
|
|
77
|
-
return options.get(property);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
__RΦ.m("rt:p", [{ n: "constructor", t: () => __RΦ.a(2117), b: void 0, v: null }, { n: "property", t: () => __RΦ.a(2119), b: void 0, v: null }])(findPropertyConversionOptions);
|
|
81
|
-
__RΦ.m("rt:f", "F")(findPropertyConversionOptions);
|
|
82
|
-
__RΦ.m("rt:t", () => __RΦ.a(2128))(findPropertyConversionOptions);
|
|
83
|
-
function getPropertyConversionOptions(constructor, property) {
|
|
84
|
-
const options = findPropertyConversionOptions(constructor, property);
|
|
85
|
-
return options || resolvePropertyConversionOptions({}, constructor, property);
|
|
86
|
-
}
|
|
87
|
-
exports.getPropertyConversionOptions = getPropertyConversionOptions;
|
|
88
|
-
__RΦ.m("rt:p", [{ n: "constructor", t: () => __RΦ.a(2134), b: void 0, v: null }, { n: "property", t: () => __RΦ.a(2136), b: void 0, v: null }])(getPropertyConversionOptions);
|
|
89
|
-
__RΦ.m("rt:f", "F")(getPropertyConversionOptions);
|
|
90
|
-
__RΦ.m("rt:t", () => __RΦ.a(2160))(getPropertyConversionOptions);
|
|
91
|
-
function PropDecoratorFactory(options) {
|
|
92
|
-
return __RΦ.f(function (prototype, property) {
|
|
93
|
-
const _options = resolvePropertyConversionOptions(options || {}, prototype.constructor, property);
|
|
94
|
-
storePropertyConversionOptions(prototype.constructor, property, _options);
|
|
95
|
-
}, [__RΦ.m("rt:p", [{ n: "prototype", t: () => __RΦ.a(1), b: void 0, v: null }, { n: "property", t: () => __RΦ.a(2171), b: void 0, v: null }]), __RΦ.m("rt:f", "M."), __RΦ.m("rt:t", () => __RΦ.a(22))], "");
|
|
96
|
-
}
|
|
97
|
-
exports.Prop = PropDecoratorFactory;
|
|
98
|
-
__RΦ.m("rt:p", [{ n: "options", t: () => __RΦ.a(2167), b: void 0, v: null, f: "?" }])(PropDecoratorFactory);
|
|
99
|
-
__RΦ.m("rt:f", "F")(PropDecoratorFactory);
|
|
100
|
-
__RΦ.m("rt:t", () => __RΦ.a(2169))(PropDecoratorFactory);
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { ReflectedProperty } from "typescript-rtti";
|
|
2
|
-
import type { XMLRoot, XMLElement } from "../types";
|
|
3
|
-
import type { Middleware } from "../middleware";
|
|
4
|
-
import type { XMLModel } from "./index";
|
|
5
|
-
export declare type XMLModelProperty<T> = Extract<keyof T, string>;
|
|
6
|
-
export declare type PropertiesRecord<T> = {
|
|
7
|
-
[key in keyof T]?: T[key];
|
|
8
|
-
};
|
|
9
|
-
export declare type XMLPropertiesRecord<T> = {
|
|
10
|
-
[key in keyof T]?: XMLRoot;
|
|
11
|
-
};
|
|
12
|
-
export interface PropertyToXMLContext<T> extends Omit<toXMLContext<T>, "properties"> {
|
|
13
|
-
property: XMLModelPropertyOptions<T>;
|
|
14
|
-
value: T[keyof T];
|
|
15
|
-
}
|
|
16
|
-
export interface PropertyFromXMLContext<T> extends Omit<fromXMLContext<T>, "properties"> {
|
|
17
|
-
property: XMLModelPropertyOptions<T>;
|
|
18
|
-
elements: XMLElement[];
|
|
19
|
-
}
|
|
20
|
-
export interface XMLModelPropertyOptions<T> {
|
|
21
|
-
name: keyof T;
|
|
22
|
-
reflected: ReflectedProperty;
|
|
23
|
-
tagname: string;
|
|
24
|
-
ignored: boolean;
|
|
25
|
-
inline: boolean;
|
|
26
|
-
model?: XMLModel<any>;
|
|
27
|
-
isSourceElement: (element: XMLElement, context: Omit<PropertyFromXMLContext<T>, "elements">) => boolean;
|
|
28
|
-
resolveElements: (context: Omit<PropertyFromXMLContext<T>, "elements">) => XMLElement[];
|
|
29
|
-
fromXML: (context: PropertyFromXMLContext<T>) => T[keyof T];
|
|
30
|
-
toXML: (context: PropertyToXMLContext<T>) => XMLRoot;
|
|
31
|
-
}
|
|
32
|
-
export interface CreateXMLModelPropertyOptions<T> {
|
|
33
|
-
tagname?: string;
|
|
34
|
-
sourceElements?: string | RegExp | XMLModelPropertyOptions<T>["isSourceElement"];
|
|
35
|
-
resolveElements?: XMLModelPropertyOptions<T>["resolveElements"];
|
|
36
|
-
toXML?: XMLModelPropertyOptions<T>["toXML"];
|
|
37
|
-
fromXML?: XMLModelPropertyOptions<T>["fromXML"];
|
|
38
|
-
inline?: boolean;
|
|
39
|
-
ignore?: boolean;
|
|
40
|
-
model?: XMLModelPropertyOptions<T>["model"];
|
|
41
|
-
}
|
|
42
|
-
interface ConversionOptions<C, T> {
|
|
43
|
-
parent: ConversionOptions<C, T> | null;
|
|
44
|
-
middlewares: Middleware<C, T>[];
|
|
45
|
-
}
|
|
46
|
-
export interface fromXMLContext<T> {
|
|
47
|
-
xml: XMLRoot;
|
|
48
|
-
properties: PropertiesRecord<T>;
|
|
49
|
-
model: XMLModel<T>;
|
|
50
|
-
}
|
|
51
|
-
export interface toXMLContext<T> {
|
|
52
|
-
object: T;
|
|
53
|
-
properties: XMLPropertiesRecord<T>;
|
|
54
|
-
model: XMLModel<T>;
|
|
55
|
-
}
|
|
56
|
-
export interface XMLModelOptions<T> {
|
|
57
|
-
parent?: XMLModel<T>;
|
|
58
|
-
properties: {
|
|
59
|
-
fromXML: ConversionOptions<Omit<fromXMLContext<T>, "properties">, PropertiesRecord<T>>;
|
|
60
|
-
toXML: ConversionOptions<Omit<toXMLContext<T>, "properties">, XMLPropertiesRecord<T>>;
|
|
61
|
-
options: Map<XMLModelProperty<T>, XMLModelPropertyOptions<T>>;
|
|
62
|
-
};
|
|
63
|
-
fromXML: ConversionOptions<fromXMLContext<T>, T>;
|
|
64
|
-
toXML: ConversionOptions<toXMLContext<T>, XMLRoot>;
|
|
65
|
-
tagname: string;
|
|
66
|
-
}
|
|
67
|
-
export interface CreateXMLModelOptions<T> {
|
|
68
|
-
parent?: XMLModelOptions<T>["parent"];
|
|
69
|
-
fromXML?: XMLModelOptions<T>["fromXML"]["middlewares"][number];
|
|
70
|
-
toXML?: XMLModelOptions<T>["toXML"]["middlewares"][number];
|
|
71
|
-
tagname?: XMLModelOptions<T>["tagname"];
|
|
72
|
-
}
|
|
73
|
-
export { XMLModel };
|