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.
Files changed (135) hide show
  1. package/README.md +46 -1
  2. package/dist/defaults.d.ts +14 -0
  3. package/dist/defaults.js +129 -0
  4. package/{build/main → dist}/errors.d.ts +1 -1
  5. package/dist/errors.js +51 -0
  6. package/dist/index.d.ts +6 -0
  7. package/dist/index.js +19 -0
  8. package/{build/main → dist}/middleware.d.ts +2 -2
  9. package/dist/middleware.js +31 -0
  10. package/dist/model/built-ins.d.ts +2 -0
  11. package/dist/model/built-ins.js +46 -0
  12. package/{build/module → dist}/model/index.d.ts +7 -11
  13. package/dist/model/index.js +242 -0
  14. package/{build/main → dist}/model/property.d.ts +2 -2
  15. package/dist/model/property.js +71 -0
  16. package/dist/model/registry.d.ts +8 -0
  17. package/dist/model/registry.js +26 -0
  18. package/{build/module → dist}/model/types.d.ts +7 -7
  19. package/dist/model/types.js +2 -0
  20. package/{build/module → dist}/types.d.ts +4 -4
  21. package/dist/types.js +2 -0
  22. package/dist/util/is-regexp.d.ts +11 -0
  23. package/dist/util/is-regexp.js +11 -0
  24. package/dist/util/kebab-case.d.ts +15 -0
  25. package/dist/util/kebab-case.js +18 -0
  26. package/dist/util/merge-maps.js +27 -0
  27. package/{build/main → dist}/xml/index.d.ts +4 -4
  28. package/dist/xml/index.js +73 -0
  29. package/{build/main → dist}/xml/xml-js.d.ts +1 -4
  30. package/dist/xml/xml-js.js +9 -0
  31. package/package.json +56 -39
  32. package/vite/dist/_virtual/_commonjs-dynamic-modules.js +7 -0
  33. package/vite/dist/_virtual/_commonjsHelpers.js +47 -0
  34. package/vite/dist/_virtual/_typescript.js +5 -0
  35. package/vite/dist/_virtual/api-call-transformer.js +5 -0
  36. package/vite/dist/_virtual/class-analyzer.js +5 -0
  37. package/vite/dist/_virtual/compile-error.js +5 -0
  38. package/vite/dist/_virtual/declarations-emitter.js +5 -0
  39. package/vite/dist/_virtual/encode-parameter.js +5 -0
  40. package/vite/dist/_virtual/find-relative-path.js +5 -0
  41. package/vite/dist/_virtual/flags.js +5 -0
  42. package/vite/dist/_virtual/format.js +5 -0
  43. package/vite/dist/_virtual/forward-ref.js +5 -0
  44. package/vite/dist/_virtual/get-exports-for-symbol.js +5 -0
  45. package/vite/dist/_virtual/import-analyzer.js +5 -0
  46. package/vite/dist/_virtual/index.js +8 -0
  47. package/vite/dist/_virtual/index2.js +5 -0
  48. package/vite/dist/_virtual/index3.js +5 -0
  49. package/vite/dist/_virtual/interface-analyzer.js +5 -0
  50. package/vite/dist/_virtual/legacy-decorator.js +5 -0
  51. package/vite/dist/_virtual/legacy-type-encoder.js +5 -0
  52. package/vite/dist/_virtual/literal-node.js +5 -0
  53. package/vite/dist/_virtual/metadata-collector.js +5 -0
  54. package/vite/dist/_virtual/metadata-decorator.js +5 -0
  55. package/vite/dist/_virtual/metadata-emitter.js +5 -0
  56. package/vite/dist/_virtual/metadata-encoder.js +5 -0
  57. package/vite/dist/_virtual/rt-helper.js +5 -0
  58. package/vite/dist/_virtual/rtti-visitor-base.js +5 -0
  59. package/vite/dist/_virtual/serialize.js +5 -0
  60. package/vite/dist/_virtual/type-encoder.js +5 -0
  61. package/vite/dist/_virtual/type-literal.js +5 -0
  62. package/vite/dist/_virtual/utils.js +5 -0
  63. package/vite/dist/_virtual/visitor-base.js +5 -0
  64. package/vite/dist/_virtual/workarounds.js +5 -0
  65. package/vite/dist/index.d.ts +21 -0
  66. package/vite/dist/index.js +62 -0
  67. package/vite/dist/node_modules/typescript-rtti/dist/common/format.js +69 -0
  68. package/vite/dist/node_modules/typescript-rtti/dist/common/index.js +34 -0
  69. package/vite/dist/node_modules/typescript-rtti/dist/transformer/api-call-transformer.js +197 -0
  70. package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/class-analyzer.js +124 -0
  71. package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/compile-error.js +18 -0
  72. package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/import-analyzer.js +130 -0
  73. package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/interface-analyzer.js +98 -0
  74. package/vite/dist/node_modules/typescript-rtti/dist/transformer/common/visitor-base.js +132 -0
  75. package/vite/dist/node_modules/typescript-rtti/dist/transformer/declarations-emitter.js +72 -0
  76. package/vite/dist/node_modules/typescript-rtti/dist/transformer/encode-parameter.js +110 -0
  77. package/vite/dist/node_modules/typescript-rtti/dist/transformer/find-relative-path.js +51 -0
  78. package/vite/dist/node_modules/typescript-rtti/dist/transformer/flags.js +59 -0
  79. package/vite/dist/node_modules/typescript-rtti/dist/transformer/forward-ref.js +35 -0
  80. package/vite/dist/node_modules/typescript-rtti/dist/transformer/get-exports-for-symbol.js +75 -0
  81. package/vite/dist/node_modules/typescript-rtti/dist/transformer/index.js +174 -0
  82. package/vite/dist/node_modules/typescript-rtti/dist/transformer/legacy-decorator.js +20 -0
  83. package/vite/dist/node_modules/typescript-rtti/dist/transformer/legacy-type-encoder.js +123 -0
  84. package/vite/dist/node_modules/typescript-rtti/dist/transformer/literal-node.js +19 -0
  85. package/vite/dist/node_modules/typescript-rtti/dist/transformer/metadata-collector.js +96 -0
  86. package/vite/dist/node_modules/typescript-rtti/dist/transformer/metadata-decorator.js +99 -0
  87. package/vite/dist/node_modules/typescript-rtti/dist/transformer/metadata-emitter.js +475 -0
  88. package/vite/dist/node_modules/typescript-rtti/dist/transformer/metadata-encoder.js +261 -0
  89. package/vite/dist/node_modules/typescript-rtti/dist/transformer/rt-helper.js +113 -0
  90. package/vite/dist/node_modules/typescript-rtti/dist/transformer/rtti-visitor-base.js +39 -0
  91. package/vite/dist/node_modules/typescript-rtti/dist/transformer/serialize.js +46 -0
  92. package/vite/dist/node_modules/typescript-rtti/dist/transformer/type-encoder.js +96 -0
  93. package/vite/dist/node_modules/typescript-rtti/dist/transformer/type-literal.js +546 -0
  94. package/vite/dist/node_modules/typescript-rtti/dist/transformer/utils.js +922 -0
  95. package/vite/dist/node_modules/typescript-rtti/dist/transformer/workarounds.js +16 -0
  96. package/build/main/defaults/index.d.ts +0 -14
  97. package/build/main/defaults/index.js +0 -170
  98. package/build/main/defaults/models.d.ts +0 -1
  99. package/build/main/defaults/models.js +0 -55
  100. package/build/main/errors.js +0 -93
  101. package/build/main/helper/merge-maps.js +0 -42
  102. package/build/main/index.d.ts +0 -6
  103. package/build/main/index.js +0 -46
  104. package/build/main/middleware.js +0 -61
  105. package/build/main/model/index.d.ts +0 -23
  106. package/build/main/model/index.js +0 -342
  107. package/build/main/model/property.js +0 -100
  108. package/build/main/model/types.d.ts +0 -73
  109. package/build/main/model/types.js +0 -152
  110. package/build/main/types.d.ts +0 -16
  111. package/build/main/types.js +0 -41
  112. package/build/main/xml/index.js +0 -105
  113. package/build/main/xml/xml-js.js +0 -26
  114. package/build/module/defaults/index.d.ts +0 -14
  115. package/build/module/defaults/index.js +0 -164
  116. package/build/module/defaults/models.d.ts +0 -1
  117. package/build/module/defaults/models.js +0 -54
  118. package/build/module/errors.d.ts +0 -23
  119. package/build/module/errors.js +0 -89
  120. package/build/module/helper/merge-maps.d.ts +0 -1
  121. package/build/module/helper/merge-maps.js +0 -39
  122. package/build/module/index.d.ts +0 -6
  123. package/build/module/index.js +0 -21
  124. package/build/module/middleware.d.ts +0 -9
  125. package/build/module/middleware.js +0 -56
  126. package/build/module/model/index.js +0 -334
  127. package/build/module/model/property.d.ts +0 -5
  128. package/build/module/model/property.js +0 -99
  129. package/build/module/model/types.js +0 -152
  130. package/build/module/types.js +0 -38
  131. package/build/module/xml/index.d.ts +0 -32
  132. package/build/module/xml/index.js +0 -94
  133. package/build/module/xml/xml-js.d.ts +0 -9
  134. package/build/module/xml/xml-js.js +0 -24
  135. /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 };