@carlonicora/nestjs-neo4jsonapi 1.8.1 → 1.9.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-entity.d.ts","sourceRoot":"","sources":["../../../src/common/helpers/define-entity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"define-entity.d.ts","sourceRoot":"","sources":["../../../src/common/helpers/define-entity.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,gBAAgB,EAChB,iBAAiB,EAEjB,eAAe,EAChB,MAAM,uCAAuC,CAAC;AAuG/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,YAAY,CAAC,CAAC,MACX,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,QAAQ,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CA6IrH"}
|
|
@@ -13,9 +13,71 @@ exports.defineEntity = defineEntity;
|
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const config_1 = require("@nestjs/config");
|
|
15
15
|
const core_1 = require("@nestjs/core");
|
|
16
|
-
const entity_1 = require("../abstracts/entity");
|
|
17
16
|
const jsonapi_serialiser_factory_1 = require("../../core/jsonapi/factories/jsonapi.serialiser.factory");
|
|
18
17
|
const descriptor_based_serialiser_1 = require("../../core/jsonapi/serialisers/descriptor.based.serialiser");
|
|
18
|
+
const entity_1 = require("../abstracts/entity");
|
|
19
|
+
/**
|
|
20
|
+
* Convert Neo4j Integer {low, high} to JavaScript number
|
|
21
|
+
*/
|
|
22
|
+
function convertNeo4jNumber(value) {
|
|
23
|
+
if (value === null || value === undefined)
|
|
24
|
+
return null;
|
|
25
|
+
if (typeof value === "number")
|
|
26
|
+
return value;
|
|
27
|
+
if (value.low !== undefined)
|
|
28
|
+
return value.low;
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Convert Neo4j Date to JavaScript Date object
|
|
33
|
+
*/
|
|
34
|
+
function convertNeo4jDate(value) {
|
|
35
|
+
if (!value)
|
|
36
|
+
return null;
|
|
37
|
+
// Handle Neo4j Date format: {year: {low, high}, month: {low, high}, day: {low, high}}
|
|
38
|
+
if (value.year?.low !== undefined) {
|
|
39
|
+
return new Date(value.year.low, value.month.low - 1, value.day.low);
|
|
40
|
+
}
|
|
41
|
+
// Already a Date or string, convert to Date
|
|
42
|
+
return new Date(value);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Convert Neo4j DateTime to JavaScript Date object
|
|
46
|
+
*/
|
|
47
|
+
function convertNeo4jDateTime(value) {
|
|
48
|
+
if (!value)
|
|
49
|
+
return null;
|
|
50
|
+
// Handle Neo4j DateTime format
|
|
51
|
+
if (value.year?.low !== undefined) {
|
|
52
|
+
return new Date(value.year.low, value.month.low - 1, value.day.low, value.hour?.low ?? 0, value.minute?.low ?? 0, value.second?.low ?? 0);
|
|
53
|
+
}
|
|
54
|
+
// Already a Date or string, convert to Date
|
|
55
|
+
return new Date(value);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Convert a Neo4j field value based on its CypherType
|
|
59
|
+
*/
|
|
60
|
+
function convertFieldValue(value, type) {
|
|
61
|
+
if (value === null || value === undefined)
|
|
62
|
+
return value;
|
|
63
|
+
switch (type) {
|
|
64
|
+
case "number":
|
|
65
|
+
return convertNeo4jNumber(value);
|
|
66
|
+
case "date":
|
|
67
|
+
return convertNeo4jDate(value);
|
|
68
|
+
case "datetime":
|
|
69
|
+
return convertNeo4jDateTime(value);
|
|
70
|
+
case "number[]":
|
|
71
|
+
return Array.isArray(value) ? value.map(convertNeo4jNumber) : value;
|
|
72
|
+
case "date[]":
|
|
73
|
+
return Array.isArray(value) ? value.map((v) => convertNeo4jDate(v)) : value;
|
|
74
|
+
case "datetime[]":
|
|
75
|
+
return Array.isArray(value) ? value.map((v) => convertNeo4jDateTime(v)) : value;
|
|
76
|
+
// string, boolean, json, string[], boolean[], json[] - no conversion needed
|
|
77
|
+
default:
|
|
78
|
+
return value;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
19
81
|
/**
|
|
20
82
|
* Create a unique serialiser class for an entity descriptor.
|
|
21
83
|
* The class extends DescriptorBasedSerialiser and has the descriptor pre-configured.
|
|
@@ -129,9 +191,10 @@ function defineEntity() {
|
|
|
129
191
|
const result = {
|
|
130
192
|
...(0, entity_1.mapEntity)({ record: params.data }),
|
|
131
193
|
};
|
|
132
|
-
// Map fields from data
|
|
133
|
-
for (const fieldName of
|
|
134
|
-
|
|
194
|
+
// Map fields from data with type conversion
|
|
195
|
+
for (const [fieldName, fieldDef] of fieldEntries) {
|
|
196
|
+
const rawValue = params.data[fieldName];
|
|
197
|
+
result[fieldName] = convertFieldValue(rawValue, fieldDef.type);
|
|
135
198
|
}
|
|
136
199
|
// Evaluate computed fields
|
|
137
200
|
for (const [fieldName, def] of Object.entries(computed)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-entity.js","sourceRoot":"","sources":["../../../src/common/helpers/define-entity.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"define-entity.js","sourceRoot":"","sources":["../../../src/common/helpers/define-entity.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED