@tsed/json-mapper 8.11.0 → 8.11.2-rc.1
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/esm/components/DateMapper.js +0 -1
- package/lib/esm/components/PrimitiveMapper.js +0 -1
- package/lib/esm/components/SymbolMapper.js +0 -1
- package/lib/esm/decorators/afterDeserialize.js +0 -1
- package/lib/esm/decorators/beforeDeserialize.js +0 -1
- package/lib/esm/decorators/jsonMapper.js +0 -1
- package/lib/esm/decorators/onDeserialize.js +0 -1
- package/lib/esm/decorators/onSerialize.js +0 -1
- package/lib/esm/domain/JsonDeserializer.js +0 -1
- package/lib/esm/domain/JsonDeserializerOptions.js +0 -1
- package/lib/esm/domain/JsonMapperCompiler.js +0 -1
- package/lib/esm/domain/JsonMapperGlobalOptions.js +0 -1
- package/lib/esm/domain/JsonMapperSettings.js +0 -1
- package/lib/esm/domain/JsonMapperTypesContainer.js +0 -1
- package/lib/esm/domain/JsonSerializer.js +0 -1
- package/lib/esm/domain/JsonSerializerOptions.js +0 -1
- package/lib/esm/domain/Writer.js +0 -1
- package/lib/esm/hooks/alterAfterDeserialize.js +0 -1
- package/lib/esm/hooks/alterBeforeDeserialize.js +0 -1
- package/lib/esm/hooks/alterOnDeserialize.js +0 -1
- package/lib/esm/hooks/alterOnSerialize.js +0 -1
- package/lib/esm/index.js +0 -1
- package/lib/esm/interfaces/JsonMapperMethods.js +0 -1
- package/lib/esm/utils/deserialize.js +0 -1
- package/lib/esm/utils/getObjectProperties.js +0 -1
- package/lib/esm/utils/serialize.js +0 -1
- package/package.json +12 -11
- package/lib/browser/components/DateMapper.js +0 -22
- package/lib/browser/components/DateMapper.js.map +0 -1
- package/lib/browser/components/PrimitiveMapper.js +0 -52
- package/lib/browser/components/PrimitiveMapper.js.map +0 -1
- package/lib/browser/components/SymbolMapper.js +0 -21
- package/lib/browser/components/SymbolMapper.js.map +0 -1
- package/lib/browser/decorators/afterDeserialize.js +0 -10
- package/lib/browser/decorators/afterDeserialize.js.map +0 -1
- package/lib/browser/decorators/beforeDeserialize.js +0 -10
- package/lib/browser/decorators/beforeDeserialize.js.map +0 -1
- package/lib/browser/decorators/jsonMapper.js +0 -12
- package/lib/browser/decorators/jsonMapper.js.map +0 -1
- package/lib/browser/decorators/onDeserialize.js +0 -10
- package/lib/browser/decorators/onDeserialize.js.map +0 -1
- package/lib/browser/decorators/onSerialize.js +0 -10
- package/lib/browser/decorators/onSerialize.js.map +0 -1
- package/lib/browser/domain/JsonDeserializer.js +0 -179
- package/lib/browser/domain/JsonDeserializer.js.map +0 -1
- package/lib/browser/domain/JsonDeserializerOptions.js +0 -2
- package/lib/browser/domain/JsonDeserializerOptions.js.map +0 -1
- package/lib/browser/domain/JsonMapperCompiler.js +0 -110
- package/lib/browser/domain/JsonMapperCompiler.js.map +0 -1
- package/lib/browser/domain/JsonMapperGlobalOptions.js +0 -2
- package/lib/browser/domain/JsonMapperGlobalOptions.js.map +0 -1
- package/lib/browser/domain/JsonMapperSettings.js +0 -9
- package/lib/browser/domain/JsonMapperSettings.js.map +0 -1
- package/lib/browser/domain/JsonMapperTypesContainer.js +0 -12
- package/lib/browser/domain/JsonMapperTypesContainer.js.map +0 -1
- package/lib/browser/domain/JsonSerializer.js +0 -164
- package/lib/browser/domain/JsonSerializer.js.map +0 -1
- package/lib/browser/domain/JsonSerializerOptions.js +0 -2
- package/lib/browser/domain/JsonSerializerOptions.js.map +0 -1
- package/lib/browser/domain/Writer.js +0 -124
- package/lib/browser/domain/Writer.js.map +0 -1
- package/lib/browser/hooks/alterAfterDeserialize.js +0 -8
- package/lib/browser/hooks/alterAfterDeserialize.js.map +0 -1
- package/lib/browser/hooks/alterBeforeDeserialize.js +0 -8
- package/lib/browser/hooks/alterBeforeDeserialize.js.map +0 -1
- package/lib/browser/hooks/alterOnDeserialize.js +0 -7
- package/lib/browser/hooks/alterOnDeserialize.js.map +0 -1
- package/lib/browser/hooks/alterOnSerialize.js +0 -7
- package/lib/browser/hooks/alterOnSerialize.js.map +0 -1
- package/lib/browser/index.js +0 -47
- package/lib/browser/index.js.map +0 -1
- package/lib/browser/utils/deserialize.js +0 -12
- package/lib/browser/utils/deserialize.js.map +0 -1
- package/lib/browser/utils/getObjectProperties.js +0 -8
- package/lib/browser/utils/getObjectProperties.js.map +0 -1
- package/lib/browser/utils/serialize.js +0 -12
- package/lib/browser/utils/serialize.js.map +0 -1
- package/lib/esm/components/DateMapper.js.map +0 -1
- package/lib/esm/components/PrimitiveMapper.js.map +0 -1
- package/lib/esm/components/SymbolMapper.js.map +0 -1
- package/lib/esm/decorators/afterDeserialize.js.map +0 -1
- package/lib/esm/decorators/beforeDeserialize.js.map +0 -1
- package/lib/esm/decorators/jsonMapper.js.map +0 -1
- package/lib/esm/decorators/onDeserialize.js.map +0 -1
- package/lib/esm/decorators/onSerialize.js.map +0 -1
- package/lib/esm/domain/JsonDeserializer.js.map +0 -1
- package/lib/esm/domain/JsonDeserializerOptions.js.map +0 -1
- package/lib/esm/domain/JsonMapperCompiler.js.map +0 -1
- package/lib/esm/domain/JsonMapperGlobalOptions.js.map +0 -1
- package/lib/esm/domain/JsonMapperSettings.js.map +0 -1
- package/lib/esm/domain/JsonMapperTypesContainer.js.map +0 -1
- package/lib/esm/domain/JsonSerializer.js.map +0 -1
- package/lib/esm/domain/JsonSerializerOptions.js.map +0 -1
- package/lib/esm/domain/Writer.js.map +0 -1
- package/lib/esm/hooks/alterAfterDeserialize.js.map +0 -1
- package/lib/esm/hooks/alterBeforeDeserialize.js.map +0 -1
- package/lib/esm/hooks/alterOnDeserialize.js.map +0 -1
- package/lib/esm/hooks/alterOnSerialize.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/interfaces/JsonMapperMethods.js.map +0 -1
- package/lib/esm/utils/deserialize.js.map +0 -1
- package/lib/esm/utils/getObjectProperties.js.map +0 -1
- package/lib/esm/utils/serialize.js.map +0 -1
- package/src/components/DateMapper.spec.ts +0 -43
- package/src/components/DateMapper.ts +0 -29
- package/src/components/PrimitiveMapper.spec.ts +0 -179
- package/src/components/PrimitiveMapper.ts +0 -64
- package/src/components/SymbolMapper.spec.ts +0 -23
- package/src/components/SymbolMapper.ts +0 -19
- package/src/decorators/afterDeserialize.ts +0 -39
- package/src/decorators/beforeDeserialize.ts +0 -39
- package/src/decorators/jsonMapper.ts +0 -16
- package/src/decorators/onDeserialize.ts +0 -29
- package/src/decorators/onSerialize.ts +0 -29
- package/src/domain/JsonDeserializer.spec.ts +0 -1437
- package/src/domain/JsonDeserializer.ts +0 -402
- package/src/domain/JsonDeserializerOptions.ts +0 -31
- package/src/domain/JsonMapperCompiler.ts +0 -247
- package/src/domain/JsonMapperGlobalOptions.ts +0 -14
- package/src/domain/JsonMapperSettings.ts +0 -7
- package/src/domain/JsonMapperTypesContainer.ts +0 -20
- package/src/domain/JsonSerializer.spec.ts +0 -1506
- package/src/domain/JsonSerializer.ts +0 -371
- package/src/domain/JsonSerializerOptions.ts +0 -17
- package/src/domain/Writer.spec.ts +0 -11
- package/src/domain/Writer.ts +0 -181
- package/src/domain/__snapshots__/Writer.spec.ts.snap +0 -10
- package/src/hooks/alterAfterDeserialize.ts +0 -5
- package/src/hooks/alterBeforeDeserialize.ts +0 -5
- package/src/hooks/alterOnDeserialize.ts +0 -5
- package/src/hooks/alterOnSerialize.ts +0 -5
- package/src/index.ts +0 -28
- package/src/interfaces/JsonMapperMethods.ts +0 -32
- package/src/utils/deserialize.spec.ts +0 -33
- package/src/utils/deserialize.ts +0 -12
- package/src/utils/getObjectProperties.ts +0 -5
- package/src/utils/serialize.spec.ts +0 -37
- package/src/utils/serialize.ts +0 -12
- package/vite.config.mts +0 -45
- package/vitest.config.mts +0 -21
package/lib/esm/domain/Writer.js
CHANGED
package/lib/esm/index.js
CHANGED
package/package.json
CHANGED
|
@@ -2,25 +2,24 @@
|
|
|
2
2
|
"name": "@tsed/json-mapper",
|
|
3
3
|
"description": "Json mapper module for Ts.ED Framework",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "8.11.
|
|
5
|
+
"version": "8.11.2-rc.1",
|
|
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/
|
|
10
|
+
"browser": "./lib/esm/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/
|
|
15
|
+
"browser": "./lib/esm/index.js",
|
|
16
16
|
"import": "./lib/esm/index.js",
|
|
17
17
|
"default": "./lib/esm/index.js"
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
"scripts": {
|
|
21
21
|
"clean": "rm -rf lib",
|
|
22
|
-
"build": "yarn clean && yarn barrels && yarn build:ts
|
|
23
|
-
"build:browser": "vite build",
|
|
22
|
+
"build": "yarn clean && yarn barrels && yarn build:ts",
|
|
24
23
|
"barrels": "barrels",
|
|
25
24
|
"test": "vitest run",
|
|
26
25
|
"build:ts": "tsc --build tsconfig.esm.json",
|
|
@@ -42,13 +41,12 @@
|
|
|
42
41
|
"tslib": "2.7.0"
|
|
43
42
|
},
|
|
44
43
|
"devDependencies": {
|
|
45
|
-
"@tsed/barrels": "8.11.
|
|
46
|
-
"@tsed/core": "8.11.
|
|
47
|
-
"@tsed/schema": "8.11.
|
|
48
|
-
"@tsed/typescript": "8.11.
|
|
44
|
+
"@tsed/barrels": "8.11.2-rc.1",
|
|
45
|
+
"@tsed/core": "8.11.2-rc.1",
|
|
46
|
+
"@tsed/schema": "8.11.2-rc.1",
|
|
47
|
+
"@tsed/typescript": "8.11.2-rc.1",
|
|
49
48
|
"eslint": "9.12.0",
|
|
50
49
|
"typescript": "5.4.5",
|
|
51
|
-
"vite": "6.2.2",
|
|
52
50
|
"vitest": "3.1.4"
|
|
53
51
|
},
|
|
54
52
|
"peerDependencies": {
|
|
@@ -69,5 +67,8 @@
|
|
|
69
67
|
},
|
|
70
68
|
"homepage": "https://github.com/tsedio/tsed/tree/production/packages/specs/json-mapper",
|
|
71
69
|
"author": "Romain Lenzotti",
|
|
72
|
-
"license": "MIT"
|
|
70
|
+
"license": "MIT",
|
|
71
|
+
"publishConfig": {
|
|
72
|
+
"tag": "rc"
|
|
73
|
+
}
|
|
73
74
|
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { isBoolean as s } from "@tsed/core";
|
|
2
|
-
import { JsonMapper as u } from "../decorators/jsonMapper.js";
|
|
3
|
-
var v = Object.getOwnPropertyDescriptor, D = (e, t, p, i) => {
|
|
4
|
-
for (var r = i > 1 ? void 0 : i ? v(t, p) : t, n = e.length - 1, l; n >= 0; n--)
|
|
5
|
-
(l = e[n]) && (r = l(r) || r);
|
|
6
|
-
return r;
|
|
7
|
-
};
|
|
8
|
-
let o = class {
|
|
9
|
-
deserialize(e) {
|
|
10
|
-
return s(e) || e === null || e === void 0 ? e : new Date(e);
|
|
11
|
-
}
|
|
12
|
-
serialize(e) {
|
|
13
|
-
return e && new Date(e).toISOString();
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
o = D([
|
|
17
|
-
u(Date)
|
|
18
|
-
], o);
|
|
19
|
-
export {
|
|
20
|
-
o as DateMapper
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=DateMapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DateMapper.js","sources":["../../../src/components/DateMapper.ts"],"sourcesContent":["import {isBoolean} from \"@tsed/core\";\n\nimport {JsonMapper} from \"../decorators/jsonMapper.js\";\nimport {JsonMapperMethods} from \"../interfaces/JsonMapperMethods.js\";\n\n/**\n * Mapper for `Date` type.\n * @jsonmapper\n * @component\n */\n@JsonMapper(Date)\nexport class DateMapper implements JsonMapperMethods {\n deserialize(data: string | number): Date;\n deserialize(data: boolean | null | undefined): boolean | null | undefined;\n deserialize(data: any): any {\n // don't convert unexpected data. In normal case, Ajv reject unexpected data.\n // But by default, we have to skip data deserialization and let user to apply\n // the right mapping\n if (isBoolean(data) || data === null || data === undefined) {\n return data;\n }\n\n return new Date(data);\n }\n\n serialize(object: Date): any {\n return object ? new Date(object).toISOString() : object;\n }\n}\n"],"names":["DateMapper","data","isBoolean","object","__decorateClass","JsonMapper"],"mappings":";;;;;;;AAWO,IAAMA,IAAN,MAA8C;AAAA,EAGnD,YAAYC,GAAgB;AAI1B,WAAIC,EAAUD,CAAI,KAAKA,MAAS,QAAQA,MAAS,SACxCA,IAGF,IAAI,KAAKA,CAAI;AAAA,EAAA;AAAA,EAGtB,UAAUE,GAAmB;AAC3B,WAAOA,KAAS,IAAI,KAAKA,CAAM,EAAE,YAAgB;AAAA,EAAA;AAErD;AAjBaH,IAANI,EAAA;AAAA,EADNC,EAAW,IAAI;AAAA,GACHL,CAAA;"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { nameOf as i } from "@tsed/core";
|
|
2
|
-
import { JsonMapper as p } from "../decorators/jsonMapper.js";
|
|
3
|
-
var v = Object.getOwnPropertyDescriptor, m = (r, e, f, l) => {
|
|
4
|
-
for (var n = l > 1 ? void 0 : l ? v(e, f) : e, u = r.length - 1, t; u >= 0; u--)
|
|
5
|
-
(t = r[u]) && (n = t(n) || n);
|
|
6
|
-
return n;
|
|
7
|
-
};
|
|
8
|
-
function s(r) {
|
|
9
|
-
return [null, "null"].includes(r);
|
|
10
|
-
}
|
|
11
|
-
class h extends Error {
|
|
12
|
-
constructor(e) {
|
|
13
|
-
super(`Cast error. ${e}`), this.name = "CAST_ERROR";
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
let o = class {
|
|
17
|
-
deserialize(r, e) {
|
|
18
|
-
return this[i(e.type)] ? this[i(e.type)](r, e) : void 0;
|
|
19
|
-
}
|
|
20
|
-
serialize(r, e) {
|
|
21
|
-
return this[i(e == null ? void 0 : e.type)] && typeof r != "object" ? this[i(e.type)](r, e) : r;
|
|
22
|
-
}
|
|
23
|
-
String(r) {
|
|
24
|
-
return r === null ? null : "" + r;
|
|
25
|
-
}
|
|
26
|
-
Boolean(r) {
|
|
27
|
-
if (["true", "1", !0].includes(r)) return !0;
|
|
28
|
-
if (["false", "0", !1].includes(r)) return !1;
|
|
29
|
-
if (s(r)) return null;
|
|
30
|
-
if (r !== void 0)
|
|
31
|
-
return !!r;
|
|
32
|
-
}
|
|
33
|
-
Number(r) {
|
|
34
|
-
if (s(r)) return null;
|
|
35
|
-
if (r === void 0) return r;
|
|
36
|
-
const e = +r;
|
|
37
|
-
if (isNaN(e))
|
|
38
|
-
throw new h("Expression value is not a number.");
|
|
39
|
-
return e;
|
|
40
|
-
}
|
|
41
|
-
BigInt(r) {
|
|
42
|
-
return s(r) ? null : BigInt(r);
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
o = m([
|
|
46
|
-
p(String, Number, Boolean, BigInt)
|
|
47
|
-
], o);
|
|
48
|
-
export {
|
|
49
|
-
h as CastError,
|
|
50
|
-
o as PrimitiveMapper
|
|
51
|
-
};
|
|
52
|
-
//# sourceMappingURL=PrimitiveMapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PrimitiveMapper.js","sources":["../../../src/components/PrimitiveMapper.ts"],"sourcesContent":["import {nameOf} from \"@tsed/core\";\n\nimport {JsonMapper} from \"../decorators/jsonMapper.js\";\nimport {JsonMapperCtx, JsonMapperMethods} from \"../interfaces/JsonMapperMethods.js\";\n\nfunction isNullish(data: any) {\n return [null, \"null\"].includes(data);\n}\n\nexport class CastError extends Error {\n name = \"CAST_ERROR\";\n\n constructor(message: string) {\n super(`Cast error. ${message}`);\n }\n}\n\n/**\n * Mapper for the `String`, `Number`, `BigInt` and `Boolean` types.\n * @jsonmapper\n * @component\n */\n@JsonMapper(String, Number, Boolean, BigInt)\nexport class PrimitiveMapper implements JsonMapperMethods {\n deserialize<T>(data: any, ctx: JsonMapperCtx): string | number | boolean | void | null | BigInt {\n return (this as any)[nameOf(ctx.type)] ? (this as any)[nameOf(ctx.type)](data, ctx) : undefined;\n }\n\n serialize(object: string | number | boolean | BigInt, ctx: JsonMapperCtx): string | number | boolean | BigInt {\n return (this as any)[nameOf(ctx?.type)] && typeof object !== \"object\" ? (this as any)[nameOf(ctx.type)](object, ctx) : object;\n }\n\n protected String(data: any) {\n return data === null ? null : \"\" + data;\n }\n\n protected Boolean(data: any) {\n if ([\"true\", \"1\", true].includes(data)) return true;\n if ([\"false\", \"0\", false].includes(data)) return false;\n if (isNullish(data)) return null;\n if (data === undefined) return undefined;\n\n return !!data;\n }\n\n protected Number(data: any) {\n if (isNullish(data)) return null;\n if (data === undefined) return data;\n\n const n = +data;\n\n if (isNaN(n)) {\n throw new CastError(\"Expression value is not a number.\");\n }\n\n return n;\n }\n\n protected BigInt(data: any) {\n if (isNullish(data)) return null;\n\n return BigInt(data);\n }\n}\n"],"names":["isNullish","data","CastError","message","PrimitiveMapper","ctx","nameOf","object","n","__decorateClass","JsonMapper"],"mappings":";;;;;;;AAKA,SAASA,EAAUC,GAAW;AAC5B,SAAO,CAAC,MAAM,MAAM,EAAE,SAASA,CAAI;AACrC;AAEO,MAAMC,UAAkB,MAAM;AAAA,EAGnC,YAAYC,GAAiB;AACrB,UAAA,eAAeA,CAAO,EAAE,GAHzB,KAAA,OAAA;AAAA,EAAA;AAKT;AAQO,IAAMC,IAAN,MAAmD;AAAA,EACxD,YAAeH,GAAWI,GAAsE;AAC9F,WAAQ,KAAaC,EAAOD,EAAI,IAAI,CAAC,IAAK,KAAaC,EAAOD,EAAI,IAAI,CAAC,EAAEJ,GAAMI,CAAG,IAAI;AAAA,EAAA;AAAA,EAGxF,UAAUE,GAA4CF,GAAwD;AAC5G,WAAQ,KAAaC,EAAOD,KAAA,gBAAAA,EAAK,IAAI,CAAC,KAAK,OAAOE,KAAW,WAAY,KAAaD,EAAOD,EAAI,IAAI,CAAC,EAAEE,GAAQF,CAAG,IAAIE;AAAA,EAAA;AAAA,EAG/G,OAAON,GAAW;AACnB,WAAAA,MAAS,OAAO,OAAO,KAAKA;AAAA,EAAA;AAAA,EAG3B,QAAQA,GAAW;AACvB,QAAA,CAAC,QAAQ,KAAK,EAAI,EAAE,SAASA,CAAI,EAAU,QAAA;AAC3C,QAAA,CAAC,SAAS,KAAK,EAAK,EAAE,SAASA,CAAI,EAAU,QAAA;AAC7C,QAAAD,EAAUC,CAAI,EAAU,QAAA;AACxB,QAAAA,MAAS;AAEb,aAAO,CAAC,CAACA;AAAA,EAAA;AAAA,EAGD,OAAOA,GAAW;AACtB,QAAAD,EAAUC,CAAI,EAAU,QAAA;AACxB,QAAAA,MAAS,OAAkB,QAAAA;AAE/B,UAAMO,IAAI,CAACP;AAEP,QAAA,MAAMO,CAAC;AACH,YAAA,IAAIN,EAAU,mCAAmC;AAGlD,WAAAM;AAAA,EAAA;AAAA,EAGC,OAAOP,GAAW;AACtB,WAAAD,EAAUC,CAAI,IAAU,OAErB,OAAOA,CAAI;AAAA,EAAA;AAEtB;AAxCaG,IAANK,EAAA;AAAA,EADNC,EAAW,QAAQ,QAAQ,SAAS,MAAM;AAAA,GAC9BN,CAAA;"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { JsonMapper as n } from "../decorators/jsonMapper.js";
|
|
2
|
-
var i = Object.getOwnPropertyDescriptor, m = (r, o, s, t) => {
|
|
3
|
-
for (var e = t > 1 ? void 0 : t ? i(o, s) : o, l = r.length - 1, p; l >= 0; l--)
|
|
4
|
-
(p = r[l]) && (e = p(e) || e);
|
|
5
|
-
return e;
|
|
6
|
-
};
|
|
7
|
-
let a = class {
|
|
8
|
-
deserialize(r) {
|
|
9
|
-
return Symbol.for(r);
|
|
10
|
-
}
|
|
11
|
-
serialize(r) {
|
|
12
|
-
return r.toString().replace("Symbol(", "").replace(")", "");
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
a = m([
|
|
16
|
-
n(Symbol)
|
|
17
|
-
], a);
|
|
18
|
-
export {
|
|
19
|
-
a as SymbolMapper
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=SymbolMapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SymbolMapper.js","sources":["../../../src/components/SymbolMapper.ts"],"sourcesContent":["import {JsonMapper} from \"../decorators/jsonMapper.js\";\nimport {JsonMapperMethods} from \"../interfaces/JsonMapperMethods.js\";\n\n/**\n * Mapper for the `Symbol` type.\n *\n * @jsonmapper\n * @component\n */\n@JsonMapper(Symbol)\nexport class SymbolMapper implements JsonMapperMethods {\n deserialize(data: string): symbol {\n return Symbol.for(data);\n }\n\n serialize(object: Symbol): any {\n return object.toString().replace(\"Symbol(\", \"\").replace(\")\", \"\");\n }\n}\n"],"names":["SymbolMapper","data","object","__decorateClass","JsonMapper"],"mappings":";;;;;;AAUO,IAAMA,IAAN,MAAgD;AAAA,EACrD,YAAYC,GAAsB;AACzB,WAAA,OAAO,IAAIA,CAAI;AAAA,EAAA;AAAA,EAGxB,UAAUC,GAAqB;AACtB,WAAAA,EAAO,SAAW,EAAA,QAAQ,WAAW,EAAE,EAAE,QAAQ,KAAK,EAAE;AAAA,EAAA;AAEnE;AARaF,IAANG,EAAA;AAAA,EADNC,EAAW,MAAM;AAAA,GACLJ,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"afterDeserialize.js","sources":["../../../src/decorators/afterDeserialize.ts"],"sourcesContent":["import {JsonEntityFn, JsonHookContext} from \"@tsed/schema\";\n\nexport interface AfterDeserializeCallback {\n (value: any, ctx: JsonHookContext): any;\n}\n\n/**\n * Call the function after JsonMapper.\n *\n * ## Example\n *\n * ```typescript\n * @AfterDeserialize((data: Model) => { // After deserialize get the instance class\n * if (data.prop1 === 'VALUE' && data.prop2 !== 'VALUE2') {\n * throw BadRequest('MyMessage'); // or throw a ValidationError\n * } else {\n * data.prop2 = 'VALUE2';\n * return data;\n * }\n * })\n * class Model {\n * @Property()\n * prop1: string;\n * @Property()\n * prop2: string;\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @schema\n * @property\n * @param cb\n */\nexport function AfterDeserialize(cb: AfterDeserializeCallback): ClassDecorator {\n return JsonEntityFn((storedJson) => {\n storedJson.schema.$hooks.on(\"afterDeserialize\", cb);\n });\n}\n"],"names":["AfterDeserialize","cb","JsonEntityFn","storedJson"],"mappings":";AAkCO,SAASA,EAAiBC,GAA8C;AACtE,SAAAC,EAAa,CAACC,MAAe;AAClC,IAAAA,EAAW,OAAO,OAAO,GAAG,oBAAoBF,CAAE;AAAA,EAAA,CACnD;AACH;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"beforeDeserialize.js","sources":["../../../src/decorators/beforeDeserialize.ts"],"sourcesContent":["import {JsonEntityFn, JsonHookContext} from \"@tsed/schema\";\n\nexport interface BeforeDeserializeCallback {\n (value: any, ctx: JsonHookContext): any;\n}\n\n/**\n * Call the function before JsonMapper.\n *\n * ## Example\n *\n * ```typescript\n * @BeforeDeserialize((data: Record<string, unknown>) => { // Before deserialize get the data\n * if (data.prop1 === 'VALUE' && data.prop2 !== 'VALUE2') {\n * throw BadRequest('MyMessage'); // or throw a ValidationError\n * } else {\n * data.prop2 = 'VALUE2';\n * return data;\n * }\n * })\n * class Model {\n * @Property()\n * prop1: string;\n * @Property()\n * prop2: string;\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @schema\n * @property\n * @param cb\n */\nexport function BeforeDeserialize(cb: BeforeDeserializeCallback): ClassDecorator {\n return JsonEntityFn((storedJson) => {\n storedJson.schema.$hooks.on(\"beforeDeserialize\", cb);\n });\n}\n"],"names":["BeforeDeserialize","cb","JsonEntityFn","storedJson"],"mappings":";AAkCO,SAASA,EAAkBC,GAA+C;AACxE,SAAAC,EAAa,CAACC,MAAe;AAClC,IAAAA,EAAW,OAAO,OAAO,GAAG,qBAAqBF,CAAE;AAAA,EAAA,CACpD;AACH;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsonMapper.js","sources":["../../../src/decorators/jsonMapper.ts"],"sourcesContent":["import {Type} from \"@tsed/core\";\n\nimport {registerJsonTypeMapper} from \"../domain/JsonMapperTypesContainer.js\";\n\n/**\n * Register a new JsonMapper Type\n * @param types\n * @constructor\n */\nexport function JsonMapper(...types: (any | Type)[]): ClassDecorator {\n return (target) => {\n types.forEach((type) => {\n registerJsonTypeMapper(type, target as any);\n });\n };\n}\n"],"names":["JsonMapper","types","target","type","registerJsonTypeMapper"],"mappings":";AASO,SAASA,KAAcC,GAAuC;AACnE,SAAO,CAACC,MAAW;AACX,IAAAD,EAAA,QAAQ,CAACE,MAAS;AACtB,MAAAC,EAAuBD,GAAMD,CAAa;AAAA,IAAA,CAC3C;AAAA,EACH;AACF;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onDeserialize.js","sources":["../../../src/decorators/onDeserialize.ts"],"sourcesContent":["import {JsonEntityFn, JsonHookContext} from \"@tsed/schema\";\n\nexport interface OnDeserializeCallback {\n (value: any, ctx: JsonHookContext): any;\n}\n\n/**\n * Call the function before property deserialization.\n *\n * ## Example\n *\n * ```typescript\n * class Model {\n * @OnDeserialize(v => v + 1)\n * property: string;\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @schema\n * @property\n * @param cb\n */\nexport function OnDeserialize(cb: OnDeserializeCallback): PropertyDecorator {\n return JsonEntityFn((storedJson) => {\n storedJson.schema.$hooks.on(\"onDeserialize\", cb);\n });\n}\n"],"names":["OnDeserialize","cb","JsonEntityFn","storedJson"],"mappings":";AAwBO,SAASA,EAAcC,GAA8C;AACnE,SAAAC,EAAa,CAACC,MAAe;AAClC,IAAAA,EAAW,OAAO,OAAO,GAAG,iBAAiBF,CAAE;AAAA,EAAA,CAChD;AACH;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onSerialize.js","sources":["../../../src/decorators/onSerialize.ts"],"sourcesContent":["import {JsonEntityFn, JsonHookContext} from \"@tsed/schema\";\n\nexport interface OnSerializeCallback {\n (value: any, ctx: JsonHookContext): any;\n}\n\n/**\n * Call the function before property serialization.\n *\n * ## Example\n *\n * ```typescript\n * class Model {\n * @OnSerialize(v => v + 1)\n * property: string;\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @schema\n * @property\n * @param cb\n */\nexport function OnSerialize(cb: OnSerializeCallback): PropertyDecorator {\n return JsonEntityFn((storedJson) => {\n storedJson.schema.$hooks.on(\"onSerialize\", cb);\n });\n}\n"],"names":["OnSerialize","cb","JsonEntityFn","storedJson"],"mappings":";AAwBO,SAASA,EAAYC,GAA4C;AAC/D,SAAAC,EAAa,CAACC,MAAe;AAClC,IAAAA,EAAW,OAAO,OAAO,GAAG,eAAeF,CAAE;AAAA,EAAA,CAC9C;AACH;"}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import { isArray as O, classOf as j, nameOf as b, isBoolean as A, isClass as P, isNil as M, objectKeys as k, isEmpty as G } from "@tsed/core";
|
|
2
|
-
import { JsonEntityStore as I, getPropertiesStores as C, JsonParameterStore as v } from "@tsed/schema";
|
|
3
|
-
import { alterAfterDeserialize as x } from "../hooks/alterAfterDeserialize.js";
|
|
4
|
-
import { alterBeforeDeserialize as B } from "../hooks/alterBeforeDeserialize.js";
|
|
5
|
-
import { alterOnDeserialize as E } from "../hooks/alterOnDeserialize.js";
|
|
6
|
-
import { JsonMapperCompiler as J } from "./JsonMapperCompiler.js";
|
|
7
|
-
import { JsonMapperSettings as w } from "./JsonMapperSettings.js";
|
|
8
|
-
import { getJsonMapperTypes as K } from "./JsonMapperTypesContainer.js";
|
|
9
|
-
import { Writer as f } from "./Writer.js";
|
|
10
|
-
function N(l, e) {
|
|
11
|
-
return e.collectionType && M(l) || l === void 0 ? !1 : !(G(e.type) || e.type === Object && !e.collectionType);
|
|
12
|
-
}
|
|
13
|
-
function d(l) {
|
|
14
|
-
return `__${l}`;
|
|
15
|
-
}
|
|
16
|
-
function U(l, e) {
|
|
17
|
-
return {
|
|
18
|
-
...e,
|
|
19
|
-
store: void 0,
|
|
20
|
-
type: l.getBestType(),
|
|
21
|
-
collectionType: l.collectionType,
|
|
22
|
-
groups: l.parameter.groups,
|
|
23
|
-
// genericTypes: store.nestedGenerics[0],
|
|
24
|
-
generics: l.nestedGenerics
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
function W(l) {
|
|
28
|
-
return l.parent.schema.genericLabels.indexOf(l.itemSchema.genericType);
|
|
29
|
-
}
|
|
30
|
-
class X extends J {
|
|
31
|
-
constructor() {
|
|
32
|
-
super(), this.constructors = {}, this.addGlobal("newInstanceOf", this.newInstanceOf.bind(this)), this.addGlobal("alterBeforeDeserialize", this.alterBeforeDeserialize.bind(this)), this.addGlobal("alterAfterDeserialize", this.alterAfterDeserialize.bind(this)), 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.addTypeMapper("ObjectId", (e) => String(e));
|
|
33
|
-
}
|
|
34
|
-
map(e, i = {}) {
|
|
35
|
-
if (i = this.mapOptions(i), !N(e, i))
|
|
36
|
-
return e;
|
|
37
|
-
!i.collectionType && O(e) && (i.collectionType = Array);
|
|
38
|
-
const s = i.type || j(e), t = this.compile(s, i.groups);
|
|
39
|
-
return i.collectionType ? this.compile(i.collectionType, i.groups).fn(e, { ...i, id: t.id }) : t.fn(e, this.createContext(i));
|
|
40
|
-
}
|
|
41
|
-
compile(e, i) {
|
|
42
|
-
if ([WeakMap, WeakSet].includes(e))
|
|
43
|
-
throw new Error(`${b(e)} is not supported by JsonMapper.`);
|
|
44
|
-
return super.compile(e, i);
|
|
45
|
-
}
|
|
46
|
-
eval(e, {
|
|
47
|
-
id: i,
|
|
48
|
-
groupsId: s,
|
|
49
|
-
model: t
|
|
50
|
-
}) {
|
|
51
|
-
return this.constructors[i] = t, super.eval(e, { id: i, groupsId: s, model: t });
|
|
52
|
-
}
|
|
53
|
-
newInstanceOf(e, i, s) {
|
|
54
|
-
try {
|
|
55
|
-
return new this.constructors[e](s.disableUnsecureConstructor ? {} : i);
|
|
56
|
-
} catch {
|
|
57
|
-
return i;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
createMapper(e, i, s) {
|
|
61
|
-
var o, p, h;
|
|
62
|
-
const t = I.from(e), n = /* @__PURE__ */ new Set(), c = [...C(t).values()], r = new f().arrow("input", "options");
|
|
63
|
-
return r.if("isNil(input)").return("input"), t.schema.hasDiscriminator && r.add(this.mapDiscriminator(t, s)), (o = t.schema.$hooks) != null && o.has("beforeDeserialize") && (this.schemes[i] = t.schema, r.set("input", `alterBeforeDeserialize('${i}', input, options)`)), r.const("generics", "options.generics[0]"), (p = t.schema.genericLabels) != null && p.length ? r.set("options", "{...options, self: input, generics: [...options.generics].slice(1)}") : r.set("options", "{...options, self: input}"), r.const("obj", `newInstanceOf('${i}', input, options)`), r.add(
|
|
64
|
-
...c.flatMap((a) => {
|
|
65
|
-
var m, y, g, $;
|
|
66
|
-
const u = a.propertyName;
|
|
67
|
-
if (n.add(String(a.parent.schema.getAliasOf(u) || u)), !((m = a.schema) != null && m.$ignore && A((y = a.schema) == null ? void 0 : y.$ignore) || a.isGetterOnly() || ($ = (g = a.schema) == null ? void 0 : g.$hooks) != null && $.has("groups") && this.alterGroups(a.schema, s)))
|
|
68
|
-
return this.mapProperty(a, i, s);
|
|
69
|
-
})
|
|
70
|
-
), r.add(this.mapAdditionalProperties(t, n, s)), (h = t.schema.$hooks) != null && h.has("afterDeserialize") ? (this.schemes[i] = t.schema, r.return(`alterAfterDeserialize('${i}', obj, options)`).root().toString()) : r.return("obj").root().toString();
|
|
71
|
-
}
|
|
72
|
-
alterValue(e, i, s) {
|
|
73
|
-
return E(this.schemes[e], i, s);
|
|
74
|
-
}
|
|
75
|
-
mapDiscriminator(e, i) {
|
|
76
|
-
const s = new f(), t = e.schema.discriminator(), n = s.switch(`input['${t.propertyName}']`);
|
|
77
|
-
return t.values.forEach((c, r) => {
|
|
78
|
-
const o = this.compile(c, i);
|
|
79
|
-
n.case(`'${r}'`).returnCallMapper(o.id, "input");
|
|
80
|
-
}), s;
|
|
81
|
-
}
|
|
82
|
-
mapProperty(e, i, s) {
|
|
83
|
-
var g, $, D, T;
|
|
84
|
-
const t = String(e.propertyKey), n = String(e.parent.schema.getAliasOf(t) || t), c = this.getSchemaId(i, t), r = e.itemSchema.get("format"), o = r && `options: {format: '${r}'}`;
|
|
85
|
-
let p = new f().add(`// Map ${t} ${i} ${s || ""}`);
|
|
86
|
-
const h = t !== n ? `options.useAlias ? '${n}' : '${t}'` : `'${t}'`;
|
|
87
|
-
($ = (g = e.schema) == null ? void 0 : g.$hooks) != null && $.has("ignore") && (this.schemes[c] = e.schema, p = p.if(`!alterIgnore('${c}', {...options, self: input})`));
|
|
88
|
-
const a = (T = (D = e.schema) == null ? void 0 : D.$hooks) == null ? void 0 : T.has("onDeserialize");
|
|
89
|
-
let u = `input[${h}]`;
|
|
90
|
-
if (a) {
|
|
91
|
-
this.schemes[c] = e.schema;
|
|
92
|
-
const z = f.options(o);
|
|
93
|
-
u = `alterValue('${c}', input[${h}], ${z})`;
|
|
94
|
-
}
|
|
95
|
-
const m = p.set(`let ${d(t)}`, u).if(`${d(t)} !== undefined`), y = this.getPropertyFiller(e, i, s, o);
|
|
96
|
-
return y(a ? m.if(`${d(t)} === input.${t}`) : m), m.set(`obj.${t}`, d(t)), s && s.includes("partial") && m.else().add(`delete obj.${t}`), p.root();
|
|
97
|
-
}
|
|
98
|
-
getPropertyFiller(e, i, s, t) {
|
|
99
|
-
const n = String(e.propertyKey), c = this.getSchemaId(i, n), r = e.itemSchema.nestedGenerics;
|
|
100
|
-
if (e.itemSchema.isGeneric && !(r != null && r.length)) {
|
|
101
|
-
const a = W(e), u = f.options(t, `type: generics[${a}]`);
|
|
102
|
-
return (m) => m.set(d(n), `compileAndMap(${d(n)}, ${u})`);
|
|
103
|
-
}
|
|
104
|
-
const p = e.itemSchema.hasDiscriminator ? e.itemSchema.discriminator().base : e.getBestType(), h = this.compile(p, s);
|
|
105
|
-
return e.isCollection ? (a) => a.callMapper(b(e.collectionType), d(n), `id: '${h.id}'`, t) : r != null && r.length ? (this.schemes[c] = e.schema, (a) => a.callMapper(h.id, d(n), t, `generics: schemes['${c}'].nestedGenerics`)) : (a) => a.callMapper(h.id, d(n), t);
|
|
106
|
-
}
|
|
107
|
-
mapOptions({ groups: e, useAlias: i = !0, types: s, ...t }) {
|
|
108
|
-
if (t.store instanceof v)
|
|
109
|
-
return this.mapOptions(U(t.store, t));
|
|
110
|
-
const n = {};
|
|
111
|
-
s = s || K(), s.forEach((r, o) => {
|
|
112
|
-
if (![Array, Set, Map].includes(o)) {
|
|
113
|
-
const p = b(o);
|
|
114
|
-
b(o) in r ? this.addTypeMapper(o, r[p].bind(r)) : this.addTypeMapper(
|
|
115
|
-
o,
|
|
116
|
-
(h, a) => r.deserialize(h, {
|
|
117
|
-
...a,
|
|
118
|
-
type: o
|
|
119
|
-
})
|
|
120
|
-
);
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
const c = t.strictGroups ?? w.strictGroups;
|
|
124
|
-
return {
|
|
125
|
-
...t,
|
|
126
|
-
additionalProperties: t.additionalProperties ?? w.additionalProperties,
|
|
127
|
-
disableUnsecureConstructor: t.disableUnsecureConstructor ?? w.disableUnsecureConstructor,
|
|
128
|
-
groups: e === void 0 ? c ? [] : !1 : e || !1,
|
|
129
|
-
useAlias: i,
|
|
130
|
-
customMappers: n,
|
|
131
|
-
generics: t.generics || []
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
mapAdditionalProperties(e, i, s) {
|
|
135
|
-
const t = e.schema.get("additionalProperties"), n = [...i.values()].map((o) => `'${o}'`).join(", "), c = new f();
|
|
136
|
-
c.add("// add additional properties");
|
|
137
|
-
let r = c.each("objectKeys(input)", ["key"]);
|
|
138
|
-
if (n.length && (r = r.if(`![${n}].includes(key)`)), P(t)) {
|
|
139
|
-
const o = this.compile(t.getComputedType(), s);
|
|
140
|
-
return r.set("obj[key]", f.mapper(o.id, "input[key]", "options")), c;
|
|
141
|
-
}
|
|
142
|
-
return t ? (r.set("obj[key]", "input[key]"), c) : (r.if("options.additionalProperties && obj[key] === undefined").set("obj[key]", "input[key]"), c);
|
|
143
|
-
}
|
|
144
|
-
mapObject(e, i) {
|
|
145
|
-
return e;
|
|
146
|
-
}
|
|
147
|
-
mapSet(e, i) {
|
|
148
|
-
if (M(e))
|
|
149
|
-
return e;
|
|
150
|
-
const s = /* @__PURE__ */ new Set();
|
|
151
|
-
return k(e).forEach((t) => {
|
|
152
|
-
s.add(this.mapItem(e[t], i));
|
|
153
|
-
}), s;
|
|
154
|
-
}
|
|
155
|
-
mapArray(e, i) {
|
|
156
|
-
return M(e) ? e : [].concat(e).map((s) => this.mapItem(s, i));
|
|
157
|
-
}
|
|
158
|
-
mapMap(e, i) {
|
|
159
|
-
if (M(e))
|
|
160
|
-
return e;
|
|
161
|
-
const s = /* @__PURE__ */ new Map();
|
|
162
|
-
return k(e).forEach((t) => {
|
|
163
|
-
s.set(t, this.mapItem(e[t], i));
|
|
164
|
-
}), s;
|
|
165
|
-
}
|
|
166
|
-
mapItem(e, { id: i, ...s }) {
|
|
167
|
-
return this.execMapper(i, e, s);
|
|
168
|
-
}
|
|
169
|
-
alterBeforeDeserialize(e, i, s) {
|
|
170
|
-
return B(i, this.schemes[e], s);
|
|
171
|
-
}
|
|
172
|
-
alterAfterDeserialize(e, i, s) {
|
|
173
|
-
return x(i, this.schemes[e], s);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
export {
|
|
177
|
-
X as JsonDeserializer
|
|
178
|
-
};
|
|
179
|
-
//# sourceMappingURL=JsonDeserializer.js.map
|