@tsed/json-mapper 8.10.0-rc.1 → 8.10.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/components/DateMapper.js +22 -0
- package/lib/browser/components/DateMapper.js.map +1 -0
- package/lib/browser/components/PrimitiveMapper.js +52 -0
- package/lib/browser/components/PrimitiveMapper.js.map +1 -0
- package/lib/browser/components/SymbolMapper.js +21 -0
- package/lib/browser/components/SymbolMapper.js.map +1 -0
- package/lib/browser/decorators/afterDeserialize.js +10 -0
- package/lib/browser/decorators/afterDeserialize.js.map +1 -0
- package/lib/browser/decorators/beforeDeserialize.js +10 -0
- package/lib/browser/decorators/beforeDeserialize.js.map +1 -0
- package/lib/browser/decorators/jsonMapper.js +12 -0
- package/lib/browser/decorators/jsonMapper.js.map +1 -0
- package/lib/browser/decorators/onDeserialize.js +10 -0
- package/lib/browser/decorators/onDeserialize.js.map +1 -0
- package/lib/browser/decorators/onSerialize.js +10 -0
- package/lib/browser/decorators/onSerialize.js.map +1 -0
- package/lib/browser/domain/JsonDeserializer.js +179 -0
- package/lib/browser/domain/JsonDeserializer.js.map +1 -0
- package/lib/browser/domain/JsonDeserializerOptions.js +2 -0
- package/lib/browser/domain/JsonDeserializerOptions.js.map +1 -0
- package/lib/browser/domain/JsonMapperCompiler.js +110 -0
- package/lib/browser/domain/JsonMapperCompiler.js.map +1 -0
- package/lib/browser/domain/JsonMapperGlobalOptions.js +2 -0
- package/lib/browser/domain/JsonMapperGlobalOptions.js.map +1 -0
- package/lib/browser/domain/JsonMapperSettings.js +9 -0
- package/lib/browser/domain/JsonMapperSettings.js.map +1 -0
- package/lib/browser/domain/JsonMapperTypesContainer.js +12 -0
- package/lib/browser/domain/JsonMapperTypesContainer.js.map +1 -0
- package/lib/browser/domain/JsonSerializer.js +164 -0
- package/lib/browser/domain/JsonSerializer.js.map +1 -0
- package/lib/browser/domain/JsonSerializerOptions.js +2 -0
- package/lib/browser/domain/JsonSerializerOptions.js.map +1 -0
- package/lib/browser/domain/Writer.js +124 -0
- package/lib/browser/domain/Writer.js.map +1 -0
- package/lib/browser/hooks/alterAfterDeserialize.js +8 -0
- package/lib/browser/hooks/alterAfterDeserialize.js.map +1 -0
- package/lib/browser/hooks/alterBeforeDeserialize.js +8 -0
- package/lib/browser/hooks/alterBeforeDeserialize.js.map +1 -0
- package/lib/browser/hooks/alterOnDeserialize.js +7 -0
- package/lib/browser/hooks/alterOnDeserialize.js.map +1 -0
- package/lib/browser/hooks/alterOnSerialize.js +7 -0
- package/lib/browser/hooks/alterOnSerialize.js.map +1 -0
- package/lib/browser/index.js +47 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/utils/deserialize.js +12 -0
- package/lib/browser/utils/deserialize.js.map +1 -0
- package/lib/browser/utils/getObjectProperties.js +8 -0
- package/lib/browser/utils/getObjectProperties.js.map +1 -0
- package/lib/browser/utils/serialize.js +12 -0
- package/lib/browser/utils/serialize.js.map +1 -0
- package/package.json +7 -7
- package/vite.config.mts +30 -4
- package/lib/browser/json-mapper.umd.cjs +0 -34
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { isNil as u, isBoolean as N, nameOf as $, isPrimitive as P, isCollection as w, hasJsonMethod as J, classOf as M, isMongooseObject as A, isDate as T, isMomentObject as D, isObject as S, isClassObject as x, isArray as C } from "@tsed/core";
|
|
2
|
+
import { JsonEntityStore as I, getPropertiesStores as G } from "@tsed/schema";
|
|
3
|
+
import { alterOnSerialize as K } from "../hooks/alterOnSerialize.js";
|
|
4
|
+
import { getObjectProperties as v } from "../utils/getObjectProperties.js";
|
|
5
|
+
import { JsonMapperCompiler as z } from "./JsonMapperCompiler.js";
|
|
6
|
+
import { JsonMapperSettings as V } from "./JsonMapperSettings.js";
|
|
7
|
+
import { getJsonMapperTypes as B } from "./JsonMapperTypesContainer.js";
|
|
8
|
+
import { Writer as l } from "./Writer.js";
|
|
9
|
+
const k = (h) => C(h) ? "Array" : h instanceof Set ? "Set" : h instanceof Map ? "Map" : void 0;
|
|
10
|
+
function E(h, e) {
|
|
11
|
+
const t = M(e);
|
|
12
|
+
return t && !x(t) && !w(e) ? t : h || Object;
|
|
13
|
+
}
|
|
14
|
+
function p(h) {
|
|
15
|
+
return `__${h}`;
|
|
16
|
+
}
|
|
17
|
+
class U extends z {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(), this.addTypeMapper(Object, this.mapObject.bind(this)), this.addTypeMapper(Array, this.mapArray.bind(this)), this.addTypeMapper(Map, this.mapMap.bind(this)), this.addTypeMapper(Set, this.mapSet.bind(this)), this.addGlobal("mapJSON", this.mapJSON.bind(this)), this.addTypeMapper("ObjectId", (e) => String(e));
|
|
20
|
+
}
|
|
21
|
+
map(e, t = {}) {
|
|
22
|
+
if (u(e))
|
|
23
|
+
return e;
|
|
24
|
+
t = this.mapOptions(t);
|
|
25
|
+
const r = E(t.type, e);
|
|
26
|
+
return this.compile(r, t.groups).fn(e, this.createContext(t));
|
|
27
|
+
}
|
|
28
|
+
alterValue(e, t, r) {
|
|
29
|
+
return K(this.schemes[e], t, r);
|
|
30
|
+
}
|
|
31
|
+
createMapper(e, t, r) {
|
|
32
|
+
const i = I.from(e), n = /* @__PURE__ */ new Set(), a = [...G(i).values()], o = new l().arrow("input", "options");
|
|
33
|
+
return o.if("isNil(input)").return("input"), o.const("obj", "{}"), o.set("options", "{...options, self: input}"), o.add(this.mapPrecondition(t)), a.length ? (o.add(
|
|
34
|
+
...a.flatMap((s) => {
|
|
35
|
+
var c, m, d, f;
|
|
36
|
+
if (n.add(s.propertyKey), !((c = s.schema) != null && c.$ignore && N((m = s.schema) == null ? void 0 : m.$ignore) || (f = (d = s.schema) == null ? void 0 : d.$hooks) != null && f.has("groups") && this.alterGroups(s.schema, r)))
|
|
37
|
+
return this.mapProperty(s, t, r);
|
|
38
|
+
})
|
|
39
|
+
), o.add(this.mapDiscriminatorKeyValue(i)), o.add(this.mapAdditionalProperties(i, n)), o.return("obj").root().toString()) : o.return("isObject(input) ? {...input} : input").root().toString();
|
|
40
|
+
}
|
|
41
|
+
mapOptions({ groups: e, useAlias: t = !0, types: r, ...i }) {
|
|
42
|
+
const n = {};
|
|
43
|
+
r = r || B(), r.forEach((o, s) => {
|
|
44
|
+
[Array, Set, Map].includes(s) || this.addTypeMapper(
|
|
45
|
+
s,
|
|
46
|
+
(c, m) => o.serialize(c, {
|
|
47
|
+
...m,
|
|
48
|
+
type: s
|
|
49
|
+
})
|
|
50
|
+
);
|
|
51
|
+
});
|
|
52
|
+
const a = i.strictGroups ?? V.strictGroups;
|
|
53
|
+
return {
|
|
54
|
+
...i,
|
|
55
|
+
groups: e === void 0 ? a ? [] : !1 : e || !1,
|
|
56
|
+
useAlias: t,
|
|
57
|
+
customMappers: n
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
mapProperty(e, t, r) {
|
|
61
|
+
var g, O, b, j;
|
|
62
|
+
const i = String(e.propertyKey), n = String(e.parent.schema.getAliasOf(i) || i), a = this.getSchemaId(t, i), o = e.itemSchema.get("format"), s = o && `options: {format: '${o}'}`;
|
|
63
|
+
let c = new l().add(`// Map ${i} ${t} ${r || ""}`);
|
|
64
|
+
(O = (g = e.schema) == null ? void 0 : g.$hooks) != null && O.has("ignore") && (this.schemes[a] = e.schema, c = c.if(`!alterIgnore('${a}', {...options, self: input})`));
|
|
65
|
+
const m = (j = (b = e.schema) == null ? void 0 : b.$hooks) == null ? void 0 : j.has("onSerialize");
|
|
66
|
+
let d = `input.${i}`;
|
|
67
|
+
if (m) {
|
|
68
|
+
this.schemes[a] = e.schema;
|
|
69
|
+
const y = l.options(s);
|
|
70
|
+
d = `alterValue('${a}', input.${i}, ${y})`;
|
|
71
|
+
}
|
|
72
|
+
c = c.set(`let ${p(i)}`, d).if(`${p(i)} !== undefined`);
|
|
73
|
+
const f = this.getPropertyFiller(e, i, r, s);
|
|
74
|
+
return f(m ? c.if(`${p(i)} === input.${i}`) : c), n !== i ? c.set(`obj[options.useAlias ? '${n}' : '${i}']`, p(i)) : c.set(`obj.${i}`, p(i)), c.root();
|
|
75
|
+
}
|
|
76
|
+
getPropertyFiller(e, t, r, i) {
|
|
77
|
+
const n = e.itemSchema.isGeneric, a = e.itemSchema.hasDiscriminator;
|
|
78
|
+
if (e.isCollection) {
|
|
79
|
+
const s = e.getBestType();
|
|
80
|
+
let c;
|
|
81
|
+
if (a) {
|
|
82
|
+
const m = e.parent.targetName;
|
|
83
|
+
c = this.compile(`Discriminator:${m}:${t}`, r, {
|
|
84
|
+
mapper: () => this.createDiscriminatorMapper(e, r)
|
|
85
|
+
});
|
|
86
|
+
} else
|
|
87
|
+
c = n ? { id: "" } : this.compile(s, r);
|
|
88
|
+
return (m) => m.callMapper($(e.collectionType), p(t), `id: '${c.id}'`, i);
|
|
89
|
+
}
|
|
90
|
+
if (n)
|
|
91
|
+
return (s) => s.set(p(t), `compileAndMap(${p(t)}, options)`);
|
|
92
|
+
let o;
|
|
93
|
+
if (a) {
|
|
94
|
+
const s = e.parent.targetName;
|
|
95
|
+
o = this.compile(`Discriminator:${s}:${t}`, r, {
|
|
96
|
+
mapper: () => this.createDiscriminatorMapper(e, r)
|
|
97
|
+
});
|
|
98
|
+
} else
|
|
99
|
+
o = this.compile(e.getBestType(), r);
|
|
100
|
+
return (s) => s.callMapper(o.id, p(t), i);
|
|
101
|
+
}
|
|
102
|
+
createDiscriminatorMapper(e, t) {
|
|
103
|
+
const r = e.itemSchema.discriminator(), i = new l().arrow("input", "options"), n = i.switch("nameOf(classOf(input))");
|
|
104
|
+
return r.values.forEach((a, o) => {
|
|
105
|
+
const s = this.compile(a, t);
|
|
106
|
+
n.case(`'${$(a)}'`).returnCallMapper(s.id, "input");
|
|
107
|
+
}), i.root().toString();
|
|
108
|
+
}
|
|
109
|
+
mapPrecondition(e) {
|
|
110
|
+
const t = new l();
|
|
111
|
+
return t.if("input && isCollection(input)").return(l.mapperFrom("input", `{...options, id: '${e}'}`)), t.if("hasJsonMethod(input)").return(`mapJSON(input, {...options, id: '${e}'})`), t;
|
|
112
|
+
}
|
|
113
|
+
mapDiscriminatorKeyValue(e) {
|
|
114
|
+
if (e.discriminatorAncestor) {
|
|
115
|
+
const t = e.discriminatorAncestor.schema.discriminator(), r = t.getDefaultValue(e.target);
|
|
116
|
+
if (r) {
|
|
117
|
+
const i = new l();
|
|
118
|
+
return i.if(`!obj.${t.propertyName}`).set(`obj.${t.propertyName}`, `'${r}'`), i;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
mapAdditionalProperties(e, t) {
|
|
123
|
+
if (!!e.schema.get("additionalProperties")) {
|
|
124
|
+
const i = [...t.values()].map((a) => `'${a}'`).join(", "), n = new l();
|
|
125
|
+
return n.add("// add additional properties"), n.each("objectKeys(input)", ["key"]).if(`![${i}].includes(key)`).set("obj[key]", "input[key]"), n;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
mapObject(e, { type: t, ...r }) {
|
|
129
|
+
return e && P(e) || !e ? e : e && w(e) ? this.execMapper(k(e), e, r) : J(e) ? this.mapJSON(e, r) : v(e).filter(([, i]) => i !== void 0).reduce((i, [n, a]) => {
|
|
130
|
+
if (u(a))
|
|
131
|
+
return {
|
|
132
|
+
...i,
|
|
133
|
+
[n]: a
|
|
134
|
+
};
|
|
135
|
+
const o = this.compile(M(a), r.groups);
|
|
136
|
+
return {
|
|
137
|
+
...i,
|
|
138
|
+
[n]: o.fn(a, r)
|
|
139
|
+
};
|
|
140
|
+
}, {});
|
|
141
|
+
}
|
|
142
|
+
mapSet(e, t) {
|
|
143
|
+
return u(e) ? e : [...e.values()].map((r) => this.mapItem(r, t));
|
|
144
|
+
}
|
|
145
|
+
mapArray(e, t) {
|
|
146
|
+
return u(e) ? e : [].concat(e).map((r) => this.mapItem(r, t));
|
|
147
|
+
}
|
|
148
|
+
mapMap(e, t) {
|
|
149
|
+
return u(e) ? e : [...e.entries()].reduce((r, [i, n]) => ({
|
|
150
|
+
...r,
|
|
151
|
+
[i]: this.mapItem(n, t)
|
|
152
|
+
}), {});
|
|
153
|
+
}
|
|
154
|
+
mapItem(e, { id: t, ...r }) {
|
|
155
|
+
return !t && e ? this.compile(M(e), r.groups).fn(e, r) : t ? this.execMapper(t, e, r) : e;
|
|
156
|
+
}
|
|
157
|
+
mapJSON(e, { id: t, ...r }) {
|
|
158
|
+
return A(e) ? e.toJSON({ ...r, self: void 0, id: t }) : (t = t || $(M(e)), this.mappers[t] && (T(e) || D(e)) ? this.execMapper(t, e, r) : (e = e.toJSON(), S(e) ? this.execMapper(t, e, r) : e));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
export {
|
|
162
|
+
U as JsonSerializer
|
|
163
|
+
};
|
|
164
|
+
//# sourceMappingURL=JsonSerializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonSerializer.js","sources":["../../../src/domain/JsonSerializer.ts"],"sourcesContent":["import {\n classOf,\n hasJsonMethod,\n isArray,\n isBoolean,\n isClassObject,\n isCollection,\n isDate,\n isMomentObject,\n isMongooseObject,\n isNil,\n isObject,\n isPrimitive,\n nameOf,\n Type\n} from \"@tsed/core\";\nimport {getPropertiesStores, JsonClassStore, JsonEntityStore, JsonPropertyStore} from \"@tsed/schema\";\n\nimport {alterOnSerialize} from \"../hooks/alterOnSerialize.js\";\nimport {getObjectProperties} from \"../utils/getObjectProperties.js\";\nimport {JsonMapperCompiler} from \"./JsonMapperCompiler.js\";\nimport {JsonMapperSettings} from \"./JsonMapperSettings.js\";\nimport {getJsonMapperTypes} from \"./JsonMapperTypesContainer.js\";\nimport {JsonSerializerOptions} from \"./JsonSerializerOptions.js\";\nimport {Writer} from \"./Writer.js\";\n\nconst getCollectionType = (input: any) => {\n return isArray(input) ? \"Array\" : input instanceof Set ? \"Set\" : input instanceof Map ? \"Map\" : undefined;\n};\n\nfunction getBestType(type: Type<any>, obj: any) {\n const dataType = classOf(obj);\n\n if (dataType && !isClassObject(dataType) && !isCollection(obj)) {\n return dataType;\n }\n\n return type || Object;\n}\n\nfunction varKey(k: string) {\n return `__${k}`;\n}\n\nexport class JsonSerializer extends JsonMapperCompiler<JsonSerializerOptions> {\n constructor() {\n super();\n\n this.addTypeMapper(Object, this.mapObject.bind(this));\n this.addTypeMapper(Array, this.mapArray.bind(this));\n this.addTypeMapper(Map, this.mapMap.bind(this));\n this.addTypeMapper(Set, this.mapSet.bind(this));\n this.addGlobal(\"mapJSON\", this.mapJSON.bind(this));\n this.addTypeMapper(\"ObjectId\", (value: any) => String(value));\n }\n\n map(input: any, options: JsonSerializerOptions = {}) {\n if (isNil(input)) {\n return input;\n }\n\n options = this.mapOptions(options);\n\n const model = getBestType(options.type, input);\n\n const mapper = this.compile(model, options.groups);\n\n return mapper.fn(input, this.createContext(options));\n }\n\n protected alterValue(schemaId: string, value: any, options: JsonSerializerOptions): any {\n return alterOnSerialize(this.schemes[schemaId], value, options as any);\n }\n\n protected createMapper(model: Type<any>, id: string, groups: false | string[]): string {\n const entity = JsonEntityStore.from(model);\n const properties = new Set<string>();\n const schemaProperties = [...getPropertiesStores(entity).values()];\n\n const writer = new Writer().arrow(\"input\", \"options\");\n\n writer.if(\"isNil(input)\").return(\"input\");\n\n // prepare options\n writer.const(\"obj\", \"{}\");\n writer.set(\"options\", \"{...options, self: input}\");\n\n // detect some special case\n writer.add(this.mapPrecondition(id));\n\n if (!schemaProperties.length) {\n return writer.return(\"isObject(input) ? {...input} : input\").root().toString();\n }\n\n // properties\n writer.add(\n ...schemaProperties.flatMap((propertyStore) => {\n properties.add(propertyStore.propertyKey as string);\n\n if (\n (propertyStore.schema?.$ignore && isBoolean(propertyStore.schema?.$ignore)) ||\n (propertyStore.schema?.$hooks?.has(\"groups\") && this.alterGroups(propertyStore.schema, groups))\n ) {\n return;\n }\n\n return this.mapProperty(propertyStore, id, groups);\n })\n );\n\n // discriminator\n writer.add(this.mapDiscriminatorKeyValue(entity));\n\n // additional properties\n writer.add(this.mapAdditionalProperties(entity, properties));\n\n return writer.return(\"obj\").root().toString();\n }\n\n private mapOptions({groups, useAlias = true, types, ...options}: JsonSerializerOptions<any, any>): JsonSerializerOptions {\n const customMappers: Record<string, any> = {};\n types = types || getJsonMapperTypes();\n\n types.forEach((mapper, model) => {\n if (![Array, Set, Map].includes(model as any)) {\n this.addTypeMapper(model as any, (value: any, options: any) =>\n mapper.serialize(value, {\n ...options,\n type: model\n })\n );\n }\n });\n\n const strictGroups = options.strictGroups ?? JsonMapperSettings.strictGroups;\n\n return {\n ...options,\n groups: groups === undefined ? (strictGroups ? [] : false) : groups || false,\n useAlias,\n customMappers\n };\n }\n\n private mapProperty(propertyStore: JsonPropertyStore, id: string, groups: false | string[]) {\n const key = String(propertyStore.propertyKey);\n const aliasKey: string = String(propertyStore.parent.schema.getAliasOf(key) || key);\n const schemaId = this.getSchemaId(id, key);\n const format = propertyStore.itemSchema.get(\"format\");\n const formatOpts = format && `options: {format: '${format}'}`;\n\n let writer = new Writer().add(`// Map ${key} ${id} ${groups || \"\"}`);\n\n // ignore hook (deprecated)\n if (propertyStore.schema?.$hooks?.has(\"ignore\")) {\n this.schemes[schemaId] = propertyStore.schema;\n\n writer = writer.if(`!alterIgnore('${schemaId}', {...options, self: input})`);\n }\n\n // pre hook\n const hasSerializer = propertyStore.schema?.$hooks?.has(\"onSerialize\");\n let getter = `input.${key}`;\n\n if (hasSerializer) {\n this.schemes[schemaId] = propertyStore.schema;\n const opts = Writer.options(formatOpts);\n\n getter = `alterValue('${schemaId}', input.${key}, ${opts})`;\n }\n\n writer = writer.set(`let ${varKey(key)}`, getter).if(`${varKey(key)} !== undefined`);\n\n const fill = this.getPropertyFiller(propertyStore, key, groups, formatOpts);\n\n if (hasSerializer) {\n fill(writer.if(`${varKey(key)} === input.${key}`));\n } else {\n fill(writer);\n }\n\n if (aliasKey !== key) {\n writer.set(`obj[options.useAlias ? '${aliasKey}' : '${key}']`, varKey(key));\n } else {\n writer.set(`obj.${key}`, varKey(key));\n }\n\n return writer.root();\n }\n\n private getPropertyFiller(propertyStore: JsonPropertyStore, key: string, groups: false | string[], formatOpts: any) {\n const isGeneric = propertyStore.itemSchema.isGeneric;\n const hasDiscriminator = propertyStore.itemSchema.hasDiscriminator;\n\n if (propertyStore.isCollection) {\n const type = propertyStore.getBestType();\n let nestedMapper: any;\n\n if (hasDiscriminator) {\n const targetName = propertyStore.parent.targetName;\n\n nestedMapper = this.compile(`Discriminator:${targetName}:${key}`, groups, {\n mapper: () => this.createDiscriminatorMapper(propertyStore, groups)\n });\n } else {\n nestedMapper = isGeneric ? {id: \"\"} : this.compile(type, groups);\n }\n\n return (writer: Writer) =>\n writer.callMapper(nameOf(propertyStore.collectionType), varKey(key), `id: '${nestedMapper.id}'`, formatOpts);\n }\n\n if (isGeneric) {\n return (writer: Writer) => writer.set(varKey(key), `compileAndMap(${varKey(key)}, options)`);\n }\n\n let nestedMapper: any;\n if (hasDiscriminator) {\n const targetName = propertyStore.parent.targetName;\n\n nestedMapper = this.compile(`Discriminator:${targetName}:${key}`, groups, {\n mapper: () => this.createDiscriminatorMapper(propertyStore, groups)\n });\n } else {\n nestedMapper = this.compile(propertyStore.getBestType(), groups);\n }\n\n return (writer: Writer) => writer.callMapper(nestedMapper.id, varKey(key), formatOpts);\n }\n\n private createDiscriminatorMapper(propertyStore: JsonPropertyStore, groups: false | string[]) {\n const discriminator = propertyStore.itemSchema.discriminator();\n const writer = new Writer().arrow(\"input\", \"options\");\n\n const sw = writer.switch(`nameOf(classOf(input))`);\n\n discriminator.values.forEach((value, kind) => {\n const nestedMapper = this.compile(value, groups);\n\n sw.case(`'${nameOf(value)}'`).returnCallMapper(nestedMapper.id, \"input\");\n });\n\n return writer.root().toString();\n }\n\n private mapPrecondition(id: string) {\n const writer = new Writer();\n\n writer.if(\"input && isCollection(input)\").return(Writer.mapperFrom(\"input\", `{...options, id: '${id}'}`));\n\n writer.if(\"hasJsonMethod(input)\").return(`mapJSON(input, {...options, id: '${id}'})`);\n\n return writer;\n }\n\n private mapDiscriminatorKeyValue(entity: JsonClassStore) {\n if (entity.discriminatorAncestor) {\n const discriminator = entity.discriminatorAncestor.schema.discriminator();\n const type = discriminator.getDefaultValue(entity.target);\n\n if (type) {\n const writer = new Writer();\n writer.if(`!obj.${discriminator.propertyName}`).set(`obj.${discriminator.propertyName}`, `'${type}'`);\n\n return writer;\n }\n }\n }\n\n private mapAdditionalProperties(entity: JsonClassStore, properties: Set<string>) {\n const additionalProperties = !!entity.schema.get(\"additionalProperties\");\n\n if (additionalProperties) {\n const exclude = [...properties.values()].map((key) => `'${key}'`).join(\", \");\n const writer = new Writer();\n writer.add(\"// add additional properties\");\n writer.each(\"objectKeys(input)\", [\"key\"]).if(`![${exclude}].includes(key)`).set(\"obj[key]\", \"input[key]\");\n\n return writer;\n }\n }\n\n private mapObject(input: any, {type, ...options}: JsonSerializerOptions) {\n if ((input && isPrimitive(input)) || !input) {\n // prevent mongoose mapping error\n return input;\n }\n\n if (input && isCollection(input)) {\n return this.execMapper(getCollectionType(input)!, input, options);\n }\n\n if (hasJsonMethod(input)) {\n return this.mapJSON(input, options);\n }\n\n return getObjectProperties(input)\n .filter(([, value]) => value !== undefined)\n .reduce((obj, [key, value]) => {\n if (isNil(value)) {\n return {\n ...obj,\n [key]: value\n };\n }\n\n const mapper = this.compile(classOf(value), options.groups);\n\n return {\n ...obj,\n [key]: mapper.fn(value, options)\n };\n }, {});\n }\n\n private mapSet(input: any, options: JsonSerializerOptions) {\n if (isNil(input)) {\n return input;\n }\n return [...input.values()].map((item) => {\n return this.mapItem(item, options);\n });\n }\n\n private mapArray(input: any, options: JsonSerializerOptions) {\n if (isNil(input)) {\n return input;\n }\n\n return [].concat(input).map((item: any) => {\n return this.mapItem(item, options);\n });\n }\n\n private mapMap(input: any, options: JsonSerializerOptions) {\n if (isNil(input)) {\n return input;\n }\n\n return [...input.entries()].reduce((obj, [key, item]) => {\n return {\n ...obj,\n [key]: this.mapItem(item, options)\n };\n }, {});\n }\n\n private mapItem(input: any, {id, ...options}: JsonSerializerOptions) {\n if (!id && input) {\n return this.compile(classOf(input), options.groups).fn(input, options);\n }\n\n return id ? this.execMapper(id, input, options) : input;\n }\n\n private mapJSON(input: any, {id, ...options}: JsonSerializerOptions) {\n if (isMongooseObject(input)) {\n return input.toJSON({...options, self: undefined, id});\n }\n\n id = id || nameOf(classOf(input));\n\n if (this.mappers[id] && (isDate(input) || isMomentObject(input))) {\n return this.execMapper(id, input, options);\n }\n\n input = input.toJSON();\n\n return isObject(input) ? this.execMapper(id, input, options) : input;\n }\n}\n"],"names":["getCollectionType","input","isArray","getBestType","type","obj","dataType","classOf","isClassObject","isCollection","varKey","k","JsonSerializer","JsonMapperCompiler","value","options","isNil","model","schemaId","alterOnSerialize","id","groups","entity","JsonEntityStore","properties","schemaProperties","getPropertiesStores","writer","Writer","propertyStore","_a","isBoolean","_b","_d","_c","useAlias","types","customMappers","getJsonMapperTypes","mapper","strictGroups","JsonMapperSettings","key","aliasKey","format","formatOpts","hasSerializer","getter","opts","fill","isGeneric","hasDiscriminator","nestedMapper","targetName","nameOf","discriminator","sw","kind","exclude","isPrimitive","hasJsonMethod","getObjectProperties","item","isMongooseObject","isDate","isMomentObject","isObject"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonSerializerOptions.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
var u = (e) => {
|
|
2
|
+
throw TypeError(e);
|
|
3
|
+
};
|
|
4
|
+
var d = (e, t, r) => t.has(e) || u("Cannot " + r);
|
|
5
|
+
var a = (e, t, r) => (d(e, t, "read from private field"), r ? r.call(e) : t.get(e)), h = (e, t, r) => t.has(e) ? u("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, r);
|
|
6
|
+
const i = class i {
|
|
7
|
+
constructor(t) {
|
|
8
|
+
this.body = [], this._root = t;
|
|
9
|
+
}
|
|
10
|
+
static indent(t) {
|
|
11
|
+
return t.map((r) => ` ${r}`);
|
|
12
|
+
}
|
|
13
|
+
static mapper(t, r, s) {
|
|
14
|
+
return `execMapper('${t}', ${r}, ${s})`;
|
|
15
|
+
}
|
|
16
|
+
static mapperFrom(t, r) {
|
|
17
|
+
return `execMapper(nameOf(classOf(${t})), ${t}, ${r})`;
|
|
18
|
+
}
|
|
19
|
+
static options(...t) {
|
|
20
|
+
return t = t.filter(Boolean), t.length ? i.object.assign("...options", ...t) : "options";
|
|
21
|
+
}
|
|
22
|
+
add(...t) {
|
|
23
|
+
return t = t.filter((r) => r !== void 0), t.length && this.body.push(...t), this;
|
|
24
|
+
}
|
|
25
|
+
arrow(...t) {
|
|
26
|
+
this.add(`(${t}) => {`);
|
|
27
|
+
const r = this.new();
|
|
28
|
+
return this.add("}"), r;
|
|
29
|
+
}
|
|
30
|
+
build() {
|
|
31
|
+
const t = this.body.flatMap((r) => r instanceof i ? r.build() : r);
|
|
32
|
+
return this._indent ? t.map((r) => " " + r) : t;
|
|
33
|
+
}
|
|
34
|
+
callMapper(t, r, ...s) {
|
|
35
|
+
return this.set(r, i.mapper(t, r, i.options(...s)));
|
|
36
|
+
}
|
|
37
|
+
returnCallMapper(t, r, ...s) {
|
|
38
|
+
return this.return(i.mapper(t, r, i.options(...s)));
|
|
39
|
+
}
|
|
40
|
+
const(t, r) {
|
|
41
|
+
return this.add(`const ${t} = ${r};`), this;
|
|
42
|
+
}
|
|
43
|
+
each(t, r = []) {
|
|
44
|
+
const s = this.add(t + ".forEach((" + r.join(", ") + ") => {").new();
|
|
45
|
+
return this.add("});"), s;
|
|
46
|
+
}
|
|
47
|
+
if(t) {
|
|
48
|
+
const r = new c(t, this);
|
|
49
|
+
return this.add(r), r;
|
|
50
|
+
}
|
|
51
|
+
switch(t) {
|
|
52
|
+
const r = new p(t);
|
|
53
|
+
return this.add(r), r;
|
|
54
|
+
}
|
|
55
|
+
indent(t) {
|
|
56
|
+
return this._indent = t, this;
|
|
57
|
+
}
|
|
58
|
+
new(t = !0) {
|
|
59
|
+
const r = new i(this.root());
|
|
60
|
+
return r.indent(t), this.add(r), r;
|
|
61
|
+
}
|
|
62
|
+
return(t) {
|
|
63
|
+
return this.add(`return ${t};`), this.root();
|
|
64
|
+
}
|
|
65
|
+
root() {
|
|
66
|
+
return this._root || this;
|
|
67
|
+
}
|
|
68
|
+
set(t, r) {
|
|
69
|
+
return this.add(`${t} = ${r};`), this;
|
|
70
|
+
}
|
|
71
|
+
toString() {
|
|
72
|
+
return this.build().join(`
|
|
73
|
+
`);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
i.object = {
|
|
77
|
+
assign(...t) {
|
|
78
|
+
return `{ ${t.filter(Boolean).join(", ")} }`;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
let n = i;
|
|
82
|
+
class c extends n {
|
|
83
|
+
constructor(t, r) {
|
|
84
|
+
super(), this.condition = t, this._root = r;
|
|
85
|
+
}
|
|
86
|
+
else() {
|
|
87
|
+
const t = new n(this._root);
|
|
88
|
+
return this.elseWriter = t, t;
|
|
89
|
+
}
|
|
90
|
+
build() {
|
|
91
|
+
return [
|
|
92
|
+
`if (${this.condition}) {`,
|
|
93
|
+
...n.indent(super.build()),
|
|
94
|
+
"}",
|
|
95
|
+
this.elseWriter ? ["else {", ...n.indent(this.elseWriter.build()), "}"] : []
|
|
96
|
+
].flat();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
var o;
|
|
100
|
+
class p extends n {
|
|
101
|
+
constructor(r) {
|
|
102
|
+
super();
|
|
103
|
+
h(this, o, /* @__PURE__ */ new Map());
|
|
104
|
+
this.input = r;
|
|
105
|
+
}
|
|
106
|
+
case(r) {
|
|
107
|
+
const s = new n();
|
|
108
|
+
return a(this, o).set(r, s), s;
|
|
109
|
+
}
|
|
110
|
+
build() {
|
|
111
|
+
return [
|
|
112
|
+
`switch (${this.input}) {`,
|
|
113
|
+
...n.indent(
|
|
114
|
+
Array.from(a(this, o).entries()).flatMap(([r, s]) => [r === "default" ? `${r}:` : `case ${r}:`, ...n.indent(s.build())])
|
|
115
|
+
),
|
|
116
|
+
"}"
|
|
117
|
+
].flat();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
o = new WeakMap();
|
|
121
|
+
export {
|
|
122
|
+
n as Writer
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=Writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Writer.js","sources":["../../../src/domain/Writer.ts"],"sourcesContent":["export class Writer {\n static object = {\n assign(...args: string[]) {\n return `{ ${args.filter(Boolean).join(\", \")} }`;\n }\n };\n\n protected _root?: Writer;\n protected body: (string | Writer)[] = [];\n private _indent: boolean;\n\n constructor(root?: Writer) {\n this._root = root;\n }\n\n static indent(lines: string[]) {\n return lines.map((p) => `\\t${p}`);\n }\n\n static mapper(mapperId: string, key: string, options: string) {\n return `execMapper('${mapperId}', ${key}, ${options})`;\n }\n\n static mapperFrom(key: string, options: string) {\n return `execMapper(nameOf(classOf(${key})), ${key}, ${options})`;\n }\n\n static options(...args: string[]) {\n args = args.filter(Boolean);\n return !args.length ? \"options\" : Writer.object.assign(\"...options\", ...args);\n }\n\n add(...lines: (undefined | string | Writer)[]) {\n lines = lines.filter((line) => line !== undefined);\n\n lines.length && this.body.push(...(lines as string | Writer[]));\n\n return this;\n }\n\n arrow(...args: string[]) {\n this.add(`(${args}) => {`);\n\n const writer = this.new();\n\n this.add(\"}\");\n\n return writer;\n }\n\n build(): string[] {\n const result = this.body.flatMap((line) => {\n return line instanceof Writer ? line.build() : line;\n });\n\n return this._indent ? result.map((item) => \"\\t\" + item) : result;\n }\n\n callMapper(id: string, key: string, ...options: string[]) {\n return this.set(key, Writer.mapper(id, key, Writer.options(...options)));\n }\n\n returnCallMapper(id: string, key: string, ...options: string[]) {\n return this.return(Writer.mapper(id, key, Writer.options(...options)));\n }\n\n const(name: string, line: string) {\n this.add(`const ${name} = ${line};`);\n return this;\n }\n\n each(iterable: string, args: string[] = []) {\n const writer = this.add(iterable + \".forEach((\" + args.join(\", \") + \") => {\").new();\n\n this.add(\"});\");\n\n return writer;\n }\n\n if(condition: string) {\n const writer = new IfWriter(condition, this);\n\n this.add(writer);\n\n return writer;\n }\n\n switch(input: string) {\n const sw = new SwitchWriter(input);\n\n this.add(sw);\n\n return sw;\n }\n\n indent(indent: boolean) {\n this._indent = indent;\n return this;\n }\n\n new(indent = true) {\n const writer = new Writer(this.root());\n writer.indent(indent);\n this.add(writer);\n\n return writer;\n }\n\n return(line: string) {\n this.add(`return ${line};`);\n return this.root();\n }\n\n root() {\n return this._root || this;\n }\n\n set(left: string, right: string) {\n this.add(`${left} = ${right};`);\n return this;\n }\n\n toString() {\n return this.build().join(\"\\n\");\n }\n}\n\nclass IfWriter extends Writer {\n protected elseWriter?: Writer;\n\n constructor(\n protected condition: string,\n root: Writer\n ) {\n super();\n this._root = root;\n }\n\n else() {\n const writer = new Writer(this._root);\n\n this.elseWriter = writer;\n\n return writer;\n }\n\n build() {\n return [\n `if (${this.condition}) {`,\n ...Writer.indent(super.build()),\n \"}\",\n this.elseWriter ? [`else {`, ...Writer.indent(this.elseWriter.build()), \"}\"] : []\n ].flat();\n }\n}\n\nclass SwitchWriter extends Writer {\n #map = new Map<string, Writer>();\n\n constructor(private input: string) {\n super();\n }\n\n case(condition: string) {\n const writer = new Writer();\n this.#map.set(condition, writer);\n return writer;\n }\n\n build() {\n return [\n `switch (${this.input}) {`,\n ...Writer.indent(\n Array.from(this.#map.entries()).flatMap(([condition, writer]) => {\n return [condition === \"default\" ? `${condition}:` : `case ${condition}:`, ...Writer.indent(writer.build())];\n })\n ),\n \"}\"\n ].flat();\n }\n}\n"],"names":["_Writer","root","lines","p","mapperId","key","options","args","line","writer","result","item","id","name","iterable","condition","IfWriter","input","sw","SwitchWriter","indent","left","right","Writer","_map","__privateAdd","__privateGet"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alterAfterDeserialize.js","sources":["../../../src/hooks/alterAfterDeserialize.ts"],"sourcesContent":["import type {Hooks} from \"@tsed/hooks\";\n\nexport function alterAfterDeserialize(data: any, schema: {$hooks: Hooks}, options: any) {\n return schema?.$hooks?.alter(\"afterDeserialize\", data, [options]);\n}\n"],"names":["alterAfterDeserialize","data","schema","options","_a"],"mappings":"AAEgB,SAAAA,EAAsBC,GAAWC,GAAyBC,GAAc;AAAxE,MAAAC;AACd,UAAOA,IAAAF,KAAA,gBAAAA,EAAQ,WAAR,gBAAAE,EAAgB,MAAM,oBAAoBH,GAAM,CAACE,CAAO;AACjE;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alterBeforeDeserialize.js","sources":["../../../src/hooks/alterBeforeDeserialize.ts"],"sourcesContent":["import type {Hooks} from \"@tsed/hooks\";\n\nexport function alterBeforeDeserialize(data: any, schema: {$hooks: Hooks}, options: any) {\n return schema?.$hooks?.alter(\"beforeDeserialize\", data, [options]);\n}\n"],"names":["alterBeforeDeserialize","data","schema","options","_a"],"mappings":"AAEgB,SAAAA,EAAuBC,GAAWC,GAAyBC,GAAc;AAAzE,MAAAC;AACd,UAAOA,IAAAF,KAAA,gBAAAA,EAAQ,WAAR,gBAAAE,EAAgB,MAAM,qBAAqBH,GAAM,CAACE,CAAO;AAClE;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alterOnDeserialize.js","sources":["../../../src/hooks/alterOnDeserialize.ts"],"sourcesContent":["import {JsonHookContext, JsonSchema} from \"@tsed/schema\";\n\nexport function alterOnDeserialize(schema: JsonSchema, value: any, options: JsonHookContext) {\n return schema.$hooks.alter(\"onDeserialize\", value, [options]);\n}\n"],"names":["alterOnDeserialize","schema","value","options"],"mappings":"AAEgB,SAAAA,EAAmBC,GAAoBC,GAAYC,GAA0B;AAC3F,SAAOF,EAAO,OAAO,MAAM,iBAAiBC,GAAO,CAACC,CAAO,CAAC;AAC9D;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alterOnSerialize.js","sources":["../../../src/hooks/alterOnSerialize.ts"],"sourcesContent":["import {JsonHookContext, JsonSchema} from \"@tsed/schema\";\n\nexport function alterOnSerialize(schema: JsonSchema, value: any, options: JsonHookContext) {\n return schema.$hooks.alter(\"onSerialize\", value, [options]);\n}\n"],"names":["alterOnSerialize","schema","value","options"],"mappings":"AAEgB,SAAAA,EAAiBC,GAAoBC,GAAYC,GAA0B;AACzF,SAAOF,EAAO,OAAO,MAAM,eAAeC,GAAO,CAACC,CAAO,CAAC;AAC5D;"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { DateMapper as o } from "./components/DateMapper.js";
|
|
2
|
+
import { CastError as t, PrimitiveMapper as i } from "./components/PrimitiveMapper.js";
|
|
3
|
+
import { SymbolMapper as f } from "./components/SymbolMapper.js";
|
|
4
|
+
import { AfterDeserialize as s } from "./decorators/afterDeserialize.js";
|
|
5
|
+
import { BeforeDeserialize as l } from "./decorators/beforeDeserialize.js";
|
|
6
|
+
import { JsonMapper as z } from "./decorators/jsonMapper.js";
|
|
7
|
+
import { OnDeserialize as M } from "./decorators/onDeserialize.js";
|
|
8
|
+
import { OnSerialize as O } from "./decorators/onSerialize.js";
|
|
9
|
+
import { JsonDeserializer as g } from "./domain/JsonDeserializer.js";
|
|
10
|
+
import { JsonMapperCompiler as b } from "./domain/JsonMapperCompiler.js";
|
|
11
|
+
import { JsonMapperSettings as B } from "./domain/JsonMapperSettings.js";
|
|
12
|
+
import { getJsonMapperTypes as P, registerJsonTypeMapper as T } from "./domain/JsonMapperTypesContainer.js";
|
|
13
|
+
import { JsonSerializer as d } from "./domain/JsonSerializer.js";
|
|
14
|
+
import { Writer as v } from "./domain/Writer.js";
|
|
15
|
+
import { alterAfterDeserialize as W } from "./hooks/alterAfterDeserialize.js";
|
|
16
|
+
import { alterBeforeDeserialize as k } from "./hooks/alterBeforeDeserialize.js";
|
|
17
|
+
import { alterOnDeserialize as u } from "./hooks/alterOnDeserialize.js";
|
|
18
|
+
import { alterOnSerialize as F } from "./hooks/alterOnSerialize.js";
|
|
19
|
+
import { deserialize as H } from "./utils/deserialize.js";
|
|
20
|
+
import { getObjectProperties as K } from "./utils/getObjectProperties.js";
|
|
21
|
+
import { serialize as N } from "./utils/serialize.js";
|
|
22
|
+
export {
|
|
23
|
+
s as AfterDeserialize,
|
|
24
|
+
l as BeforeDeserialize,
|
|
25
|
+
t as CastError,
|
|
26
|
+
o as DateMapper,
|
|
27
|
+
g as JsonDeserializer,
|
|
28
|
+
z as JsonMapper,
|
|
29
|
+
b as JsonMapperCompiler,
|
|
30
|
+
B as JsonMapperSettings,
|
|
31
|
+
d as JsonSerializer,
|
|
32
|
+
M as OnDeserialize,
|
|
33
|
+
O as OnSerialize,
|
|
34
|
+
i as PrimitiveMapper,
|
|
35
|
+
f as SymbolMapper,
|
|
36
|
+
v as Writer,
|
|
37
|
+
W as alterAfterDeserialize,
|
|
38
|
+
k as alterBeforeDeserialize,
|
|
39
|
+
u as alterOnDeserialize,
|
|
40
|
+
F as alterOnSerialize,
|
|
41
|
+
H as deserialize,
|
|
42
|
+
P as getJsonMapperTypes,
|
|
43
|
+
K as getObjectProperties,
|
|
44
|
+
T as registerJsonTypeMapper,
|
|
45
|
+
N as serialize
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "../components/DateMapper.js";
|
|
2
|
+
import "../components/PrimitiveMapper.js";
|
|
3
|
+
import "../components/SymbolMapper.js";
|
|
4
|
+
import { JsonDeserializer as i } from "../domain/JsonDeserializer.js";
|
|
5
|
+
const o = new i();
|
|
6
|
+
function s(r, e) {
|
|
7
|
+
return o.map(r, e);
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
s as deserialize
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=deserialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deserialize.js","sources":["../../../src/utils/deserialize.ts"],"sourcesContent":["import \"../components/DateMapper.js\";\nimport \"../components/PrimitiveMapper.js\";\nimport \"../components/SymbolMapper.js\";\n\nimport {JsonDeserializer} from \"../domain/JsonDeserializer.js\";\nimport {JsonDeserializerOptions} from \"../domain/JsonDeserializerOptions.js\";\n\nconst deserializer = new JsonDeserializer();\n\nexport function deserialize<Model = any>(input: any, options?: JsonDeserializerOptions): Model {\n return deserializer.map<Model>(input, options);\n}\n"],"names":["deserializer","JsonDeserializer","deserialize","input","options"],"mappings":";;;;AAOA,MAAMA,IAAe,IAAIC,EAAiB;AAE1B,SAAAC,EAAyBC,GAAYC,GAA0C;AACtF,SAAAJ,EAAa,IAAWG,GAAOC,CAAO;AAC/C;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getObjectProperties.js","sources":["../../../src/utils/getObjectProperties.ts"],"sourcesContent":["import {isFunction} from \"@tsed/core\";\n\nexport function getObjectProperties(obj: any): [string, any][] {\n return Object.entries(obj).filter(([, value]) => !isFunction(value));\n}\n"],"names":["getObjectProperties","obj","value","isFunction"],"mappings":";AAEO,SAASA,EAAoBC,GAA2B;AAC7D,SAAO,OAAO,QAAQA,CAAG,EAAE,OAAO,CAAC,CAAG,EAAAC,CAAK,MAAM,CAACC,EAAWD,CAAK,CAAC;AACrE;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "../components/DateMapper.js";
|
|
2
|
+
import "../components/PrimitiveMapper.js";
|
|
3
|
+
import "../components/SymbolMapper.js";
|
|
4
|
+
import { JsonSerializer as e } from "../domain/JsonSerializer.js";
|
|
5
|
+
const o = new e();
|
|
6
|
+
function a(r, i) {
|
|
7
|
+
return o.map(r, i);
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
a as serialize
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.js","sources":["../../../src/utils/serialize.ts"],"sourcesContent":["import \"../components/DateMapper.js\";\nimport \"../components/PrimitiveMapper.js\";\nimport \"../components/SymbolMapper.js\";\n\nimport {JsonSerializer} from \"../domain/JsonSerializer.js\";\nimport {JsonSerializerOptions} from \"../domain/JsonSerializerOptions.js\";\n\nconst serializer = new JsonSerializer();\n\nexport function serialize(input: any, options?: JsonSerializerOptions) {\n return serializer.map(input, options);\n}\n"],"names":["serializer","JsonSerializer","serialize","input","options"],"mappings":";;;;AAOA,MAAMA,IAAa,IAAIC,EAAe;AAEtB,SAAAC,EAAUC,GAAYC,GAAiC;AAC9D,SAAAJ,EAAW,IAAIG,GAAOC,CAAO;AACtC;"}
|
package/package.json
CHANGED
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
"name": "@tsed/json-mapper",
|
|
3
3
|
"description": "Json mapper module for Ts.ED Framework",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "8.10.0-rc.
|
|
5
|
+
"version": "8.10.0-rc.3",
|
|
6
6
|
"source": "./src/index.ts",
|
|
7
7
|
"main": "./lib/esm/index.js",
|
|
8
8
|
"module": "./lib/esm/index.js",
|
|
9
9
|
"typings": "./lib/types/index.d.ts",
|
|
10
|
-
"browser": "./lib/browser/
|
|
10
|
+
"browser": "./lib/browser/index.js",
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
13
|
"tsed-source": "./src/index.ts",
|
|
14
14
|
"types": "./lib/types/index.d.ts",
|
|
15
|
-
"browser": "./lib/browser/
|
|
15
|
+
"browser": "./lib/browser/index.js",
|
|
16
16
|
"import": "./lib/esm/index.js",
|
|
17
17
|
"default": "./lib/esm/index.js"
|
|
18
18
|
}
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
"tslib": "2.7.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@tsed/barrels": "8.10.0-rc.
|
|
46
|
-
"@tsed/core": "8.10.0-rc.
|
|
47
|
-
"@tsed/schema": "8.10.0-rc.
|
|
48
|
-
"@tsed/typescript": "8.10.0-rc.
|
|
45
|
+
"@tsed/barrels": "8.10.0-rc.3",
|
|
46
|
+
"@tsed/core": "8.10.0-rc.3",
|
|
47
|
+
"@tsed/schema": "8.10.0-rc.3",
|
|
48
|
+
"@tsed/typescript": "8.10.0-rc.3",
|
|
49
49
|
"eslint": "9.12.0",
|
|
50
50
|
"typescript": "5.4.5",
|
|
51
51
|
"vite": "6.2.2",
|
package/vite.config.mts
CHANGED
|
@@ -1,19 +1,45 @@
|
|
|
1
1
|
import {defineConfig} from "vite";
|
|
2
2
|
import {join} from "node:path";
|
|
3
|
+
import {extname, relative} from "path";
|
|
4
|
+
import {fileURLToPath} from "node:url";
|
|
5
|
+
import {globbySync} from "globby";
|
|
3
6
|
|
|
4
7
|
// https://vitejs.dev/config/
|
|
5
8
|
export default defineConfig({
|
|
6
9
|
plugins: [],
|
|
7
10
|
build: {
|
|
11
|
+
assetsInlineLimit: 0,
|
|
12
|
+
sourcemap: true,
|
|
8
13
|
outDir: "lib/browser",
|
|
9
14
|
lib: {
|
|
10
15
|
entry: join(import.meta.dirname, "src/index.ts"),
|
|
11
|
-
formats: ["
|
|
12
|
-
name: "@tsed/json-mapper",
|
|
13
|
-
fileName: "json-mapper"
|
|
16
|
+
formats: ["es"]
|
|
14
17
|
},
|
|
15
18
|
rollupOptions: {
|
|
16
|
-
external: /node_modules\/(.*)
|
|
19
|
+
external: [/node_modules\/(.*)/, /^@tsed\//],
|
|
20
|
+
input: Object.fromEntries(
|
|
21
|
+
globbySync("src/**/*.ts", {
|
|
22
|
+
ignore: [
|
|
23
|
+
"**/*.spec.{ts,tsx}",
|
|
24
|
+
"**/*.stories.{ts,tsx}",
|
|
25
|
+
"**/__mocks__/**",
|
|
26
|
+
"**/__mock__/**",
|
|
27
|
+
"**/interfaces/**"
|
|
28
|
+
]
|
|
29
|
+
}).map((file) => [
|
|
30
|
+
// The name of the entry point
|
|
31
|
+
// lib/nested/foo.ts becomes nested/foo
|
|
32
|
+
relative("src", file.slice(0, file.length - extname(file).length)),
|
|
33
|
+
// The absolute path to the entry file
|
|
34
|
+
// lib/nested/foo.ts becomes /project/lib/nested/foo.ts
|
|
35
|
+
fileURLToPath(new URL(file, import.meta.url))
|
|
36
|
+
])
|
|
37
|
+
),
|
|
38
|
+
output: {
|
|
39
|
+
assetFileNames: "assets/[name][extname]",
|
|
40
|
+
chunkFileNames: "chunks/[name].js",
|
|
41
|
+
entryFileNames: "[name].js"
|
|
42
|
+
}
|
|
17
43
|
}
|
|
18
44
|
}
|
|
19
45
|
});
|