@etohq/utils 1.5.1-alpha.7 → 1.5.1-alpha.8
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/dist/common/container.d.ts +7 -98
- package/dist/common/container.d.ts.map +1 -1
- package/dist/common/container.js +7 -94
- package/dist/common/container.js.map +1 -1
- package/dist/common/create-container-like.d.ts.map +1 -1
- package/dist/common/create-container-like.js +9 -1
- package/dist/common/create-container-like.js.map +1 -1
- package/dist/common/create-psql-index-helper.d.ts.map +1 -1
- package/dist/common/create-psql-index-helper.js +3 -1
- package/dist/common/create-psql-index-helper.js.map +1 -1
- package/dist/common/deep-copy.js +3 -3
- package/dist/common/deep-copy.js.map +1 -1
- package/dist/common/define-file-config.d.ts +1 -2
- package/dist/common/define-file-config.d.ts.map +1 -1
- package/dist/common/define-file-config.js +9 -12
- package/dist/common/define-file-config.js.map +1 -1
- package/dist/common/dynamic-import.d.ts.map +1 -1
- package/dist/common/dynamic-import.js +6 -24
- package/dist/common/dynamic-import.js.map +1 -1
- package/dist/common/errors.d.ts +8 -10
- package/dist/common/errors.d.ts.map +1 -1
- package/dist/common/errors.js +12 -33
- package/dist/common/errors.js.map +1 -1
- package/dist/common/execute-with-concurrency.d.ts +3 -1
- package/dist/common/execute-with-concurrency.d.ts.map +1 -1
- package/dist/common/execute-with-concurrency.js +3 -1
- package/dist/common/execute-with-concurrency.js.map +1 -1
- package/dist/common/get-resolved-plugins.d.ts +1 -1
- package/dist/common/get-resolved-plugins.d.ts.map +1 -1
- package/dist/common/get-resolved-plugins.js +2 -2
- package/dist/common/get-resolved-plugins.js.map +1 -1
- package/dist/common/index.d.ts +4 -11
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +4 -11
- package/dist/common/index.js.map +1 -1
- package/dist/common/merge-plugin-modules.d.ts.map +1 -1
- package/dist/common/merge-plugin-modules.js +23 -8
- package/dist/common/merge-plugin-modules.js.map +1 -1
- package/dist/common/normalize-import-path-with-source.d.ts +1 -1
- package/dist/common/normalize-import-path-with-source.d.ts.map +1 -1
- package/dist/common/normalize-import-path-with-source.js +2 -2
- package/dist/common/normalize-import-path-with-source.js.map +1 -1
- package/dist/common/normalize-locale.d.ts +19 -0
- package/dist/common/normalize-locale.d.ts.map +1 -0
- package/dist/common/normalize-locale.js +37 -0
- package/dist/common/normalize-locale.js.map +1 -0
- package/dist/common/parse-stringify-if-necessary.d.ts +7 -1
- package/dist/common/parse-stringify-if-necessary.d.ts.map +1 -1
- package/dist/common/parse-stringify-if-necessary.js +8 -2
- package/dist/common/parse-stringify-if-necessary.js.map +1 -1
- package/dist/common/read-dir-recursive.d.ts +1 -0
- package/dist/common/read-dir-recursive.d.ts.map +1 -1
- package/dist/common/read-dir-recursive.js +4 -3
- package/dist/common/read-dir-recursive.js.map +1 -1
- package/dist/common/wrap-handler.d.ts +17 -0
- package/dist/common/wrap-handler.d.ts.map +1 -1
- package/dist/common/wrap-handler.js +33 -37
- package/dist/common/wrap-handler.js.map +1 -1
- package/dist/dal/index.d.ts +4 -4
- package/dist/dal/index.d.ts.map +1 -1
- package/dist/dal/index.js +4 -4
- package/dist/dal/index.js.map +1 -1
- package/dist/dal/mikro-orm/big-number-field.d.ts.map +1 -1
- package/dist/dal/mikro-orm/big-number-field.js +37 -1
- package/dist/dal/mikro-orm/big-number-field.js.map +1 -1
- package/dist/dal/mikro-orm/custom-db-migrator.d.ts +8 -0
- package/dist/dal/mikro-orm/custom-db-migrator.d.ts.map +1 -0
- package/dist/dal/mikro-orm/custom-db-migrator.js +60 -0
- package/dist/dal/mikro-orm/custom-db-migrator.js.map +1 -0
- package/dist/dal/mikro-orm/mikro-orm-create-connection.d.ts +1 -1
- package/dist/dal/mikro-orm/mikro-orm-create-connection.d.ts.map +1 -1
- package/dist/dal/mikro-orm/mikro-orm-create-connection.js +16 -1
- package/dist/dal/mikro-orm/mikro-orm-create-connection.js.map +1 -1
- package/dist/dal/mikro-orm/mikro-orm-free-text-search-filter.d.ts.map +1 -1
- package/dist/dal/mikro-orm/mikro-orm-free-text-search-filter.js +3 -3
- package/dist/dal/mikro-orm/mikro-orm-free-text-search-filter.js.map +1 -1
- package/dist/dal/mikro-orm/mikro-orm-repository.d.ts +1 -0
- package/dist/dal/mikro-orm/mikro-orm-repository.d.ts.map +1 -1
- package/dist/dal/mikro-orm/mikro-orm-repository.js +276 -68
- package/dist/dal/mikro-orm/mikro-orm-repository.js.map +1 -1
- package/dist/dal/mikro-orm/mikro-orm-serializer-old.d.ts +29 -0
- package/dist/dal/mikro-orm/mikro-orm-serializer-old.d.ts.map +1 -0
- package/dist/dal/mikro-orm/mikro-orm-serializer-old.js +443 -0
- package/dist/dal/mikro-orm/mikro-orm-serializer-old.js.map +1 -0
- package/dist/dal/mikro-orm/mikro-orm-serializer.d.ts +25 -10
- package/dist/dal/mikro-orm/mikro-orm-serializer.d.ts.map +1 -1
- package/dist/dal/mikro-orm/mikro-orm-serializer.js +383 -174
- package/dist/dal/mikro-orm/mikro-orm-serializer.js.map +1 -1
- package/dist/dml/helpers/entity-builder/create-big-number-properties.d.ts.map +1 -1
- package/dist/dml/helpers/entity-builder/create-big-number-properties.js +16 -4
- package/dist/dml/helpers/entity-builder/create-big-number-properties.js.map +1 -1
- package/dist/dml/helpers/graphql-builder/get-attribute.d.ts.map +1 -1
- package/dist/dml/helpers/graphql-builder/get-attribute.js +1 -0
- package/dist/dml/helpers/graphql-builder/get-attribute.js.map +1 -1
- package/dist/dml/integration-tests/utils.d.ts.map +1 -1
- package/dist/dml/integration-tests/utils.js +2 -1
- package/dist/dml/integration-tests/utils.js.map +1 -1
- package/dist/dml/properties/text.d.ts +6 -0
- package/dist/dml/properties/text.d.ts.map +1 -1
- package/dist/dml/properties/text.js +8 -0
- package/dist/dml/properties/text.js.map +1 -1
- package/dist/event-bus/index.d.ts +19 -0
- package/dist/event-bus/index.d.ts.map +1 -1
- package/dist/event-bus/index.js +20 -3
- package/dist/event-bus/index.js.map +1 -1
- package/dist/event-bus/message-aggregator.d.ts +1 -1
- package/dist/event-bus/message-aggregator.d.ts.map +1 -1
- package/dist/event-bus/message-aggregator.js +29 -7
- package/dist/event-bus/message-aggregator.js.map +1 -1
- package/dist/event-bus/utils.d.ts +19 -8
- package/dist/event-bus/utils.d.ts.map +1 -1
- package/dist/event-bus/utils.js +12 -0
- package/dist/event-bus/utils.js.map +1 -1
- package/dist/feature-flags/index.d.ts +5 -3
- package/dist/feature-flags/index.d.ts.map +1 -1
- package/dist/feature-flags/index.js +5 -4
- package/dist/feature-flags/index.js.map +1 -1
- package/dist/modules-sdk/create-eto-mikro-orm-event-subscriber.d.ts +11 -0
- package/dist/modules-sdk/create-eto-mikro-orm-event-subscriber.d.ts.map +1 -0
- package/dist/modules-sdk/create-eto-mikro-orm-event-subscriber.js +45 -0
- package/dist/modules-sdk/create-eto-mikro-orm-event-subscriber.js.map +1 -0
- package/dist/modules-sdk/create-pg-connection.d.ts.map +1 -1
- package/dist/modules-sdk/create-pg-connection.js +12 -1
- package/dist/modules-sdk/create-pg-connection.js.map +1 -1
- package/dist/modules-sdk/decorators/inject-manager.js +3 -3
- package/dist/modules-sdk/decorators/inject-manager.js.map +1 -1
- package/dist/modules-sdk/decorators/inject-transaction-manager.d.ts.map +1 -1
- package/dist/modules-sdk/decorators/inject-transaction-manager.js +2 -4
- package/dist/modules-sdk/decorators/inject-transaction-manager.js.map +1 -1
- package/dist/modules-sdk/define-link.d.ts.map +1 -1
- package/dist/modules-sdk/define-link.js +37 -15
- package/dist/modules-sdk/define-link.js.map +1 -1
- package/dist/modules-sdk/define-policies.d.ts +29 -0
- package/dist/modules-sdk/define-policies.d.ts.map +1 -0
- package/dist/modules-sdk/define-policies.js +47 -0
- package/dist/modules-sdk/define-policies.js.map +1 -0
- package/dist/modules-sdk/eto-internal-service.d.ts +14 -3
- package/dist/modules-sdk/eto-internal-service.d.ts.map +1 -1
- package/dist/modules-sdk/eto-internal-service.js +116 -1
- package/dist/modules-sdk/eto-internal-service.js.map +1 -1
- package/dist/modules-sdk/eto-service.d.ts.map +1 -1
- package/dist/modules-sdk/eto-service.js +57 -1
- package/dist/modules-sdk/eto-service.js.map +1 -1
- package/dist/modules-sdk/index.d.ts +3 -0
- package/dist/modules-sdk/index.d.ts.map +1 -1
- package/dist/modules-sdk/index.js +3 -0
- package/dist/modules-sdk/index.js.map +1 -1
- package/dist/modules-sdk/joiner-config-builder.d.ts +7 -1
- package/dist/modules-sdk/joiner-config-builder.d.ts.map +1 -1
- package/dist/modules-sdk/joiner-config-builder.js +32 -1
- package/dist/modules-sdk/joiner-config-builder.js.map +1 -1
- package/dist/modules-sdk/load-module-database-config.d.ts.map +1 -1
- package/dist/modules-sdk/load-module-database-config.js +15 -1
- package/dist/modules-sdk/load-module-database-config.js.map +1 -1
- package/dist/modules-sdk/migration-scripts/migration-down.d.ts +3 -1
- package/dist/modules-sdk/migration-scripts/migration-down.d.ts.map +1 -1
- package/dist/modules-sdk/migration-scripts/migration-down.js +7 -2
- package/dist/modules-sdk/migration-scripts/migration-down.js.map +1 -1
- package/dist/modules-sdk/migration-scripts/migration-up.d.ts +1 -1
- package/dist/modules-sdk/migration-scripts/migration-up.d.ts.map +1 -1
- package/dist/modules-sdk/migration-scripts/migration-up.js +3 -0
- package/dist/modules-sdk/migration-scripts/migration-up.js.map +1 -1
- package/dist/modules-sdk/migration-scripts/seed.d.ts.map +1 -1
- package/dist/modules-sdk/migration-scripts/seed.js +3 -0
- package/dist/modules-sdk/migration-scripts/seed.js.map +1 -1
- package/dist/modules-sdk/mikro-orm-cli-config-builder.d.ts.map +1 -1
- package/dist/modules-sdk/mikro-orm-cli-config-builder.js +1 -0
- package/dist/modules-sdk/mikro-orm-cli-config-builder.js.map +1 -1
- package/dist/modules-sdk/module.d.ts.map +1 -1
- package/dist/modules-sdk/module.js +2 -0
- package/dist/modules-sdk/module.js.map +1 -1
- package/dist/modules-sdk/policy-to-types.d.ts +4 -0
- package/dist/modules-sdk/policy-to-types.d.ts.map +1 -0
- package/dist/modules-sdk/policy-to-types.js +62 -0
- package/dist/modules-sdk/policy-to-types.js.map +1 -0
- package/dist/notification/events.d.ts +6 -6
- package/dist/totals/big-number.d.ts +3 -0
- package/dist/totals/big-number.d.ts.map +1 -1
- package/dist/totals/big-number.js +26 -6
- package/dist/totals/big-number.js.map +1 -1
- package/dist/totals/index.d.ts +0 -1
- package/dist/totals/index.d.ts.map +1 -1
- package/dist/totals/index.js +0 -1
- package/dist/totals/index.js.map +1 -1
- package/dist/totals/math.d.ts +3 -1
- package/dist/totals/math.d.ts.map +1 -1
- package/dist/totals/math.js +8 -7
- package/dist/totals/math.js.map +1 -1
- package/dist/translations/apply-translations.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/user/events.d.ts +12 -12
- package/package.json +3 -2
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* This is an optimized mikro orm serializer to create a highly optimized serialization pipeline
|
|
4
|
+
* that leverages V8's JIT compilation and inline caching mechanisms.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.mikroOrmSerializer = exports.EntitySerializer = void 0;
|
|
8
|
+
const core_1 = require("@mikro-orm/core");
|
|
9
|
+
const STATIC_OPTIONS_SHAPE = {
|
|
10
|
+
populate: ["*"],
|
|
11
|
+
exclude: undefined,
|
|
12
|
+
preventCircularRef: true,
|
|
13
|
+
skipNull: undefined,
|
|
14
|
+
ignoreSerializers: undefined,
|
|
15
|
+
forceObject: true,
|
|
16
|
+
};
|
|
17
|
+
const EMPTY_ARRAY = [];
|
|
18
|
+
const WILDCARD = "*";
|
|
19
|
+
const DOT = ".";
|
|
20
|
+
const UNDERSCORE = "_";
|
|
21
|
+
// JIT-friendly function with predictable patterns
|
|
22
|
+
function isVisible(meta, propName, options = STATIC_OPTIONS_SHAPE) {
|
|
23
|
+
// Fast path for boolean populate
|
|
24
|
+
const populate = options.populate;
|
|
25
|
+
if (populate === true) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
if (Array.isArray(populate)) {
|
|
29
|
+
// Check exclusions first (early exit)
|
|
30
|
+
const exclude = options.exclude;
|
|
31
|
+
if (exclude && exclude.length > 0) {
|
|
32
|
+
const excludeLen = exclude.length;
|
|
33
|
+
for (let i = 0; i < excludeLen; i++) {
|
|
34
|
+
if (exclude[i] === propName) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Hoist computations outside loop
|
|
40
|
+
const propNameLen = propName.length;
|
|
41
|
+
const propPrefix = propName + DOT;
|
|
42
|
+
const propPrefixLen = propPrefix.length;
|
|
43
|
+
const populateLen = populate.length;
|
|
44
|
+
// Simple loop that JIT can optimize well
|
|
45
|
+
for (let i = 0; i < populateLen; i++) {
|
|
46
|
+
const item = populate[i];
|
|
47
|
+
if (item === propName || item === WILDCARD) {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
if (item.length > propNameLen &&
|
|
51
|
+
item.substring(0, propPrefixLen) === propPrefix) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
// Inline property check for non-array case
|
|
58
|
+
const prop = meta.properties[propName];
|
|
59
|
+
const visible = (prop && !prop.hidden) || prop === undefined;
|
|
60
|
+
const prefixed = prop && !prop.primary && propName.charAt(0) === UNDERSCORE;
|
|
61
|
+
return visible && !prefixed;
|
|
62
|
+
}
|
|
63
|
+
// Clean, JIT-friendly function
|
|
64
|
+
function isPopulated(entity, propName, options = STATIC_OPTIONS_SHAPE) {
|
|
65
|
+
const populate = options.populate;
|
|
66
|
+
// Fast path for boolean
|
|
67
|
+
if (typeof populate === "boolean") {
|
|
68
|
+
return populate;
|
|
69
|
+
}
|
|
70
|
+
if (!Array.isArray(populate)) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
// Hoist computations for JIT optimization
|
|
74
|
+
const propNameLen = propName.length;
|
|
75
|
+
const propPrefix = propName + DOT;
|
|
76
|
+
const propPrefixLen = propPrefix.length;
|
|
77
|
+
const populateLen = populate.length;
|
|
78
|
+
// Simple predictable loop
|
|
79
|
+
for (let i = 0; i < populateLen; i++) {
|
|
80
|
+
const item = populate[i];
|
|
81
|
+
if (item === propName || item === WILDCARD) {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
if (item.length > propNameLen &&
|
|
85
|
+
item.substring(0, propPrefixLen) === propPrefix) {
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Custom property filtering for the serialization which takes into account circular references to not return them.
|
|
93
|
+
* @param propName
|
|
94
|
+
* @param meta
|
|
95
|
+
* @param options
|
|
96
|
+
* @param parents
|
|
97
|
+
*/
|
|
98
|
+
// @ts-ignore
|
|
99
|
+
function filterEntityPropToSerialize({ propName, meta, options, parents, }) {
|
|
100
|
+
const parentsArray = parents || EMPTY_ARRAY;
|
|
101
|
+
const isVisibleRes = isVisible(meta, propName, options);
|
|
102
|
+
const prop = meta.properties[propName];
|
|
103
|
+
if (prop &&
|
|
104
|
+
options.preventCircularRef &&
|
|
105
|
+
isVisibleRes &&
|
|
106
|
+
prop.kind !== core_1.ReferenceKind.SCALAR) {
|
|
107
|
+
if (!!prop.mapToPk) {
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
const parentsLen = parentsArray.length;
|
|
111
|
+
for (let i = 0; i < parentsLen; i++) {
|
|
112
|
+
if (parentsArray[i] === prop.type) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
return isVisibleRes;
|
|
119
|
+
}
|
|
120
|
+
class EntitySerializer {
|
|
121
|
+
static serialize(entity, options = STATIC_OPTIONS_SHAPE, parents = EMPTY_ARRAY) {
|
|
122
|
+
// Avoid Array.from and Set allocation for hot path
|
|
123
|
+
const parents_ = parents.length > 0 ? Array.from(new Set(parents)) : [];
|
|
124
|
+
const wrapped = (0, core_1.helper)(entity);
|
|
125
|
+
const meta = wrapped.__meta;
|
|
126
|
+
let contextCreated = false;
|
|
127
|
+
if (!wrapped.__serializationContext.root) {
|
|
128
|
+
const root = new core_1.SerializationContext({});
|
|
129
|
+
core_1.SerializationContext.propagate(root, entity, (meta, prop) => meta.properties[prop]?.kind !== core_1.ReferenceKind.SCALAR);
|
|
130
|
+
contextCreated = true;
|
|
131
|
+
}
|
|
132
|
+
const root = wrapped.__serializationContext
|
|
133
|
+
.root;
|
|
134
|
+
const ret = {};
|
|
135
|
+
// Use Set for deduplication but keep it simple
|
|
136
|
+
const keys = new Set();
|
|
137
|
+
const primaryKeys = meta.primaryKeys;
|
|
138
|
+
const primaryKeysLen = primaryKeys.length;
|
|
139
|
+
for (let i = 0; i < primaryKeysLen; i++) {
|
|
140
|
+
keys.add(primaryKeys[i]);
|
|
141
|
+
}
|
|
142
|
+
const entityKeys = Object.keys(entity);
|
|
143
|
+
const entityKeysLen = entityKeys.length;
|
|
144
|
+
for (let i = 0; i < entityKeysLen; i++) {
|
|
145
|
+
keys.add(entityKeys[i]);
|
|
146
|
+
}
|
|
147
|
+
const visited = root.visited.has(entity);
|
|
148
|
+
if (!visited) {
|
|
149
|
+
root.visited.add(entity);
|
|
150
|
+
}
|
|
151
|
+
const keysArray = Array.from(keys);
|
|
152
|
+
const keysLen = keysArray.length;
|
|
153
|
+
// Hoist invariant calculations
|
|
154
|
+
const className = meta.className;
|
|
155
|
+
const platform = wrapped.__platform;
|
|
156
|
+
const skipNull = options.skipNull;
|
|
157
|
+
const metaProperties = meta.properties;
|
|
158
|
+
const preventCircularRef = options.preventCircularRef;
|
|
159
|
+
// Clean property processing loop
|
|
160
|
+
for (let i = 0; i < keysLen; i++) {
|
|
161
|
+
const prop = keysArray[i];
|
|
162
|
+
// Simple filtering logic
|
|
163
|
+
const isVisibleRes = isVisible(meta, prop, options);
|
|
164
|
+
const propMeta = metaProperties[prop];
|
|
165
|
+
let shouldSerialize = isVisibleRes;
|
|
166
|
+
if (propMeta &&
|
|
167
|
+
preventCircularRef &&
|
|
168
|
+
isVisibleRes &&
|
|
169
|
+
propMeta.kind !== core_1.ReferenceKind.SCALAR) {
|
|
170
|
+
if (!!propMeta.mapToPk) {
|
|
171
|
+
shouldSerialize = true;
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
const parentsLen = parents_.length;
|
|
175
|
+
for (let j = 0; j < parentsLen; j++) {
|
|
176
|
+
if (parents_[j] === propMeta.type) {
|
|
177
|
+
shouldSerialize = false;
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (!shouldSerialize) {
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
const cycle = root.visit(className, prop);
|
|
187
|
+
if (cycle && visited)
|
|
188
|
+
continue;
|
|
189
|
+
const val = this.processProperty(prop, entity, options, parents_);
|
|
190
|
+
if (!cycle) {
|
|
191
|
+
root.leave(className, prop);
|
|
192
|
+
}
|
|
193
|
+
if (skipNull && core_1.Utils.isPlainObject(val)) {
|
|
194
|
+
core_1.Utils.dropUndefinedProperties(val, null);
|
|
195
|
+
}
|
|
196
|
+
if (typeof val !== "undefined" && !(val === null && skipNull)) {
|
|
197
|
+
ret[this.propertyName(meta, prop, platform)] =
|
|
198
|
+
val;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
if (contextCreated) {
|
|
202
|
+
root.close();
|
|
203
|
+
}
|
|
204
|
+
if (!wrapped.isInitialized()) {
|
|
205
|
+
return ret;
|
|
206
|
+
}
|
|
207
|
+
// Clean getter processing
|
|
208
|
+
const metaProps = meta.props;
|
|
209
|
+
const metaPropsLen = metaProps.length;
|
|
210
|
+
for (let i = 0; i < metaPropsLen; i++) {
|
|
211
|
+
const prop = metaProps[i];
|
|
212
|
+
const propName = prop.name;
|
|
213
|
+
// Clear, readable conditions
|
|
214
|
+
if (prop.getter &&
|
|
215
|
+
prop.getterName === undefined &&
|
|
216
|
+
typeof entity[propName] !== "undefined" &&
|
|
217
|
+
isVisible(meta, propName, options)) {
|
|
218
|
+
ret[this.propertyName(meta, propName, platform)] = this.processProperty(propName, entity, options, parents_);
|
|
219
|
+
}
|
|
220
|
+
else if (prop.getterName &&
|
|
221
|
+
entity[prop.getterName] instanceof Function &&
|
|
222
|
+
isVisible(meta, propName, options)) {
|
|
223
|
+
ret[this.propertyName(meta, propName, platform)] = this.processProperty(prop.getterName, entity, options, parents_);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return ret;
|
|
227
|
+
}
|
|
228
|
+
static propertyName(meta, prop, platform) {
|
|
229
|
+
// Use WeakMap per metadata to avoid global cache conflicts
|
|
230
|
+
let entityCache = this.propertyNameCache.get(meta);
|
|
231
|
+
if (!entityCache) {
|
|
232
|
+
entityCache = new Map();
|
|
233
|
+
this.propertyNameCache.set(meta, entityCache);
|
|
234
|
+
}
|
|
235
|
+
const cacheKey = `${prop}:${platform?.constructor.name || "no-platform"}`;
|
|
236
|
+
const cached = entityCache.get(cacheKey);
|
|
237
|
+
if (cached !== undefined) {
|
|
238
|
+
return cached;
|
|
239
|
+
}
|
|
240
|
+
// Inline property resolution for hot path
|
|
241
|
+
let result;
|
|
242
|
+
const property = meta.properties[prop];
|
|
243
|
+
/* istanbul ignore next */
|
|
244
|
+
if (property?.serializedName) {
|
|
245
|
+
result = property.serializedName;
|
|
246
|
+
}
|
|
247
|
+
else if (property?.primary && platform) {
|
|
248
|
+
result = platform.getSerializedPrimaryKeyField(prop);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
result = prop;
|
|
252
|
+
}
|
|
253
|
+
// Prevent cache from growing too large
|
|
254
|
+
if (entityCache.size >= this.PROPERTY_CACHE_SIZE) {
|
|
255
|
+
entityCache.clear(); // Much faster than selective deletion
|
|
256
|
+
}
|
|
257
|
+
entityCache.set(cacheKey, result);
|
|
258
|
+
return result;
|
|
259
|
+
}
|
|
260
|
+
static processProperty(prop, entity, options, parents = EMPTY_ARRAY) {
|
|
261
|
+
// Avoid array allocation when not needed
|
|
262
|
+
const parents_ = parents.length > 0
|
|
263
|
+
? [...parents, entity.constructor.name]
|
|
264
|
+
: [entity.constructor.name];
|
|
265
|
+
// Handle dotted properties efficiently
|
|
266
|
+
const parts = prop.split(DOT);
|
|
267
|
+
prop = parts[0];
|
|
268
|
+
const wrapped = (0, core_1.helper)(entity);
|
|
269
|
+
const property = wrapped.__meta.properties[prop];
|
|
270
|
+
const serializer = property?.serializer;
|
|
271
|
+
const propValue = entity[prop];
|
|
272
|
+
// Fast path for function properties
|
|
273
|
+
if (propValue instanceof Function) {
|
|
274
|
+
const returnValue = propValue();
|
|
275
|
+
if (!options.ignoreSerializers && serializer) {
|
|
276
|
+
return serializer(returnValue);
|
|
277
|
+
}
|
|
278
|
+
return returnValue;
|
|
279
|
+
}
|
|
280
|
+
/* istanbul ignore next */
|
|
281
|
+
if (!options.ignoreSerializers && serializer) {
|
|
282
|
+
return serializer(propValue);
|
|
283
|
+
}
|
|
284
|
+
// Type checks in optimal order
|
|
285
|
+
if (core_1.Utils.isCollection(propValue)) {
|
|
286
|
+
return this.processCollection(prop, entity, options, parents_);
|
|
287
|
+
}
|
|
288
|
+
if (core_1.Utils.isEntity(propValue, true)) {
|
|
289
|
+
return this.processEntity(prop, entity, wrapped.__platform, options, parents_);
|
|
290
|
+
}
|
|
291
|
+
/* istanbul ignore next */
|
|
292
|
+
if (property?.reference === core_1.ReferenceKind.EMBEDDED) {
|
|
293
|
+
if (Array.isArray(propValue)) {
|
|
294
|
+
return propValue.map((item) => (0, core_1.helper)(item).toJSON());
|
|
295
|
+
}
|
|
296
|
+
if (core_1.Utils.isObject(propValue)) {
|
|
297
|
+
return (0, core_1.helper)(propValue).toJSON();
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
const customType = property?.customType;
|
|
301
|
+
if (customType) {
|
|
302
|
+
return customType.toJSON(propValue, wrapped.__platform);
|
|
303
|
+
}
|
|
304
|
+
return wrapped.__platform.normalizePrimaryKey(propValue);
|
|
305
|
+
}
|
|
306
|
+
static extractChildOptions(options, prop) {
|
|
307
|
+
const propPrefix = prop + DOT;
|
|
308
|
+
const propPrefixLen = propPrefix.length;
|
|
309
|
+
// Inline function to avoid call overhead
|
|
310
|
+
const extractChildElements = (items) => {
|
|
311
|
+
const result = [];
|
|
312
|
+
const itemsLen = items.length;
|
|
313
|
+
// Traditional for loop for better performance
|
|
314
|
+
for (let i = 0; i < itemsLen; i++) {
|
|
315
|
+
const field = items[i];
|
|
316
|
+
if (field.length > propPrefixLen &&
|
|
317
|
+
field.substring(0, propPrefixLen) === propPrefix) {
|
|
318
|
+
result.push(field.substring(propPrefixLen));
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
return result;
|
|
322
|
+
};
|
|
323
|
+
const populate = options.populate;
|
|
324
|
+
const exclude = options.exclude;
|
|
325
|
+
// Avoid object spread when possible
|
|
326
|
+
const result = {
|
|
327
|
+
populate: Array.isArray(populate) && !populate.includes(WILDCARD)
|
|
328
|
+
? extractChildElements(populate)
|
|
329
|
+
: populate,
|
|
330
|
+
exclude: Array.isArray(exclude) && !exclude.includes(WILDCARD)
|
|
331
|
+
? extractChildElements(exclude)
|
|
332
|
+
: exclude,
|
|
333
|
+
preventCircularRef: options.preventCircularRef,
|
|
334
|
+
skipNull: options.skipNull,
|
|
335
|
+
ignoreSerializers: options.ignoreSerializers,
|
|
336
|
+
forceObject: options.forceObject,
|
|
337
|
+
};
|
|
338
|
+
return result;
|
|
339
|
+
}
|
|
340
|
+
static processEntity(prop, entity, platform, options, parents = EMPTY_ARRAY) {
|
|
341
|
+
const parents_ = parents.length > 0
|
|
342
|
+
? [...parents, entity.constructor.name]
|
|
343
|
+
: [entity.constructor.name];
|
|
344
|
+
const child = core_1.Reference.unwrapReference(entity[prop]);
|
|
345
|
+
const wrapped = (0, core_1.helper)(child);
|
|
346
|
+
// Fixed: was incorrectly calling isPopulated(child, prop, options) instead of isPopulated(entity, prop, options)
|
|
347
|
+
const populated = isPopulated(entity, prop, options) && wrapped.isInitialized();
|
|
348
|
+
const expand = populated || options.forceObject || !wrapped.__managed;
|
|
349
|
+
if (expand) {
|
|
350
|
+
return this.serialize(child, this.extractChildOptions(options, prop), parents_);
|
|
351
|
+
}
|
|
352
|
+
return platform.normalizePrimaryKey(wrapped.getPrimaryKey());
|
|
353
|
+
}
|
|
354
|
+
static processCollection(prop, entity, options, parents = EMPTY_ARRAY) {
|
|
355
|
+
const parents_ = parents.length > 0
|
|
356
|
+
? [...parents, entity.constructor.name]
|
|
357
|
+
: [entity.constructor.name];
|
|
358
|
+
const col = entity[prop];
|
|
359
|
+
if (!col.isInitialized()) {
|
|
360
|
+
return undefined;
|
|
361
|
+
}
|
|
362
|
+
const items = col.getItems(false);
|
|
363
|
+
const itemsLen = items.length;
|
|
364
|
+
const result = new Array(itemsLen);
|
|
365
|
+
const childOptions = this.extractChildOptions(options, prop);
|
|
366
|
+
// Check if the collection property itself should be populated
|
|
367
|
+
// Fixed: was incorrectly calling isPopulated(item, prop, options) instead of isPopulated(entity, prop, options)
|
|
368
|
+
const shouldPopulateCollection = isPopulated(entity, prop, options);
|
|
369
|
+
for (let i = 0; i < itemsLen; i++) {
|
|
370
|
+
const item = items[i];
|
|
371
|
+
if (shouldPopulateCollection) {
|
|
372
|
+
result[i] = this.serialize(item, childOptions, parents_);
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
result[i] = (0, core_1.helper)(item).getPrimaryKey();
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
return result;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
exports.EntitySerializer = EntitySerializer;
|
|
382
|
+
// Thread-safe per-instance cache to avoid concurrency issues
|
|
383
|
+
EntitySerializer.PROPERTY_CACHE_SIZE = 2000;
|
|
384
|
+
// Thread-safe property name resolution with WeakMap for per-entity caching
|
|
385
|
+
EntitySerializer.propertyNameCache = new WeakMap();
|
|
386
|
+
const mikroOrmSerializer = (data, options) => {
|
|
387
|
+
return new Promise((resolve) => {
|
|
388
|
+
// Efficient options handling
|
|
389
|
+
if (!options) {
|
|
390
|
+
options = STATIC_OPTIONS_SHAPE;
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
// Check if we can use static shape
|
|
394
|
+
let useStatic = true;
|
|
395
|
+
const optionKeys = Object.keys(options);
|
|
396
|
+
for (let i = 0; i < optionKeys.length; i++) {
|
|
397
|
+
const key = optionKeys[i];
|
|
398
|
+
if (options[key] !==
|
|
399
|
+
STATIC_OPTIONS_SHAPE[key]) {
|
|
400
|
+
useStatic = false;
|
|
401
|
+
break;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
if (useStatic) {
|
|
405
|
+
options = STATIC_OPTIONS_SHAPE;
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
options = { ...STATIC_OPTIONS_SHAPE, ...options };
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
const data_ = (Array.isArray(data) ? data : [data]).filter(Boolean);
|
|
412
|
+
const forSerialization = [];
|
|
413
|
+
const notForSerialization = [];
|
|
414
|
+
// Simple classification loop
|
|
415
|
+
const dataLen = data_.length;
|
|
416
|
+
for (let i = 0; i < dataLen; i++) {
|
|
417
|
+
const object = data_[i];
|
|
418
|
+
if (object.__meta) {
|
|
419
|
+
forSerialization.push(object);
|
|
420
|
+
}
|
|
421
|
+
else {
|
|
422
|
+
notForSerialization.push(object);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
// Pre-allocate result array
|
|
426
|
+
const forSerializationLen = forSerialization.length;
|
|
427
|
+
const result = new Array(forSerializationLen);
|
|
428
|
+
for (let i = 0; i < forSerializationLen; i++) {
|
|
429
|
+
result[i] = EntitySerializer.serialize(forSerialization[i], options);
|
|
430
|
+
}
|
|
431
|
+
// Simple result construction
|
|
432
|
+
let finalResult;
|
|
433
|
+
if (notForSerialization.length > 0) {
|
|
434
|
+
finalResult = result.concat(notForSerialization);
|
|
435
|
+
}
|
|
436
|
+
else {
|
|
437
|
+
finalResult = result;
|
|
438
|
+
}
|
|
439
|
+
resolve(Array.isArray(data) ? finalResult : finalResult[0]);
|
|
440
|
+
});
|
|
441
|
+
};
|
|
442
|
+
exports.mikroOrmSerializer = mikroOrmSerializer;
|
|
443
|
+
//# sourceMappingURL=mikro-orm-serializer-old.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mikro-orm-serializer-old.js","sourceRoot":"","sources":["../../../src/dal/mikro-orm/mikro-orm-serializer-old.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,34 @@
|
|
|
1
|
-
import { EntityDTO, Loaded
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { EntityDTO, Loaded } from "@mikro-orm/core";
|
|
2
|
+
declare const STATIC_OPTIONS_SHAPE: {
|
|
3
|
+
populate: string[] | boolean;
|
|
4
|
+
exclude: string[] | undefined;
|
|
5
|
+
preventCircularRef: boolean;
|
|
6
|
+
skipNull: boolean | undefined;
|
|
7
|
+
ignoreSerializers: boolean | undefined;
|
|
8
|
+
forceObject: boolean;
|
|
5
9
|
};
|
|
10
|
+
declare class RequestScopedSerializationContext {
|
|
11
|
+
readonly propertyNameCache: Map<string, string>;
|
|
12
|
+
readonly visitedEntities: WeakSet<object>;
|
|
13
|
+
readonly keyCollectionBuffer: string[];
|
|
14
|
+
keyBufferIndex: number;
|
|
15
|
+
constructor();
|
|
16
|
+
resetKeyBuffer(): void;
|
|
17
|
+
addKey(key: string): void;
|
|
18
|
+
getKeys(): string[];
|
|
19
|
+
}
|
|
6
20
|
export declare class EntitySerializer {
|
|
7
|
-
static serialize<T extends object, P extends string = never>(entity: T, options?:
|
|
21
|
+
static serialize<T extends object, P extends string = never>(entity: T, options?: Partial<typeof STATIC_OPTIONS_SHAPE>, parents?: readonly string[], requestCtx?: RequestScopedSerializationContext): EntityDTO<Loaded<T, P>>;
|
|
8
22
|
private static propertyName;
|
|
9
23
|
private static processProperty;
|
|
10
|
-
private static
|
|
24
|
+
private static extractChildPopulate;
|
|
25
|
+
private static createChildOptions;
|
|
11
26
|
private static processEntity;
|
|
12
27
|
private static processCollection;
|
|
13
28
|
}
|
|
14
|
-
export declare const mikroOrmSerializer: <TOutput extends object>(data: any, options?: Parameters<typeof EntitySerializer.serialize>[1] & {
|
|
15
|
-
preventCircularRef
|
|
16
|
-
populate
|
|
17
|
-
}) =>
|
|
29
|
+
export declare const mikroOrmSerializer: <TOutput extends object>(data: any, options?: Partial<Parameters<typeof EntitySerializer.serialize>[1] & {
|
|
30
|
+
preventCircularRef: boolean | undefined;
|
|
31
|
+
populate: string[] | boolean | undefined;
|
|
32
|
+
}>) => TOutput;
|
|
18
33
|
export {};
|
|
19
34
|
//# sourceMappingURL=mikro-orm-serializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mikro-orm-serializer.d.ts","sourceRoot":"","sources":["../../../src/dal/mikro-orm/mikro-orm-serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EAIT,MAAM,
|
|
1
|
+
{"version":3,"file":"mikro-orm-serializer.d.ts","sourceRoot":"","sources":["../../../src/dal/mikro-orm/mikro-orm-serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EAIT,MAAM,EAMP,MAAM,iBAAiB,CAAA;AAExB,QAAA,MAAM,oBAAoB;cACN,MAAM,EAAE,GAAG,OAAO;aACd,MAAM,EAAE,GAAG,SAAS;wBACd,OAAO;cACZ,OAAO,GAAG,SAAS;uBACV,OAAO,GAAG,SAAS;iBAC9B,OAAO;CAC7B,CAAA;AAuDD,cAAM,iCAAiC;IACrC,QAAQ,CAAC,iBAAiB,sBAA4B;IACtD,QAAQ,CAAC,eAAe,kBAAwB;IAIhD,QAAQ,CAAC,mBAAmB,WAAyB;IACrD,cAAc,SAAI;;IASlB,cAAc,IAAI,IAAI;IAItB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IASzB,OAAO,IAAI,MAAM,EAAE;CAOpB;AAED,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,KAAK,EACzD,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,OAAO,CAAC,OAAO,oBAAoB,CAAwB,EACpE,OAAO,GAAE,SAAS,MAAM,EAAgB,EACxC,UAAU,CAAC,EAAE,iCAAiC,GAC7C,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAiN1B,OAAO,CAAC,MAAM,CAAC,YAAY;IA4B3B,OAAO,CAAC,MAAM,CAAC,eAAe;IA4F9B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IA0BnC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAoBjC,OAAO,CAAC,MAAM,CAAC,aAAa;IAqC5B,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAsFjC;AAED,eAAO,MAAM,kBAAkB,GAAI,OAAO,SAAS,MAAM,EACvD,MAAM,GAAG,EACT,UAAU,OAAO,CACf,UAAU,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;IACjD,kBAAkB,EAAE,OAAO,GAAG,SAAS,CAAA;IACvC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,GAAG,SAAS,CAAA;CACzC,CACF,KACA,OAsDF,CAAA"}
|