express-model-binding 1.0.0 → 1.1.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.
- package/dist/{BaseAdapter-BjvLQijd.d.mts → BaseAdapter-Dr9a8ZUY.d.mts} +17 -1
- package/dist/{BaseAdapter-BjvLQijd.d.ts → BaseAdapter-Dr9a8ZUY.d.ts} +17 -1
- package/dist/adapters/KnexAdapter.d.mts +1 -1
- package/dist/adapters/KnexAdapter.d.ts +1 -1
- package/dist/adapters/KnexAdapter.js +1 -257
- package/dist/adapters/KnexAdapter.mjs +1 -229
- package/dist/adapters/MongooseAdapter.d.mts +1 -1
- package/dist/adapters/MongooseAdapter.d.ts +1 -1
- package/dist/adapters/MongooseAdapter.js +1 -245
- package/dist/adapters/MongooseAdapter.mjs +1 -225
- package/dist/adapters/PrismaAdapter.d.mts +1 -1
- package/dist/adapters/PrismaAdapter.d.ts +1 -1
- package/dist/adapters/PrismaAdapter.js +1 -247
- package/dist/adapters/PrismaAdapter.mjs +1 -220
- package/dist/adapters/SequelizeAdapter.d.mts +1 -1
- package/dist/adapters/SequelizeAdapter.d.ts +1 -1
- package/dist/adapters/SequelizeAdapter.js +1 -280
- package/dist/adapters/SequelizeAdapter.mjs +1 -260
- package/dist/adapters/TypeORMAdapter.d.mts +1 -1
- package/dist/adapters/TypeORMAdapter.d.ts +1 -1
- package/dist/adapters/TypeORMAdapter.js +1 -294
- package/dist/adapters/TypeORMAdapter.mjs +1 -267
- package/dist/chunk-7I3EYD6K.js +1 -0
- package/dist/chunk-7OR75DD2.mjs +1 -0
- package/dist/chunk-A7LUHNSI.mjs +1 -0
- package/dist/chunk-B3DBSP2J.mjs +1 -0
- package/dist/chunk-CKT6LD2K.js +1 -0
- package/dist/chunk-DBYMXDVA.mjs +1 -0
- package/dist/chunk-EEPSARTF.js +1 -0
- package/dist/chunk-ISSVD3WP.js +1 -0
- package/dist/chunk-LLYCNTZ7.mjs +1 -0
- package/dist/chunk-OKPAWWZN.js +1 -0
- package/dist/chunk-Z6WU7X3A.mjs +1 -0
- package/dist/chunk-ZJ2WW53U.js +1 -0
- package/dist/index.d.mts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.js +1 -1514
- package/dist/index.mjs +1 -1450
- package/package.json +5 -3
- package/dist/adapters/KnexAdapter.js.map +0 -1
- package/dist/adapters/KnexAdapter.mjs.map +0 -1
- package/dist/adapters/MongooseAdapter.js.map +0 -1
- package/dist/adapters/MongooseAdapter.mjs.map +0 -1
- package/dist/adapters/PrismaAdapter.js.map +0 -1
- package/dist/adapters/PrismaAdapter.mjs.map +0 -1
- package/dist/adapters/SequelizeAdapter.js.map +0 -1
- package/dist/adapters/SequelizeAdapter.mjs.map +0 -1
- package/dist/adapters/TypeORMAdapter.js.map +0 -1
- package/dist/adapters/TypeORMAdapter.mjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
|
@@ -1,247 +1 @@
|
|
|
1
|
-
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/adapters/PrismaAdapter.ts
|
|
21
|
-
var PrismaAdapter_exports = {};
|
|
22
|
-
__export(PrismaAdapter_exports, {
|
|
23
|
-
PrismaAdapter: () => PrismaAdapter
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(PrismaAdapter_exports);
|
|
26
|
-
|
|
27
|
-
// src/errors/index.ts
|
|
28
|
-
var BindingError = class extends Error {
|
|
29
|
-
constructor(message, originalError) {
|
|
30
|
-
super(message);
|
|
31
|
-
this.name = "BindingError";
|
|
32
|
-
this.originalError = originalError;
|
|
33
|
-
Error.captureStackTrace(this, this.constructor);
|
|
34
|
-
}
|
|
35
|
-
toJSON() {
|
|
36
|
-
return {
|
|
37
|
-
name: this.name,
|
|
38
|
-
message: this.message,
|
|
39
|
-
originalError: this.originalError?.message
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
var InvalidModelError = class extends Error {
|
|
44
|
-
constructor(message, model) {
|
|
45
|
-
super(message);
|
|
46
|
-
this.name = "InvalidModelError";
|
|
47
|
-
this.model = model;
|
|
48
|
-
Error.captureStackTrace(this, this.constructor);
|
|
49
|
-
}
|
|
50
|
-
toJSON() {
|
|
51
|
-
return {
|
|
52
|
-
name: this.name,
|
|
53
|
-
message: this.message,
|
|
54
|
-
model: typeof this.model === "string" ? this.model : String(this.model)
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
// src/core/BaseAdapter.ts
|
|
60
|
-
var BaseAdapter = class {
|
|
61
|
-
transformValue(_model, _key, value) {
|
|
62
|
-
if (/^\d+$/.test(value)) {
|
|
63
|
-
const num = parseInt(value, 10);
|
|
64
|
-
if (!isNaN(num) && Number.isSafeInteger(num)) {
|
|
65
|
-
return num;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return value;
|
|
69
|
-
}
|
|
70
|
-
supportsSoftDeletes(_model) {
|
|
71
|
-
return false;
|
|
72
|
-
}
|
|
73
|
-
getModelMetadata(model) {
|
|
74
|
-
return {
|
|
75
|
-
name: this.getModelName(model),
|
|
76
|
-
primaryKey: this.getPrimaryKeyName(model),
|
|
77
|
-
softDeletes: this.supportsSoftDeletes(model),
|
|
78
|
-
adapter: this.name
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
validateModel(model) {
|
|
82
|
-
if (!this.isValidModel(model)) {
|
|
83
|
-
throw new InvalidModelError(`Invalid model for ${this.name} adapter`, model);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
getModelName(model) {
|
|
87
|
-
if (typeof model === "string") {
|
|
88
|
-
return model;
|
|
89
|
-
}
|
|
90
|
-
if (model && typeof model === "object") {
|
|
91
|
-
const obj = model;
|
|
92
|
-
if (typeof obj.name === "string") return obj.name;
|
|
93
|
-
if (typeof obj.modelName === "string") return obj.modelName;
|
|
94
|
-
if (typeof obj.tableName === "string") return obj.tableName;
|
|
95
|
-
}
|
|
96
|
-
if (model && typeof model === "function") {
|
|
97
|
-
return model.name || "Unknown";
|
|
98
|
-
}
|
|
99
|
-
return "Unknown";
|
|
100
|
-
}
|
|
101
|
-
applySoftDeleteFilter(queryBuilder, _options) {
|
|
102
|
-
return queryBuilder;
|
|
103
|
-
}
|
|
104
|
-
applyIncludes(queryBuilder, _includes) {
|
|
105
|
-
return queryBuilder;
|
|
106
|
-
}
|
|
107
|
-
applySelect(queryBuilder, _select) {
|
|
108
|
-
return queryBuilder;
|
|
109
|
-
}
|
|
110
|
-
applyWhereConditions(queryBuilder, _where) {
|
|
111
|
-
return queryBuilder;
|
|
112
|
-
}
|
|
113
|
-
applyCustomQuery(queryBuilder, queryFn) {
|
|
114
|
-
if (queryFn) {
|
|
115
|
-
return queryFn(queryBuilder);
|
|
116
|
-
}
|
|
117
|
-
return queryBuilder;
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
// src/utils/validators.ts
|
|
122
|
-
var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
123
|
-
function isUUID(value) {
|
|
124
|
-
return UUID_REGEX.test(value);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// src/adapters/PrismaAdapter.ts
|
|
128
|
-
var PrismaAdapter = class extends BaseAdapter {
|
|
129
|
-
constructor(prisma) {
|
|
130
|
-
super();
|
|
131
|
-
this.prisma = prisma;
|
|
132
|
-
this.name = "prisma";
|
|
133
|
-
}
|
|
134
|
-
getPrisma() {
|
|
135
|
-
return this.prisma;
|
|
136
|
-
}
|
|
137
|
-
async findByKey(modelName, key, value, options = {}) {
|
|
138
|
-
this.validateModel(modelName);
|
|
139
|
-
try {
|
|
140
|
-
const model = this.prisma[modelName];
|
|
141
|
-
if (!model) {
|
|
142
|
-
throw new InvalidModelError(`Model '${modelName}' not found in Prisma schema`, modelName);
|
|
143
|
-
}
|
|
144
|
-
const transformedValue = this.transformValue(modelName, key, value);
|
|
145
|
-
const queryOptions = {
|
|
146
|
-
where: { [key]: transformedValue }
|
|
147
|
-
};
|
|
148
|
-
if (options.where) {
|
|
149
|
-
queryOptions.where = {
|
|
150
|
-
...queryOptions.where,
|
|
151
|
-
...options.where
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
if (options.select && options.select.length > 0) {
|
|
155
|
-
queryOptions.select = options.select.reduce((acc, field) => {
|
|
156
|
-
acc[field] = true;
|
|
157
|
-
return acc;
|
|
158
|
-
}, {});
|
|
159
|
-
}
|
|
160
|
-
if (options.include) {
|
|
161
|
-
queryOptions.include = this.buildIncludeOptions(options.include);
|
|
162
|
-
delete queryOptions.select;
|
|
163
|
-
}
|
|
164
|
-
if (options.query) {
|
|
165
|
-
options.query(queryOptions);
|
|
166
|
-
}
|
|
167
|
-
let result = null;
|
|
168
|
-
try {
|
|
169
|
-
result = await model.findUnique(queryOptions);
|
|
170
|
-
} catch {
|
|
171
|
-
result = await model.findFirst(queryOptions);
|
|
172
|
-
}
|
|
173
|
-
if (!result && key !== this.getPrimaryKeyName(modelName)) {
|
|
174
|
-
result = await model.findFirst(queryOptions);
|
|
175
|
-
}
|
|
176
|
-
return result;
|
|
177
|
-
} catch (error) {
|
|
178
|
-
if (error instanceof InvalidModelError) {
|
|
179
|
-
throw error;
|
|
180
|
-
}
|
|
181
|
-
throw new BindingError(
|
|
182
|
-
`Failed to fetch ${modelName}: ${error.message}`,
|
|
183
|
-
error
|
|
184
|
-
);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
getPrimaryKeyName(_modelName) {
|
|
188
|
-
return "id";
|
|
189
|
-
}
|
|
190
|
-
isValidModel(modelName) {
|
|
191
|
-
if (typeof modelName !== "string") {
|
|
192
|
-
return false;
|
|
193
|
-
}
|
|
194
|
-
if (modelName.startsWith("$")) {
|
|
195
|
-
return false;
|
|
196
|
-
}
|
|
197
|
-
return !!this.prisma[modelName];
|
|
198
|
-
}
|
|
199
|
-
transformValue(_modelName, key, value) {
|
|
200
|
-
if (key === "id" || key.endsWith("Id")) {
|
|
201
|
-
const num = parseInt(value, 10);
|
|
202
|
-
if (!isNaN(num) && num.toString() === value && Number.isSafeInteger(num)) {
|
|
203
|
-
return num;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
if (isUUID(value)) {
|
|
207
|
-
return value;
|
|
208
|
-
}
|
|
209
|
-
return value;
|
|
210
|
-
}
|
|
211
|
-
supportsSoftDeletes(_modelName) {
|
|
212
|
-
return false;
|
|
213
|
-
}
|
|
214
|
-
getModelMetadata(modelName) {
|
|
215
|
-
return {
|
|
216
|
-
name: modelName,
|
|
217
|
-
primaryKey: this.getPrimaryKeyName(modelName),
|
|
218
|
-
softDeletes: false,
|
|
219
|
-
adapter: this.name
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
buildIncludeOptions(includes) {
|
|
223
|
-
if (Array.isArray(includes)) {
|
|
224
|
-
return includes.reduce((acc, relation) => {
|
|
225
|
-
acc[relation] = true;
|
|
226
|
-
return acc;
|
|
227
|
-
}, {});
|
|
228
|
-
}
|
|
229
|
-
return Object.entries(includes).reduce((acc, [relation, opts]) => {
|
|
230
|
-
if (typeof opts === "boolean") {
|
|
231
|
-
acc[relation] = opts;
|
|
232
|
-
} else if (typeof opts === "object" && opts !== null) {
|
|
233
|
-
const nestedOpts = opts;
|
|
234
|
-
acc[relation] = {
|
|
235
|
-
...nestedOpts,
|
|
236
|
-
include: nestedOpts.include ? this.buildIncludeOptions(nestedOpts.include) : void 0
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
return acc;
|
|
240
|
-
}, {});
|
|
241
|
-
}
|
|
242
|
-
};
|
|
243
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
244
|
-
0 && (module.exports = {
|
|
245
|
-
PrismaAdapter
|
|
246
|
-
});
|
|
247
|
-
//# sourceMappingURL=PrismaAdapter.js.map
|
|
1
|
+
'use strict';var chunkOKPAWWZN_js=require('../chunk-OKPAWWZN.js');require('../chunk-7I3EYD6K.js');Object.defineProperty(exports,"PrismaAdapter",{enumerable:true,get:function(){return chunkOKPAWWZN_js.a}});
|
|
@@ -1,220 +1 @@
|
|
|
1
|
-
|
|
2
|
-
var BindingError = class extends Error {
|
|
3
|
-
constructor(message, originalError) {
|
|
4
|
-
super(message);
|
|
5
|
-
this.name = "BindingError";
|
|
6
|
-
this.originalError = originalError;
|
|
7
|
-
Error.captureStackTrace(this, this.constructor);
|
|
8
|
-
}
|
|
9
|
-
toJSON() {
|
|
10
|
-
return {
|
|
11
|
-
name: this.name,
|
|
12
|
-
message: this.message,
|
|
13
|
-
originalError: this.originalError?.message
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
var InvalidModelError = class extends Error {
|
|
18
|
-
constructor(message, model) {
|
|
19
|
-
super(message);
|
|
20
|
-
this.name = "InvalidModelError";
|
|
21
|
-
this.model = model;
|
|
22
|
-
Error.captureStackTrace(this, this.constructor);
|
|
23
|
-
}
|
|
24
|
-
toJSON() {
|
|
25
|
-
return {
|
|
26
|
-
name: this.name,
|
|
27
|
-
message: this.message,
|
|
28
|
-
model: typeof this.model === "string" ? this.model : String(this.model)
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
// src/core/BaseAdapter.ts
|
|
34
|
-
var BaseAdapter = class {
|
|
35
|
-
transformValue(_model, _key, value) {
|
|
36
|
-
if (/^\d+$/.test(value)) {
|
|
37
|
-
const num = parseInt(value, 10);
|
|
38
|
-
if (!isNaN(num) && Number.isSafeInteger(num)) {
|
|
39
|
-
return num;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return value;
|
|
43
|
-
}
|
|
44
|
-
supportsSoftDeletes(_model) {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
getModelMetadata(model) {
|
|
48
|
-
return {
|
|
49
|
-
name: this.getModelName(model),
|
|
50
|
-
primaryKey: this.getPrimaryKeyName(model),
|
|
51
|
-
softDeletes: this.supportsSoftDeletes(model),
|
|
52
|
-
adapter: this.name
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
validateModel(model) {
|
|
56
|
-
if (!this.isValidModel(model)) {
|
|
57
|
-
throw new InvalidModelError(`Invalid model for ${this.name} adapter`, model);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
getModelName(model) {
|
|
61
|
-
if (typeof model === "string") {
|
|
62
|
-
return model;
|
|
63
|
-
}
|
|
64
|
-
if (model && typeof model === "object") {
|
|
65
|
-
const obj = model;
|
|
66
|
-
if (typeof obj.name === "string") return obj.name;
|
|
67
|
-
if (typeof obj.modelName === "string") return obj.modelName;
|
|
68
|
-
if (typeof obj.tableName === "string") return obj.tableName;
|
|
69
|
-
}
|
|
70
|
-
if (model && typeof model === "function") {
|
|
71
|
-
return model.name || "Unknown";
|
|
72
|
-
}
|
|
73
|
-
return "Unknown";
|
|
74
|
-
}
|
|
75
|
-
applySoftDeleteFilter(queryBuilder, _options) {
|
|
76
|
-
return queryBuilder;
|
|
77
|
-
}
|
|
78
|
-
applyIncludes(queryBuilder, _includes) {
|
|
79
|
-
return queryBuilder;
|
|
80
|
-
}
|
|
81
|
-
applySelect(queryBuilder, _select) {
|
|
82
|
-
return queryBuilder;
|
|
83
|
-
}
|
|
84
|
-
applyWhereConditions(queryBuilder, _where) {
|
|
85
|
-
return queryBuilder;
|
|
86
|
-
}
|
|
87
|
-
applyCustomQuery(queryBuilder, queryFn) {
|
|
88
|
-
if (queryFn) {
|
|
89
|
-
return queryFn(queryBuilder);
|
|
90
|
-
}
|
|
91
|
-
return queryBuilder;
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
// src/utils/validators.ts
|
|
96
|
-
var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
97
|
-
function isUUID(value) {
|
|
98
|
-
return UUID_REGEX.test(value);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// src/adapters/PrismaAdapter.ts
|
|
102
|
-
var PrismaAdapter = class extends BaseAdapter {
|
|
103
|
-
constructor(prisma) {
|
|
104
|
-
super();
|
|
105
|
-
this.prisma = prisma;
|
|
106
|
-
this.name = "prisma";
|
|
107
|
-
}
|
|
108
|
-
getPrisma() {
|
|
109
|
-
return this.prisma;
|
|
110
|
-
}
|
|
111
|
-
async findByKey(modelName, key, value, options = {}) {
|
|
112
|
-
this.validateModel(modelName);
|
|
113
|
-
try {
|
|
114
|
-
const model = this.prisma[modelName];
|
|
115
|
-
if (!model) {
|
|
116
|
-
throw new InvalidModelError(`Model '${modelName}' not found in Prisma schema`, modelName);
|
|
117
|
-
}
|
|
118
|
-
const transformedValue = this.transformValue(modelName, key, value);
|
|
119
|
-
const queryOptions = {
|
|
120
|
-
where: { [key]: transformedValue }
|
|
121
|
-
};
|
|
122
|
-
if (options.where) {
|
|
123
|
-
queryOptions.where = {
|
|
124
|
-
...queryOptions.where,
|
|
125
|
-
...options.where
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
if (options.select && options.select.length > 0) {
|
|
129
|
-
queryOptions.select = options.select.reduce((acc, field) => {
|
|
130
|
-
acc[field] = true;
|
|
131
|
-
return acc;
|
|
132
|
-
}, {});
|
|
133
|
-
}
|
|
134
|
-
if (options.include) {
|
|
135
|
-
queryOptions.include = this.buildIncludeOptions(options.include);
|
|
136
|
-
delete queryOptions.select;
|
|
137
|
-
}
|
|
138
|
-
if (options.query) {
|
|
139
|
-
options.query(queryOptions);
|
|
140
|
-
}
|
|
141
|
-
let result = null;
|
|
142
|
-
try {
|
|
143
|
-
result = await model.findUnique(queryOptions);
|
|
144
|
-
} catch {
|
|
145
|
-
result = await model.findFirst(queryOptions);
|
|
146
|
-
}
|
|
147
|
-
if (!result && key !== this.getPrimaryKeyName(modelName)) {
|
|
148
|
-
result = await model.findFirst(queryOptions);
|
|
149
|
-
}
|
|
150
|
-
return result;
|
|
151
|
-
} catch (error) {
|
|
152
|
-
if (error instanceof InvalidModelError) {
|
|
153
|
-
throw error;
|
|
154
|
-
}
|
|
155
|
-
throw new BindingError(
|
|
156
|
-
`Failed to fetch ${modelName}: ${error.message}`,
|
|
157
|
-
error
|
|
158
|
-
);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
getPrimaryKeyName(_modelName) {
|
|
162
|
-
return "id";
|
|
163
|
-
}
|
|
164
|
-
isValidModel(modelName) {
|
|
165
|
-
if (typeof modelName !== "string") {
|
|
166
|
-
return false;
|
|
167
|
-
}
|
|
168
|
-
if (modelName.startsWith("$")) {
|
|
169
|
-
return false;
|
|
170
|
-
}
|
|
171
|
-
return !!this.prisma[modelName];
|
|
172
|
-
}
|
|
173
|
-
transformValue(_modelName, key, value) {
|
|
174
|
-
if (key === "id" || key.endsWith("Id")) {
|
|
175
|
-
const num = parseInt(value, 10);
|
|
176
|
-
if (!isNaN(num) && num.toString() === value && Number.isSafeInteger(num)) {
|
|
177
|
-
return num;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
if (isUUID(value)) {
|
|
181
|
-
return value;
|
|
182
|
-
}
|
|
183
|
-
return value;
|
|
184
|
-
}
|
|
185
|
-
supportsSoftDeletes(_modelName) {
|
|
186
|
-
return false;
|
|
187
|
-
}
|
|
188
|
-
getModelMetadata(modelName) {
|
|
189
|
-
return {
|
|
190
|
-
name: modelName,
|
|
191
|
-
primaryKey: this.getPrimaryKeyName(modelName),
|
|
192
|
-
softDeletes: false,
|
|
193
|
-
adapter: this.name
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
buildIncludeOptions(includes) {
|
|
197
|
-
if (Array.isArray(includes)) {
|
|
198
|
-
return includes.reduce((acc, relation) => {
|
|
199
|
-
acc[relation] = true;
|
|
200
|
-
return acc;
|
|
201
|
-
}, {});
|
|
202
|
-
}
|
|
203
|
-
return Object.entries(includes).reduce((acc, [relation, opts]) => {
|
|
204
|
-
if (typeof opts === "boolean") {
|
|
205
|
-
acc[relation] = opts;
|
|
206
|
-
} else if (typeof opts === "object" && opts !== null) {
|
|
207
|
-
const nestedOpts = opts;
|
|
208
|
-
acc[relation] = {
|
|
209
|
-
...nestedOpts,
|
|
210
|
-
include: nestedOpts.include ? this.buildIncludeOptions(nestedOpts.include) : void 0
|
|
211
|
-
};
|
|
212
|
-
}
|
|
213
|
-
return acc;
|
|
214
|
-
}, {});
|
|
215
|
-
}
|
|
216
|
-
};
|
|
217
|
-
export {
|
|
218
|
-
PrismaAdapter
|
|
219
|
-
};
|
|
220
|
-
//# sourceMappingURL=PrismaAdapter.mjs.map
|
|
1
|
+
export{a as PrismaAdapter}from'../chunk-LLYCNTZ7.mjs';import'../chunk-DBYMXDVA.mjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModelStatic, Model, FindOptions, Sequelize } from 'sequelize';
|
|
2
|
-
import { b as BaseAdapter, Q as QueryOptions, d as ModelMetadata } from '../BaseAdapter-
|
|
2
|
+
import { b as BaseAdapter, Q as QueryOptions, d as ModelMetadata } from '../BaseAdapter-Dr9a8ZUY.mjs';
|
|
3
3
|
import 'express';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModelStatic, Model, FindOptions, Sequelize } from 'sequelize';
|
|
2
|
-
import { b as BaseAdapter, Q as QueryOptions, d as ModelMetadata } from '../BaseAdapter-
|
|
2
|
+
import { b as BaseAdapter, Q as QueryOptions, d as ModelMetadata } from '../BaseAdapter-Dr9a8ZUY.js';
|
|
3
3
|
import 'express';
|
|
4
4
|
|
|
5
5
|
/**
|