sonamu 0.2.49 → 0.2.50

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/index.js CHANGED
@@ -80,13 +80,13 @@
80
80
 
81
81
 
82
82
 
83
- var _chunkHATLA54Zjs = require('./chunk-HATLA54Z.js');
83
+ var _chunk4EET56IEjs = require('./chunk-4EET56IE.js');
84
84
 
85
85
  // src/exceptions/error-handler.ts
86
86
  function setupErrorHandler(server) {
87
87
  server.setErrorHandler((error, request, reply) => {
88
88
  _nullishCoalesce(error.statusCode, () => ( (error.statusCode = 400)));
89
- if (_chunkHATLA54Zjs.isSoException.call(void 0, error) && error.payload && Array.isArray(error.payload)) {
89
+ if (_chunk4EET56IEjs.isSoException.call(void 0, error) && error.payload && Array.isArray(error.payload)) {
90
90
  const issues = error.payload;
91
91
  const [issue] = issues;
92
92
  const message = `${issue.message} (${issue.path.join("/")})`;
@@ -423,5 +423,5 @@ function unique(columns) {
423
423
 
424
424
 
425
425
 
426
- exports.AlreadyProcessedException = _chunkHATLA54Zjs.AlreadyProcessedException; exports.ApiParamType = _chunkHATLA54Zjs.ApiParamType; exports.BadRequestException = _chunkHATLA54Zjs.BadRequestException; exports.BaseModel = _chunkHATLA54Zjs.BaseModel; exports.BaseModelClass = _chunkHATLA54Zjs.BaseModelClass; exports.DB = _chunkHATLA54Zjs.DB; exports.DuplicateRowException = _chunkHATLA54Zjs.DuplicateRowException; exports.Entity = _chunkHATLA54Zjs.Entity; exports.EntityManager = _chunkHATLA54Zjs.EntityManager; exports.FixtureManager = _chunkHATLA54Zjs.FixtureManager; exports.FixtureManagerClass = _chunkHATLA54Zjs.FixtureManagerClass; exports.GenerateOptions = _chunkHATLA54Zjs.GenerateOptions; exports.InternalServerErrorException = _chunkHATLA54Zjs.InternalServerErrorException; exports.Migrator = _chunkHATLA54Zjs.Migrator; exports.NotFoundException = _chunkHATLA54Zjs.NotFoundException; exports.PathAndCode = _chunkHATLA54Zjs.PathAndCode; exports.RenderingNode = _chunkHATLA54Zjs.RenderingNode; exports.SQLDateTimeString = _chunkHATLA54Zjs.SQLDateTimeString; exports.ServiceUnavailableException = _chunkHATLA54Zjs.ServiceUnavailableException; exports.SoException = _chunkHATLA54Zjs.SoException; exports.Sonamu = _chunkHATLA54Zjs.Sonamu; exports.SonamuQueryMode = _chunkHATLA54Zjs.SonamuQueryMode; exports.Syncer = _chunkHATLA54Zjs.Syncer; exports.TargetNotFoundException = _chunkHATLA54Zjs.TargetNotFoundException; exports.TemplateKey = _chunkHATLA54Zjs.TemplateKey; exports.TemplateOptions = _chunkHATLA54Zjs.TemplateOptions; exports.UnauthorizedException = _chunkHATLA54Zjs.UnauthorizedException; exports.UpsertBuilder = _chunkHATLA54Zjs.UpsertBuilder; exports.api = _chunkHATLA54Zjs.api; exports.apiParamToTsCode = _chunkHATLA54Zjs.apiParamToTsCode; exports.apiParamTypeToTsType = _chunkHATLA54Zjs.apiParamTypeToTsType; exports.asArray = asArray; exports.findApiRootPath = _chunkHATLA54Zjs.findApiRootPath; exports.findAppRootPath = _chunkHATLA54Zjs.findAppRootPath; exports.getTextTypeLength = _chunkHATLA54Zjs.getTextTypeLength; exports.getZodObjectFromApi = _chunkHATLA54Zjs.getZodObjectFromApi; exports.getZodObjectFromApiParams = _chunkHATLA54Zjs.getZodObjectFromApiParams; exports.getZodTypeFromApiParamType = _chunkHATLA54Zjs.getZodTypeFromApiParamType; exports.globAsync = _chunkHATLA54Zjs.globAsync; exports.i = i; exports.importMultiple = _chunkHATLA54Zjs.importMultiple; exports.isBelongsToOneRelationProp = _chunkHATLA54Zjs.isBelongsToOneRelationProp; exports.isBigIntegerProp = _chunkHATLA54Zjs.isBigIntegerProp; exports.isBooleanProp = _chunkHATLA54Zjs.isBooleanProp; exports.isCustomJoinClause = _chunkHATLA54Zjs.isCustomJoinClause; exports.isDaemonServer = _chunkHATLA54Zjs.isDaemonServer; exports.isDateProp = _chunkHATLA54Zjs.isDateProp; exports.isDateTimeProp = _chunkHATLA54Zjs.isDateTimeProp; exports.isDecimalProp = _chunkHATLA54Zjs.isDecimalProp; exports.isDevelopment = _chunkHATLA54Zjs.isDevelopment; exports.isDoubleProp = _chunkHATLA54Zjs.isDoubleProp; exports.isEnumProp = _chunkHATLA54Zjs.isEnumProp; exports.isFloatProp = _chunkHATLA54Zjs.isFloatProp; exports.isHasManyRelationProp = _chunkHATLA54Zjs.isHasManyRelationProp; exports.isInDocker = _chunkHATLA54Zjs.isInDocker; exports.isIntegerProp = _chunkHATLA54Zjs.isIntegerProp; exports.isJsonProp = _chunkHATLA54Zjs.isJsonProp; exports.isKnexError = _chunkHATLA54Zjs.isKnexError; exports.isLocal = _chunkHATLA54Zjs.isLocal; exports.isManyToManyRelationProp = _chunkHATLA54Zjs.isManyToManyRelationProp; exports.isOneToOneRelationProp = _chunkHATLA54Zjs.isOneToOneRelationProp; exports.isProduction = _chunkHATLA54Zjs.isProduction; exports.isRefField = _chunkHATLA54Zjs.isRefField; exports.isRelationProp = _chunkHATLA54Zjs.isRelationProp; exports.isRemote = _chunkHATLA54Zjs.isRemote; exports.isSoException = _chunkHATLA54Zjs.isSoException; exports.isStaging = _chunkHATLA54Zjs.isStaging; exports.isStringProp = _chunkHATLA54Zjs.isStringProp; exports.isTest = _chunkHATLA54Zjs.isTest; exports.isTextProp = _chunkHATLA54Zjs.isTextProp; exports.isTimeProp = _chunkHATLA54Zjs.isTimeProp; exports.isTimestampProp = _chunkHATLA54Zjs.isTimestampProp; exports.isUuidProp = _chunkHATLA54Zjs.isUuidProp; exports.isVirtualProp = _chunkHATLA54Zjs.isVirtualProp; exports.nonNullable = _chunkHATLA54Zjs.nonNullable; exports.objToMap = objToMap; exports.p = p; exports.propNodeToZodTypeDef = _chunkHATLA54Zjs.propNodeToZodTypeDef; exports.propToZodTypeDef = _chunkHATLA54Zjs.propToZodTypeDef; exports.registeredApis = _chunkHATLA54Zjs.registeredApis; exports.serializeZodType = _chunkHATLA54Zjs.serializeZodType; exports.setupErrorHandler = setupErrorHandler; exports.unwrapPromiseOnce = _chunkHATLA54Zjs.unwrapPromiseOnce; exports.zArrayable = _chunkHATLA54Zjs.zArrayable; exports.zodTypeToTsTypeDef = _chunkHATLA54Zjs.zodTypeToTsTypeDef; exports.zodTypeToZodCode = _chunkHATLA54Zjs.zodTypeToZodCode;
426
+ exports.AlreadyProcessedException = _chunk4EET56IEjs.AlreadyProcessedException; exports.ApiParamType = _chunk4EET56IEjs.ApiParamType; exports.BadRequestException = _chunk4EET56IEjs.BadRequestException; exports.BaseModel = _chunk4EET56IEjs.BaseModel; exports.BaseModelClass = _chunk4EET56IEjs.BaseModelClass; exports.DB = _chunk4EET56IEjs.DB; exports.DuplicateRowException = _chunk4EET56IEjs.DuplicateRowException; exports.Entity = _chunk4EET56IEjs.Entity; exports.EntityManager = _chunk4EET56IEjs.EntityManager; exports.FixtureManager = _chunk4EET56IEjs.FixtureManager; exports.FixtureManagerClass = _chunk4EET56IEjs.FixtureManagerClass; exports.GenerateOptions = _chunk4EET56IEjs.GenerateOptions; exports.InternalServerErrorException = _chunk4EET56IEjs.InternalServerErrorException; exports.Migrator = _chunk4EET56IEjs.Migrator; exports.NotFoundException = _chunk4EET56IEjs.NotFoundException; exports.PathAndCode = _chunk4EET56IEjs.PathAndCode; exports.RenderingNode = _chunk4EET56IEjs.RenderingNode; exports.SQLDateTimeString = _chunk4EET56IEjs.SQLDateTimeString; exports.ServiceUnavailableException = _chunk4EET56IEjs.ServiceUnavailableException; exports.SoException = _chunk4EET56IEjs.SoException; exports.Sonamu = _chunk4EET56IEjs.Sonamu; exports.SonamuQueryMode = _chunk4EET56IEjs.SonamuQueryMode; exports.Syncer = _chunk4EET56IEjs.Syncer; exports.TargetNotFoundException = _chunk4EET56IEjs.TargetNotFoundException; exports.TemplateKey = _chunk4EET56IEjs.TemplateKey; exports.TemplateOptions = _chunk4EET56IEjs.TemplateOptions; exports.UnauthorizedException = _chunk4EET56IEjs.UnauthorizedException; exports.UpsertBuilder = _chunk4EET56IEjs.UpsertBuilder; exports.api = _chunk4EET56IEjs.api; exports.apiParamToTsCode = _chunk4EET56IEjs.apiParamToTsCode; exports.apiParamTypeToTsType = _chunk4EET56IEjs.apiParamTypeToTsType; exports.asArray = asArray; exports.findApiRootPath = _chunk4EET56IEjs.findApiRootPath; exports.findAppRootPath = _chunk4EET56IEjs.findAppRootPath; exports.getTextTypeLength = _chunk4EET56IEjs.getTextTypeLength; exports.getZodObjectFromApi = _chunk4EET56IEjs.getZodObjectFromApi; exports.getZodObjectFromApiParams = _chunk4EET56IEjs.getZodObjectFromApiParams; exports.getZodTypeFromApiParamType = _chunk4EET56IEjs.getZodTypeFromApiParamType; exports.globAsync = _chunk4EET56IEjs.globAsync; exports.i = i; exports.importMultiple = _chunk4EET56IEjs.importMultiple; exports.isBelongsToOneRelationProp = _chunk4EET56IEjs.isBelongsToOneRelationProp; exports.isBigIntegerProp = _chunk4EET56IEjs.isBigIntegerProp; exports.isBooleanProp = _chunk4EET56IEjs.isBooleanProp; exports.isCustomJoinClause = _chunk4EET56IEjs.isCustomJoinClause; exports.isDaemonServer = _chunk4EET56IEjs.isDaemonServer; exports.isDateProp = _chunk4EET56IEjs.isDateProp; exports.isDateTimeProp = _chunk4EET56IEjs.isDateTimeProp; exports.isDecimalProp = _chunk4EET56IEjs.isDecimalProp; exports.isDevelopment = _chunk4EET56IEjs.isDevelopment; exports.isDoubleProp = _chunk4EET56IEjs.isDoubleProp; exports.isEnumProp = _chunk4EET56IEjs.isEnumProp; exports.isFloatProp = _chunk4EET56IEjs.isFloatProp; exports.isHasManyRelationProp = _chunk4EET56IEjs.isHasManyRelationProp; exports.isInDocker = _chunk4EET56IEjs.isInDocker; exports.isIntegerProp = _chunk4EET56IEjs.isIntegerProp; exports.isJsonProp = _chunk4EET56IEjs.isJsonProp; exports.isKnexError = _chunk4EET56IEjs.isKnexError; exports.isLocal = _chunk4EET56IEjs.isLocal; exports.isManyToManyRelationProp = _chunk4EET56IEjs.isManyToManyRelationProp; exports.isOneToOneRelationProp = _chunk4EET56IEjs.isOneToOneRelationProp; exports.isProduction = _chunk4EET56IEjs.isProduction; exports.isRefField = _chunk4EET56IEjs.isRefField; exports.isRelationProp = _chunk4EET56IEjs.isRelationProp; exports.isRemote = _chunk4EET56IEjs.isRemote; exports.isSoException = _chunk4EET56IEjs.isSoException; exports.isStaging = _chunk4EET56IEjs.isStaging; exports.isStringProp = _chunk4EET56IEjs.isStringProp; exports.isTest = _chunk4EET56IEjs.isTest; exports.isTextProp = _chunk4EET56IEjs.isTextProp; exports.isTimeProp = _chunk4EET56IEjs.isTimeProp; exports.isTimestampProp = _chunk4EET56IEjs.isTimestampProp; exports.isUuidProp = _chunk4EET56IEjs.isUuidProp; exports.isVirtualProp = _chunk4EET56IEjs.isVirtualProp; exports.nonNullable = _chunk4EET56IEjs.nonNullable; exports.objToMap = objToMap; exports.p = p; exports.propNodeToZodTypeDef = _chunk4EET56IEjs.propNodeToZodTypeDef; exports.propToZodTypeDef = _chunk4EET56IEjs.propToZodTypeDef; exports.registeredApis = _chunk4EET56IEjs.registeredApis; exports.serializeZodType = _chunk4EET56IEjs.serializeZodType; exports.setupErrorHandler = setupErrorHandler; exports.unwrapPromiseOnce = _chunk4EET56IEjs.unwrapPromiseOnce; exports.zArrayable = _chunk4EET56IEjs.zArrayable; exports.zodTypeToTsTypeDef = _chunk4EET56IEjs.zodTypeToTsTypeDef; exports.zodTypeToZodCode = _chunk4EET56IEjs.zodTypeToZodCode;
427
427
  //# sourceMappingURL=index.js.map
package/dist/index.mjs ADDED
@@ -0,0 +1,429 @@
1
+ const require = (await import('module')).createRequire(import.meta.url);
2
+ import {
3
+ AlreadyProcessedException,
4
+ ApiParamType,
5
+ BadRequestException,
6
+ BaseModel,
7
+ BaseModelClass,
8
+ DB,
9
+ DuplicateRowException,
10
+ Entity,
11
+ EntityManager,
12
+ FixtureManager,
13
+ FixtureManagerClass,
14
+ GenerateOptions,
15
+ InternalServerErrorException,
16
+ Migrator,
17
+ NotFoundException,
18
+ PathAndCode,
19
+ RenderingNode,
20
+ SQLDateTimeString,
21
+ ServiceUnavailableException,
22
+ SoException,
23
+ Sonamu,
24
+ SonamuQueryMode,
25
+ Syncer,
26
+ TargetNotFoundException,
27
+ TemplateKey,
28
+ TemplateOptions,
29
+ UnauthorizedException,
30
+ UpsertBuilder,
31
+ api,
32
+ apiParamToTsCode,
33
+ apiParamTypeToTsType,
34
+ findApiRootPath,
35
+ findAppRootPath,
36
+ getTextTypeLength,
37
+ getZodObjectFromApi,
38
+ getZodObjectFromApiParams,
39
+ getZodTypeFromApiParamType,
40
+ globAsync,
41
+ importMultiple,
42
+ isBelongsToOneRelationProp,
43
+ isBigIntegerProp,
44
+ isBooleanProp,
45
+ isCustomJoinClause,
46
+ isDaemonServer,
47
+ isDateProp,
48
+ isDateTimeProp,
49
+ isDecimalProp,
50
+ isDevelopment,
51
+ isDoubleProp,
52
+ isEnumProp,
53
+ isFloatProp,
54
+ isHasManyRelationProp,
55
+ isInDocker,
56
+ isIntegerProp,
57
+ isJsonProp,
58
+ isKnexError,
59
+ isLocal,
60
+ isManyToManyRelationProp,
61
+ isOneToOneRelationProp,
62
+ isProduction,
63
+ isRefField,
64
+ isRelationProp,
65
+ isRemote,
66
+ isSoException,
67
+ isStaging,
68
+ isStringProp,
69
+ isTest,
70
+ isTextProp,
71
+ isTimeProp,
72
+ isTimestampProp,
73
+ isUuidProp,
74
+ isVirtualProp,
75
+ nonNullable,
76
+ propNodeToZodTypeDef,
77
+ propToZodTypeDef,
78
+ registeredApis,
79
+ serializeZodType,
80
+ unwrapPromiseOnce,
81
+ zArrayable,
82
+ zodTypeToTsTypeDef,
83
+ zodTypeToZodCode
84
+ } from "./chunk-HEPO4HGK.mjs";
85
+ import "./chunk-JXJTFHF7.mjs";
86
+
87
+ // src/exceptions/error-handler.ts
88
+ function setupErrorHandler(server) {
89
+ server.setErrorHandler((error, request, reply) => {
90
+ error.statusCode ?? (error.statusCode = 400);
91
+ if (isSoException(error) && error.payload && Array.isArray(error.payload)) {
92
+ const issues = error.payload;
93
+ const [issue] = issues;
94
+ const message = `${issue.message} (${issue.path.join("/")})`;
95
+ request.log.error(`${error.statusCode} ${message}`);
96
+ reply.status(error.statusCode <= 501 ? error.statusCode : 501).send({
97
+ name: error.name,
98
+ code: error.code,
99
+ message,
100
+ validationErrors: error.validation,
101
+ issues
102
+ });
103
+ } else {
104
+ request.log.error(`${error.statusCode} ${error.message}`);
105
+ reply.status(error.statusCode <= 501 ? error.statusCode : 501).send({
106
+ name: error.name,
107
+ code: error.code,
108
+ message: error.message,
109
+ validationErrors: error.validation
110
+ });
111
+ }
112
+ });
113
+ }
114
+
115
+ // src/entity/entity-utils.ts
116
+ import inflection from "inflection";
117
+
118
+ // src/utils/model.ts
119
+ function asArray(param) {
120
+ if (Array.isArray(param)) {
121
+ return param;
122
+ } else {
123
+ return [param];
124
+ }
125
+ }
126
+ function objToMap(obj) {
127
+ const keys = Object.keys(obj);
128
+ if (keys.every((key) => parseInt(key).toString() === key)) {
129
+ return new Map(keys.map((key) => [parseInt(key), obj[key]]));
130
+ } else {
131
+ return new Map(Object.entries(obj));
132
+ }
133
+ }
134
+
135
+ // src/entity/entity-utils.ts
136
+ var p = {
137
+ integer,
138
+ bigInteger,
139
+ text,
140
+ string,
141
+ float,
142
+ double,
143
+ decimal,
144
+ boolean,
145
+ date,
146
+ dateTime,
147
+ time,
148
+ timestamp,
149
+ json,
150
+ uuid,
151
+ enums,
152
+ virtual,
153
+ relationOneToOne,
154
+ relationBelongsToOne,
155
+ relationHasMany,
156
+ relationManyToMany
157
+ };
158
+ function integer(name, option) {
159
+ return {
160
+ name,
161
+ type: "integer",
162
+ ...option
163
+ };
164
+ }
165
+ function bigInteger(name, option) {
166
+ return {
167
+ name,
168
+ type: "bigInteger",
169
+ ...option
170
+ };
171
+ }
172
+ function text(name, option) {
173
+ return {
174
+ name,
175
+ type: "text",
176
+ ...option
177
+ };
178
+ }
179
+ function string(name, option) {
180
+ return {
181
+ name,
182
+ type: "string",
183
+ ...option
184
+ };
185
+ }
186
+ function float(name, option) {
187
+ return {
188
+ name,
189
+ type: "float",
190
+ precision: 8,
191
+ scale: 2,
192
+ ...option
193
+ };
194
+ }
195
+ function double(name, option) {
196
+ return {
197
+ name,
198
+ type: "double",
199
+ precision: 8,
200
+ scale: 2,
201
+ ...option
202
+ };
203
+ }
204
+ function decimal(name, option) {
205
+ return {
206
+ name,
207
+ type: "decimal",
208
+ precision: 8,
209
+ scale: 2,
210
+ ...option
211
+ };
212
+ }
213
+ function boolean(name, option) {
214
+ return {
215
+ name,
216
+ type: "boolean",
217
+ ...option
218
+ };
219
+ }
220
+ function date(name, option) {
221
+ if (option?.now === true) {
222
+ delete option.now;
223
+ option.dbDefault = "CURRENT_TIMESTAMP";
224
+ }
225
+ return {
226
+ name,
227
+ type: "date",
228
+ ...option
229
+ };
230
+ }
231
+ function dateTime(name, option) {
232
+ if (option?.now === true) {
233
+ delete option.now;
234
+ option.dbDefault = "CURRENT_TIMESTAMP";
235
+ }
236
+ return {
237
+ name,
238
+ type: "dateTime",
239
+ ...option
240
+ };
241
+ }
242
+ function time(name, option) {
243
+ if (option?.now === true) {
244
+ delete option.now;
245
+ option.dbDefault = "CURRENT_TIMESTAMP";
246
+ }
247
+ return {
248
+ name,
249
+ type: "time",
250
+ ...option
251
+ };
252
+ }
253
+ function timestamp(name, option) {
254
+ if (option?.now === true) {
255
+ delete option.now;
256
+ option.dbDefault = "CURRENT_TIMESTAMP";
257
+ }
258
+ return {
259
+ name,
260
+ type: "timestamp",
261
+ ...option
262
+ };
263
+ }
264
+ function json(name, option) {
265
+ return {
266
+ name,
267
+ type: "json",
268
+ ...option
269
+ };
270
+ }
271
+ function uuid(name, option) {
272
+ return {
273
+ name,
274
+ type: "uuid",
275
+ ...option
276
+ };
277
+ }
278
+ function enums(name, option) {
279
+ return {
280
+ name,
281
+ type: "enum",
282
+ id: option.id ?? `$Model${inflection.camelize(name)}`,
283
+ ...option
284
+ };
285
+ }
286
+ function virtual(name, option) {
287
+ return {
288
+ name,
289
+ type: "virtual",
290
+ ...option
291
+ };
292
+ }
293
+ function relationOneToOne(name, option) {
294
+ return {
295
+ name,
296
+ type: "relation",
297
+ relationType: "OneToOne",
298
+ ...option
299
+ };
300
+ }
301
+ function relationBelongsToOne(name, option) {
302
+ return {
303
+ name,
304
+ type: "relation",
305
+ relationType: "BelongsToOne",
306
+ ...option
307
+ };
308
+ }
309
+ function relationHasMany(name, option) {
310
+ return {
311
+ name,
312
+ type: "relation",
313
+ relationType: "HasMany",
314
+ ...option
315
+ };
316
+ }
317
+ function relationManyToMany(name, option) {
318
+ return {
319
+ name,
320
+ type: "relation",
321
+ relationType: "ManyToMany",
322
+ ...option
323
+ };
324
+ }
325
+ var i = {
326
+ index,
327
+ unique
328
+ };
329
+ function index(columns) {
330
+ return {
331
+ type: "index",
332
+ columns: asArray(columns)
333
+ };
334
+ }
335
+ function unique(columns) {
336
+ return {
337
+ type: "unique",
338
+ columns: asArray(columns)
339
+ };
340
+ }
341
+ export {
342
+ AlreadyProcessedException,
343
+ ApiParamType,
344
+ BadRequestException,
345
+ BaseModel,
346
+ BaseModelClass,
347
+ DB,
348
+ DuplicateRowException,
349
+ Entity,
350
+ EntityManager,
351
+ FixtureManager,
352
+ FixtureManagerClass,
353
+ GenerateOptions,
354
+ InternalServerErrorException,
355
+ Migrator,
356
+ NotFoundException,
357
+ PathAndCode,
358
+ RenderingNode,
359
+ SQLDateTimeString,
360
+ ServiceUnavailableException,
361
+ SoException,
362
+ Sonamu,
363
+ SonamuQueryMode,
364
+ Syncer,
365
+ TargetNotFoundException,
366
+ TemplateKey,
367
+ TemplateOptions,
368
+ UnauthorizedException,
369
+ UpsertBuilder,
370
+ api,
371
+ apiParamToTsCode,
372
+ apiParamTypeToTsType,
373
+ asArray,
374
+ findApiRootPath,
375
+ findAppRootPath,
376
+ getTextTypeLength,
377
+ getZodObjectFromApi,
378
+ getZodObjectFromApiParams,
379
+ getZodTypeFromApiParamType,
380
+ globAsync,
381
+ i,
382
+ importMultiple,
383
+ isBelongsToOneRelationProp,
384
+ isBigIntegerProp,
385
+ isBooleanProp,
386
+ isCustomJoinClause,
387
+ isDaemonServer,
388
+ isDateProp,
389
+ isDateTimeProp,
390
+ isDecimalProp,
391
+ isDevelopment,
392
+ isDoubleProp,
393
+ isEnumProp,
394
+ isFloatProp,
395
+ isHasManyRelationProp,
396
+ isInDocker,
397
+ isIntegerProp,
398
+ isJsonProp,
399
+ isKnexError,
400
+ isLocal,
401
+ isManyToManyRelationProp,
402
+ isOneToOneRelationProp,
403
+ isProduction,
404
+ isRefField,
405
+ isRelationProp,
406
+ isRemote,
407
+ isSoException,
408
+ isStaging,
409
+ isStringProp,
410
+ isTest,
411
+ isTextProp,
412
+ isTimeProp,
413
+ isTimestampProp,
414
+ isUuidProp,
415
+ isVirtualProp,
416
+ nonNullable,
417
+ objToMap,
418
+ p,
419
+ propNodeToZodTypeDef,
420
+ propToZodTypeDef,
421
+ registeredApis,
422
+ serializeZodType,
423
+ setupErrorHandler,
424
+ unwrapPromiseOnce,
425
+ zArrayable,
426
+ zodTypeToTsTypeDef,
427
+ zodTypeToZodCode
428
+ };
429
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/exceptions/error-handler.ts","../src/entity/entity-utils.ts","../src/utils/model.ts"],"sourcesContent":["import { FastifyInstance } from \"fastify\";\nimport { ZodIssue } from \"zod\";\nimport { isSoException } from \"./so-exceptions\";\n\nexport function setupErrorHandler(server: FastifyInstance) {\n server.setErrorHandler((error, request, reply) => {\n error.statusCode ??= 400;\n\n if (isSoException(error) && error.payload && Array.isArray(error.payload)) {\n const issues = error.payload as ZodIssue[];\n const [issue] = issues;\n const message = `${issue.message} (${issue.path.join(\"/\")})`;\n\n request.log.error(`${error.statusCode} ${message}`);\n reply.status(error.statusCode <= 501 ? error.statusCode : 501).send({\n name: error.name,\n code: error.code,\n message: message,\n validationErrors: error.validation,\n issues,\n });\n } else {\n request.log.error(`${error.statusCode} ${error.message}`);\n reply.status(error.statusCode <= 501 ? error.statusCode : 501).send({\n name: error.name,\n code: error.code,\n message: error.message,\n validationErrors: error.validation,\n });\n }\n });\n}\n","import inflection from \"inflection\";\nimport {\n BelongsToOneRelationProp,\n BigIntegerProp,\n BooleanProp,\n DateProp,\n DateTimeProp,\n DecimalProp,\n DistributiveOmit,\n DoubleProp,\n EnumProp,\n FloatProp,\n HasManyRelationProp,\n IntegerProp,\n JsonProp,\n ManyToManyRelationProp,\n OneToOneRelationProp,\n EntityIndex,\n StringProp,\n TextProp,\n TimeProp,\n TimestampProp,\n UuidProp,\n VirtualProp,\n} from \"../types/types\";\nimport { asArray } from \"../utils/model\";\n\nexport const p = {\n integer,\n bigInteger,\n text,\n string,\n float,\n double,\n decimal,\n boolean,\n date,\n dateTime,\n time,\n timestamp,\n json,\n uuid,\n enums,\n virtual,\n relationOneToOne,\n relationBelongsToOne,\n relationHasMany,\n relationManyToMany,\n};\n\nfunction integer(\n name: string,\n option?: Omit<IntegerProp, \"name\" | \"type\">\n): IntegerProp {\n return {\n name,\n type: \"integer\",\n ...option,\n };\n}\nfunction bigInteger(\n name: string,\n option?: Omit<BigIntegerProp, \"name\" | \"type\">\n): BigIntegerProp {\n return {\n name,\n type: \"bigInteger\",\n ...option,\n };\n}\nfunction text(name: string, option: Omit<TextProp, \"name\" | \"type\">): TextProp {\n return {\n name,\n type: \"text\",\n ...option,\n };\n}\nfunction string(\n name: string,\n option: Omit<StringProp, \"name\" | \"type\">\n): StringProp {\n return {\n name,\n type: \"string\",\n ...option,\n };\n}\nfunction float(\n name: string,\n option?: Omit<FloatProp, \"name\" | \"type\">\n): FloatProp {\n return {\n name,\n type: \"float\",\n precision: 8,\n scale: 2,\n ...option,\n };\n}\nfunction double(\n name: string,\n option?: Omit<DoubleProp, \"name\" | \"type\">\n): DoubleProp {\n return {\n name,\n type: \"double\",\n precision: 8,\n scale: 2,\n ...option,\n };\n}\nfunction decimal(\n name: string,\n option?: Omit<DecimalProp, \"name\" | \"type\">\n): DecimalProp {\n return {\n name,\n type: \"decimal\",\n precision: 8,\n scale: 2,\n ...option,\n };\n}\nfunction boolean(\n name: string,\n option?: Omit<BooleanProp, \"name\" | \"type\">\n): BooleanProp {\n return {\n name,\n type: \"boolean\",\n ...option,\n };\n}\nfunction date(\n name: string,\n option?: Omit<DateProp, \"name\" | \"type\"> & { now?: true }\n): DateProp {\n if (option?.now === true) {\n delete option.now;\n option.dbDefault = \"CURRENT_TIMESTAMP\";\n }\n return {\n name,\n type: \"date\",\n ...option,\n };\n}\nfunction dateTime(\n name: string,\n option?: Omit<DateTimeProp, \"name\" | \"type\"> & { now?: true }\n): DateTimeProp {\n if (option?.now === true) {\n delete option.now;\n option.dbDefault = \"CURRENT_TIMESTAMP\";\n }\n return {\n name,\n type: \"dateTime\",\n ...option,\n };\n}\nfunction time(\n name: string,\n option?: Omit<TimeProp, \"name\" | \"type\"> & { now?: true }\n): TimeProp {\n if (option?.now === true) {\n delete option.now;\n option.dbDefault = \"CURRENT_TIMESTAMP\";\n }\n return {\n name,\n type: \"time\",\n ...option,\n };\n}\nfunction timestamp(\n name: string,\n option?: Omit<TimestampProp, \"name\" | \"type\"> & { now?: true }\n): TimestampProp {\n if (option?.now === true) {\n delete option.now;\n option.dbDefault = \"CURRENT_TIMESTAMP\";\n }\n return {\n name,\n type: \"timestamp\",\n ...option,\n };\n}\nfunction json(name: string, option: Omit<JsonProp, \"name\" | \"type\">): JsonProp {\n return {\n name,\n type: \"json\",\n ...option,\n };\n}\nfunction uuid(name: string, option: Omit<UuidProp, \"name\" | \"type\">): UuidProp {\n return {\n name,\n type: \"uuid\",\n ...option,\n };\n}\nfunction enums(\n name: string,\n option: Omit<EnumProp, \"name\" | \"type\" | \"id\"> & { id?: string }\n): EnumProp {\n return {\n name,\n type: \"enum\",\n id: option.id ?? `$Model${inflection.camelize(name)}`,\n ...option,\n };\n}\nfunction virtual(\n name: string,\n option: Omit<VirtualProp, \"name\" | \"type\" | \"dbDefault\" | \"toFilter\">\n): VirtualProp {\n return {\n name,\n type: \"virtual\",\n ...option,\n };\n}\nfunction relationOneToOne(\n name: string,\n option: DistributiveOmit<\n OneToOneRelationProp,\n \"name\" | \"type\" | \"relationType\"\n >\n): OneToOneRelationProp {\n return {\n name,\n type: \"relation\",\n relationType: \"OneToOne\",\n ...option,\n };\n}\nfunction relationBelongsToOne(\n name: string,\n option: Omit<BelongsToOneRelationProp, \"name\" | \"type\" | \"relationType\">\n): BelongsToOneRelationProp {\n return {\n name,\n type: \"relation\",\n relationType: \"BelongsToOne\",\n ...option,\n };\n}\nfunction relationHasMany(\n name: string,\n option: Omit<HasManyRelationProp, \"name\" | \"type\" | \"relationType\">\n): HasManyRelationProp {\n return {\n name,\n type: \"relation\",\n relationType: \"HasMany\",\n ...option,\n };\n}\nfunction relationManyToMany(\n name: string,\n option: Omit<ManyToManyRelationProp, \"name\" | \"type\" | \"relationType\">\n): ManyToManyRelationProp {\n return {\n name,\n type: \"relation\",\n relationType: \"ManyToMany\",\n ...option,\n };\n}\n\nexport const i = {\n index,\n unique,\n};\n\nfunction index(columns: string | string[]): EntityIndex {\n return {\n type: \"index\",\n columns: asArray(columns),\n };\n}\n\nfunction unique(columns: string | string[]): EntityIndex {\n return {\n type: \"unique\",\n columns: asArray(columns),\n };\n}\n","import _ from \"lodash\";\n\nexport type ListResult<T> = {\n rows: T[];\n total?: number;\n};\n\nexport type ArrayOr<T> = T | T[];\n\nexport function asArray<T>(param: T | T[]): T[] {\n if (Array.isArray(param)) {\n return param;\n } else {\n return [param as T] as T[];\n }\n}\n\nexport function objToMap<T>(obj: { [k: string]: T }) {\n const keys = Object.keys(obj);\n if (keys.every((key) => parseInt(key).toString() === key)) {\n return new Map<number, T>(keys.map((key) => [parseInt(key), obj[key]]));\n } else {\n return new Map<string, T>(Object.entries(obj));\n }\n}\n\nexport interface BaseListParams {\n id?: number | number[];\n num?: number;\n page?: number;\n keyword?: string;\n queryMode?: \"list\" | \"count\" | \"both\";\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,SAAS,kBAAkB,QAAyB;AACzD,SAAO,gBAAgB,CAAC,OAAO,SAAS,UAAU;AAChD,UAAM,eAAN,MAAM,aAAe;AAErB,QAAI,cAAc,KAAK,KAAK,MAAM,WAAW,MAAM,QAAQ,MAAM,OAAO,GAAG;AACzE,YAAM,SAAS,MAAM;AACrB,YAAM,CAAC,KAAK,IAAI;AAChB,YAAM,UAAU,GAAG,MAAM,OAAO,KAAK,MAAM,KAAK,KAAK,GAAG,CAAC;AAEzD,cAAQ,IAAI,MAAM,GAAG,MAAM,UAAU,IAAI,OAAO,EAAE;AAClD,YAAM,OAAO,MAAM,cAAc,MAAM,MAAM,aAAa,GAAG,EAAE,KAAK;AAAA,QAClE,MAAM,MAAM;AAAA,QACZ,MAAM,MAAM;AAAA,QACZ;AAAA,QACA,kBAAkB,MAAM;AAAA,QACxB;AAAA,MACF,CAAC;AAAA,IACH,OAAO;AACL,cAAQ,IAAI,MAAM,GAAG,MAAM,UAAU,IAAI,MAAM,OAAO,EAAE;AACxD,YAAM,OAAO,MAAM,cAAc,MAAM,MAAM,aAAa,GAAG,EAAE,KAAK;AAAA,QAClE,MAAM,MAAM;AAAA,QACZ,MAAM,MAAM;AAAA,QACZ,SAAS,MAAM;AAAA,QACf,kBAAkB,MAAM;AAAA,MAC1B,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH;;;AC/BA,OAAO,gBAAgB;;;ACShB,SAAS,QAAW,OAAqB;AAC9C,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO;AAAA,EACT,OAAO;AACL,WAAO,CAAC,KAAU;AAAA,EACpB;AACF;AAEO,SAAS,SAAY,KAAyB;AACnD,QAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,MAAI,KAAK,MAAM,CAAC,QAAQ,SAAS,GAAG,EAAE,SAAS,MAAM,GAAG,GAAG;AACzD,WAAO,IAAI,IAAe,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;AAAA,EACxE,OAAO;AACL,WAAO,IAAI,IAAe,OAAO,QAAQ,GAAG,CAAC;AAAA,EAC/C;AACF;;;ADGO,IAAM,IAAI;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,QACP,MACA,QACa;AACb,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,GAAG;AAAA,EACL;AACF;AACA,SAAS,WACP,MACA,QACgB;AAChB,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,GAAG;AAAA,EACL;AACF;AACA,SAAS,KAAK,MAAc,QAAmD;AAC7E,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,GAAG;AAAA,EACL;AACF;AACA,SAAS,OACP,MACA,QACY;AACZ,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,GAAG;AAAA,EACL;AACF;AACA,SAAS,MACP,MACA,QACW;AACX,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,WAAW;AAAA,IACX,OAAO;AAAA,IACP,GAAG;AAAA,EACL;AACF;AACA,SAAS,OACP,MACA,QACY;AACZ,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,WAAW;AAAA,IACX,OAAO;AAAA,IACP,GAAG;AAAA,EACL;AACF;AACA,SAAS,QACP,MACA,QACa;AACb,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,WAAW;AAAA,IACX,OAAO;AAAA,IACP,GAAG;AAAA,EACL;AACF;AACA,SAAS,QACP,MACA,QACa;AACb,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,GAAG;AAAA,EACL;AACF;AACA,SAAS,KACP,MACA,QACU;AACV,MAAI,QAAQ,QAAQ,MAAM;AACxB,WAAO,OAAO;AACd,WAAO,YAAY;AAAA,EACrB;AACA,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,GAAG;AAAA,EACL;AACF;AACA,SAAS,SACP,MACA,QACc;AACd,MAAI,QAAQ,QAAQ,MAAM;AACxB,WAAO,OAAO;AACd,WAAO,YAAY;AAAA,EACrB;AACA,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,GAAG;AAAA,EACL;AACF;AACA,SAAS,KACP,MACA,QACU;AACV,MAAI,QAAQ,QAAQ,MAAM;AACxB,WAAO,OAAO;AACd,WAAO,YAAY;AAAA,EACrB;AACA,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,GAAG;AAAA,EACL;AACF;AACA,SAAS,UACP,MACA,QACe;AACf,MAAI,QAAQ,QAAQ,MAAM;AACxB,WAAO,OAAO;AACd,WAAO,YAAY;AAAA,EACrB;AACA,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,GAAG;AAAA,EACL;AACF;AACA,SAAS,KAAK,MAAc,QAAmD;AAC7E,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,GAAG;AAAA,EACL;AACF;AACA,SAAS,KAAK,MAAc,QAAmD;AAC7E,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,GAAG;AAAA,EACL;AACF;AACA,SAAS,MACP,MACA,QACU;AACV,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,IAAI,OAAO,MAAM,SAAS,WAAW,SAAS,IAAI,CAAC;AAAA,IACnD,GAAG;AAAA,EACL;AACF;AACA,SAAS,QACP,MACA,QACa;AACb,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,GAAG;AAAA,EACL;AACF;AACA,SAAS,iBACP,MACA,QAIsB;AACtB,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,cAAc;AAAA,IACd,GAAG;AAAA,EACL;AACF;AACA,SAAS,qBACP,MACA,QAC0B;AAC1B,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,cAAc;AAAA,IACd,GAAG;AAAA,EACL;AACF;AACA,SAAS,gBACP,MACA,QACqB;AACrB,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,cAAc;AAAA,IACd,GAAG;AAAA,EACL;AACF;AACA,SAAS,mBACP,MACA,QACwB;AACxB,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,cAAc;AAAA,IACd,GAAG;AAAA,EACL;AACF;AAEO,IAAM,IAAI;AAAA,EACf;AAAA,EACA;AACF;AAEA,SAAS,MAAM,SAAyC;AACtD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS,QAAQ,OAAO;AAAA,EAC1B;AACF;AAEA,SAAS,OAAO,SAAyC;AACvD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS,QAAQ,OAAO;AAAA,EAC1B;AACF;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sonamu",
3
- "version": "0.2.49",
3
+ "version": "0.2.50",
4
4
  "description": "Sonamu — TypeScript Fullstack API Framework",
5
5
  "keywords": [
6
6
  "typescript",
@@ -30,6 +30,11 @@ export class Template__service extends Template {
30
30
  // 서비스 TypeSource
31
31
  const { lines, importKeys } = this.getTypeSource(apis);
32
32
 
33
+ // AxiosProgressEvent 있는지 확인
34
+ const hasAxiosProgressEvent = apis.find((api) =>
35
+ (api.options.clients ?? []).includes("axios-multipart")
36
+ );
37
+
33
38
  return {
34
39
  ...this.getTargetAndPath(names),
35
40
  body: lines.join("\n"),
@@ -41,6 +46,9 @@ export class Template__service extends Template {
41
46
  `import qs from "qs";`,
42
47
  `import useSWR, { SWRResponse } from "swr";`,
43
48
  `import { fetch, ListResult, SWRError, SwrOptions, handleConditional, swrPostFetcher } from '../sonamu.shared';`,
49
+ ...(hasAxiosProgressEvent
50
+ ? [`import { AxiosProgressEvent } from 'axios';`]
51
+ : []),
44
52
  ],
45
53
  };
46
54
  }
@@ -210,7 +218,7 @@ export async function ${methodNameAxios}${typeParamsDef}(${paramsDef}): Promise<
210
218
  export async function ${api.methodName}${typeParamsDef}(
211
219
  ${paramsDef}${paramsDefComma}
212
220
  file: File,
213
- onUploadProgress?: (pe:ProgressEvent) => void
221
+ onUploadProgress?: (pe:AxiosProgressEvent) => void
214
222
  ): Promise<${returnTypeDef}> {
215
223
  const formData = new FormData();
216
224
  ${formDataDef}
package/tsup.config.js CHANGED
@@ -4,10 +4,7 @@ import { defineConfig } from "tsup";
4
4
  export default defineConfig({
5
5
  entry: ["src/index.ts", "src/bin/cli.ts", "src/bin/cli-wrapper.ts"],
6
6
  dts: true,
7
- format: [
8
- // "esm",
9
- "cjs",
10
- ],
7
+ format: ["esm", "cjs"],
11
8
  target: "es2020",
12
9
  clean: true,
13
10
  sourcemap: true,