sonamu 0.4.5 → 0.4.7

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.
Files changed (43) hide show
  1. package/dist/{base-model-CWRKUX49.d.ts → base-model-C24du9JT.d.ts} +1 -1
  2. package/dist/{base-model-BzMJ2E_I.d.mts → base-model-IZdmwmB5.d.mts} +1 -1
  3. package/dist/bin/cli.js +51 -51
  4. package/dist/bin/cli.mjs +2 -2
  5. package/dist/{chunk-WJGRXAXE.js → chunk-54T42DSA.js} +35 -28
  6. package/dist/chunk-54T42DSA.js.map +1 -0
  7. package/dist/{chunk-HVVCQLAU.mjs → chunk-5CB4CKVQ.mjs} +2 -2
  8. package/dist/{chunk-EUP6N7EK.js → chunk-6HM2HY4W.js} +100 -100
  9. package/dist/{chunk-N6N3LENC.js → chunk-COZNUCYR.js} +4 -4
  10. package/dist/{chunk-6SP5N5ND.mjs → chunk-HRZ23FCT.mjs} +2 -2
  11. package/dist/{chunk-UAG3SKFM.js → chunk-JNQQ3K3E.js} +7 -7
  12. package/dist/{chunk-4K2F3SOM.mjs → chunk-VOEEO52Y.mjs} +2 -2
  13. package/dist/{chunk-ZFLQLW37.mjs → chunk-YOH4CHWQ.mjs} +13 -6
  14. package/dist/chunk-YOH4CHWQ.mjs.map +1 -0
  15. package/dist/database/drivers/knex/base-model.d.mts +2 -2
  16. package/dist/database/drivers/knex/base-model.d.ts +2 -2
  17. package/dist/database/drivers/knex/base-model.js +8 -8
  18. package/dist/database/drivers/knex/base-model.mjs +3 -3
  19. package/dist/database/drivers/kysely/base-model.d.mts +2 -2
  20. package/dist/database/drivers/kysely/base-model.d.ts +2 -2
  21. package/dist/database/drivers/kysely/base-model.js +9 -9
  22. package/dist/database/drivers/kysely/base-model.mjs +3 -3
  23. package/dist/index.d.mts +5 -5
  24. package/dist/index.d.ts +5 -5
  25. package/dist/index.js +11 -7
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mjs +7 -3
  28. package/dist/index.mjs.map +1 -1
  29. package/dist/{model-CAH_4oQh.d.ts → model-Dbbfpk2X.d.mts} +1 -1
  30. package/dist/{model-CAH_4oQh.d.mts → model-Dbbfpk2X.d.ts} +1 -1
  31. package/package.json +1 -1
  32. package/src/database/drivers/knex/db.ts +10 -5
  33. package/src/database/drivers/kysely/db.ts +1 -1
  34. package/src/database/types.ts +2 -1
  35. package/src/index.ts +2 -0
  36. package/dist/chunk-WJGRXAXE.js.map +0 -1
  37. package/dist/chunk-ZFLQLW37.mjs.map +0 -1
  38. /package/dist/{chunk-HVVCQLAU.mjs.map → chunk-5CB4CKVQ.mjs.map} +0 -0
  39. /package/dist/{chunk-EUP6N7EK.js.map → chunk-6HM2HY4W.js.map} +0 -0
  40. /package/dist/{chunk-N6N3LENC.js.map → chunk-COZNUCYR.js.map} +0 -0
  41. /package/dist/{chunk-6SP5N5ND.mjs.map → chunk-HRZ23FCT.mjs.map} +0 -0
  42. /package/dist/{chunk-UAG3SKFM.js.map → chunk-JNQQ3K3E.js.map} +0 -0
  43. /package/dist/{chunk-4K2F3SOM.mjs.map → chunk-VOEEO52Y.mjs.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { Knex } from 'knex';
2
- import { D as DBPreset, U as UpsertBuilder, K as KnexClient, S as SubsetQuery } from '../../../model-CAH_4oQh.mjs';
3
- import { B as BaseModelClassAbstract } from '../../../base-model-BzMJ2E_I.mjs';
2
+ import { D as DBPreset, U as UpsertBuilder, K as KnexClient, S as SubsetQuery } from '../../../model-Dbbfpk2X.mjs';
3
+ import { B as BaseModelClassAbstract } from '../../../base-model-IZdmwmB5.mjs';
4
4
  import 'kysely';
5
5
  import 'zod';
6
6
  import 'mysql2';
@@ -1,6 +1,6 @@
1
1
  import { Knex } from 'knex';
2
- import { D as DBPreset, U as UpsertBuilder, K as KnexClient, S as SubsetQuery } from '../../../model-CAH_4oQh.js';
3
- import { B as BaseModelClassAbstract } from '../../../base-model-CWRKUX49.js';
2
+ import { D as DBPreset, U as UpsertBuilder, K as KnexClient, S as SubsetQuery } from '../../../model-Dbbfpk2X.js';
3
+ import { B as BaseModelClassAbstract } from '../../../base-model-C24du9JT.js';
4
4
  import 'kysely';
5
5
  import 'zod';
6
6
  import 'mysql2';
@@ -1,28 +1,28 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkN6N3LENCjs = require('../../../chunk-N6N3LENC.js');
3
+ var _chunkCOZNUCYRjs = require('../../../chunk-COZNUCYR.js');
4
4
 
5
5
 
6
- var _chunkUAG3SKFMjs = require('../../../chunk-UAG3SKFM.js');
6
+ var _chunkJNQQ3K3Ejs = require('../../../chunk-JNQQ3K3E.js');
7
7
 
8
8
 
9
9
 
10
- var _chunkWJGRXAXEjs = require('../../../chunk-WJGRXAXE.js');
10
+ var _chunk54T42DSAjs = require('../../../chunk-54T42DSA.js');
11
11
 
12
12
  // src/database/drivers/knex/base-model.ts
13
- var BaseModelClass = class extends _chunkN6N3LENCjs.BaseModelClassAbstract {
13
+ var BaseModelClass = class extends _chunkCOZNUCYRjs.BaseModelClassAbstract {
14
14
  getDB(which) {
15
- return _chunkWJGRXAXEjs.DB.getDB(which);
15
+ return _chunk54T42DSAjs.DB.getDB(which);
16
16
  }
17
17
  async destroy() {
18
- return _chunkWJGRXAXEjs.DB.destroy();
18
+ return _chunk54T42DSAjs.DB.destroy();
19
19
  }
20
20
  getUpsertBuilder() {
21
- return new (0, _chunkUAG3SKFMjs.UpsertBuilder)();
21
+ return new (0, _chunkJNQQ3K3Ejs.UpsertBuilder)();
22
22
  }
23
23
  applyJoins(clonedQb, joins) {
24
24
  for (const join of joins) {
25
- if (_chunkWJGRXAXEjs.isCustomJoinClause.call(void 0, join)) {
25
+ if (_chunk54T42DSAjs.isCustomJoinClause.call(void 0, join)) {
26
26
  if (join.join === "inner") {
27
27
  clonedQb.qb = clonedQb.qb.innerJoin(
28
28
  `${join.table} as ${join.as}`,
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  BaseModelClassAbstract
3
- } from "../../../chunk-4K2F3SOM.mjs";
3
+ } from "../../../chunk-VOEEO52Y.mjs";
4
4
  import {
5
5
  UpsertBuilder
6
- } from "../../../chunk-HVVCQLAU.mjs";
6
+ } from "../../../chunk-5CB4CKVQ.mjs";
7
7
  import {
8
8
  DB,
9
9
  isCustomJoinClause
10
- } from "../../../chunk-ZFLQLW37.mjs";
10
+ } from "../../../chunk-YOH4CHWQ.mjs";
11
11
  import "../../../chunk-PTFDTOJU.mjs";
12
12
 
13
13
  // src/database/drivers/knex/base-model.ts
@@ -1,6 +1,6 @@
1
1
  import { Kysely, SelectQueryBuilder } from 'kysely';
2
- import { D as DBPreset, a as Database, U as UpsertBuilder, b as KyselyClient, S as SubsetQuery } from '../../../model-CAH_4oQh.mjs';
3
- import { B as BaseModelClassAbstract } from '../../../base-model-BzMJ2E_I.mjs';
2
+ import { D as DBPreset, a as Database, U as UpsertBuilder, b as KyselyClient, S as SubsetQuery } from '../../../model-Dbbfpk2X.mjs';
3
+ import { B as BaseModelClassAbstract } from '../../../base-model-IZdmwmB5.mjs';
4
4
  import { UndirectedOrderByExpression } from 'kysely/dist/cjs/parser/order-by-parser';
5
5
  import 'knex';
6
6
  import 'zod';
@@ -1,6 +1,6 @@
1
1
  import { Kysely, SelectQueryBuilder } from 'kysely';
2
- import { D as DBPreset, a as Database, U as UpsertBuilder, b as KyselyClient, S as SubsetQuery } from '../../../model-CAH_4oQh.js';
3
- import { B as BaseModelClassAbstract } from '../../../base-model-CWRKUX49.js';
2
+ import { D as DBPreset, a as Database, U as UpsertBuilder, b as KyselyClient, S as SubsetQuery } from '../../../model-Dbbfpk2X.js';
3
+ import { B as BaseModelClassAbstract } from '../../../base-model-C24du9JT.js';
4
4
  import { UndirectedOrderByExpression } from 'kysely/dist/cjs/parser/order-by-parser';
5
5
  import 'knex';
6
6
  import 'zod';
@@ -1,30 +1,30 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunkN6N3LENCjs = require('../../../chunk-N6N3LENC.js');
3
+ var _chunkCOZNUCYRjs = require('../../../chunk-COZNUCYR.js');
4
4
 
5
5
 
6
- var _chunkUAG3SKFMjs = require('../../../chunk-UAG3SKFM.js');
6
+ var _chunkJNQQ3K3Ejs = require('../../../chunk-JNQQ3K3E.js');
7
7
 
8
8
 
9
9
 
10
10
 
11
- var _chunkWJGRXAXEjs = require('../../../chunk-WJGRXAXE.js');
11
+ var _chunk54T42DSAjs = require('../../../chunk-54T42DSA.js');
12
12
 
13
13
  // src/database/drivers/kysely/base-model.ts
14
14
  var _inflection = require('inflection'); var _inflection2 = _interopRequireDefault(_inflection);
15
- var BaseModelClass = class extends _chunkN6N3LENCjs.BaseModelClassAbstract {
15
+ var BaseModelClass = class extends _chunkCOZNUCYRjs.BaseModelClassAbstract {
16
16
  getDB(which) {
17
- return _chunkWJGRXAXEjs.DB.getDB(which);
17
+ return _chunk54T42DSAjs.DB.getDB(which);
18
18
  }
19
19
  async destroy() {
20
- return _chunkWJGRXAXEjs.DB.destroy();
20
+ return _chunk54T42DSAjs.DB.destroy();
21
21
  }
22
22
  getUpsertBuilder() {
23
- return new (0, _chunkUAG3SKFMjs.UpsertBuilder)();
23
+ return new (0, _chunkJNQQ3K3Ejs.UpsertBuilder)();
24
24
  }
25
25
  applyJoins(clonedQb, joins) {
26
26
  for (const join of joins) {
27
- if (_chunkWJGRXAXEjs.isCustomJoinClause.call(void 0, join)) {
27
+ if (_chunk54T42DSAjs.isCustomJoinClause.call(void 0, join)) {
28
28
  throw new Error("Custom join clause is not supported in Kysely");
29
29
  }
30
30
  if (join.join === "inner") {
@@ -48,7 +48,7 @@ var BaseModelClass = class extends _chunkN6N3LENCjs.BaseModelClassAbstract {
48
48
  if (!column) {
49
49
  throw new Error("parseOrderBy: Invalid column");
50
50
  }
51
- const entity = _chunkWJGRXAXEjs.EntityManager.get(_inflection2.default.classify(table));
51
+ const entity = _chunk54T42DSAjs.EntityManager.get(_inflection2.default.classify(table));
52
52
  if (!entity.props.find((p) => p.name === column)) {
53
53
  throw new Error("parseOrderBy: \uD604\uC7AC \uC5D4\uD2F0\uD2F0\uC5D0 \uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uCEEC\uB7FC\uC785\uB2C8\uB2E4: ");
54
54
  }
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  BaseModelClassAbstract
3
- } from "../../../chunk-4K2F3SOM.mjs";
3
+ } from "../../../chunk-VOEEO52Y.mjs";
4
4
  import {
5
5
  UpsertBuilder
6
- } from "../../../chunk-HVVCQLAU.mjs";
6
+ } from "../../../chunk-5CB4CKVQ.mjs";
7
7
  import {
8
8
  DB,
9
9
  EntityManager,
10
10
  isCustomJoinClause
11
- } from "../../../chunk-ZFLQLW37.mjs";
11
+ } from "../../../chunk-YOH4CHWQ.mjs";
12
12
  import "../../../chunk-PTFDTOJU.mjs";
13
13
 
14
14
  // src/database/drivers/kysely/base-model.ts
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { A as ApiParamType, e as ApiParam, E as EntityPropNode, T as TextProp, f as EntityProp, R as RelationProp, g as EntityIndex, h as EntityJson, S as SubsetQuery, i as EntitySubsetRow, j as TemplateKey, k as TemplateOptions, P as PathAndCode, G as GenerateOptions, l as RenderingNode, m as SonamuDBConfig, c as DatabaseDriver, K as KnexClient, b as KyselyClient, D as DBPreset, a as Database, n as SonamuDBBaseConfig, o as KnexConfig, p as KyselyConfig, q as KnexGenerator, r as KnexBaseConfig, s as SonamuKnexDBConfig, C as CodeGenerator, M as MigrationColumn, t as MigrationIndex, u as GenMigrationCode, v as MigrationForeign, w as KyselyBaseConfig, x as SonamuKyselyDBConfig, y as DatabaseExtend, I as IntegerProp, z as BigIntegerProp, F as StringProp, H as FloatProp, J as DoubleProp, L as DecimalProp, N as BooleanProp, O as DateProp, Q as DateTimeProp, V as TimeProp, W as TimestampProp, X as JsonProp, Y as UuidProp, Z as EnumProp, _ as VirtualProp, $ as DistributiveOmit, a0 as OneToOneRelationProp, a1 as BelongsToOneRelationProp, a2 as HasManyRelationProp, a3 as ManyToManyRelationProp, a4 as MigrationSet, a5 as MigrationSetAndJoinTable, a6 as FixtureSearchOptions, a7 as FixtureRecord, a8 as FixtureImportResult } from './model-CAH_4oQh.mjs';
3
- export { aS as ArrayOr, B as BaseListParams, aj as CommonProp, ac as DatabaseClient, d as DriverSpec, af as EnumsLabel, ag as EnumsLabelKo, ad as Environment, am as FlattenSubsetRow, aO as KnexColumnType, aL as KnexError, aR as ListResult, aP as MigrationJoinTable, aQ as RelationNode, al as RelationOn, ak as RelationType, an as SMDInput, ah as SQLDateTimeString, ae as SonamuDBFullConfig, aK as SonamuQueryMode, a9 as UBRef, U as UpsertBuilder, ab as WhereClause, aT as asArray, aG as isBelongsToOneRelationProp, ap as isBigIntegerProp, aw as isBooleanProp, aJ as isCustomJoinClause, ax as isDateProp, ay as isDateTimeProp, av as isDecimalProp, au as isDoubleProp, as as isEnumProp, at as isFloatProp, aH as isHasManyRelationProp, ao as isIntegerProp, aB as isJsonProp, aM as isKnexError, aN as isKyselyError, aI as isManyToManyRelationProp, aF as isOneToOneRelationProp, aa as isRefField, aE as isRelationProp, ar as isStringProp, aq as isTextProp, az as isTimeProp, aA as isTimestampProp, aC as isUuidProp, aD as isVirtualProp, aU as objToMap, ai as zArrayable } from './model-CAH_4oQh.mjs';
2
+ import { A as ApiParamType, e as ApiParam, E as EntityPropNode, T as TextProp, f as EntityProp, R as RelationProp, g as EntityIndex, h as EntityJson, S as SubsetQuery, i as EntitySubsetRow, j as TemplateKey, k as TemplateOptions, P as PathAndCode, G as GenerateOptions, l as RenderingNode, m as SonamuDBConfig, c as DatabaseDriver, K as KnexClient, b as KyselyClient, D as DBPreset, a as Database, n as SonamuDBBaseConfig, o as KnexConfig, p as KyselyConfig, q as KnexGenerator, r as KnexBaseConfig, s as SonamuKnexDBConfig, C as CodeGenerator, M as MigrationColumn, t as MigrationIndex, u as GenMigrationCode, v as MigrationForeign, w as KyselyBaseConfig, x as SonamuKyselyDBConfig, y as DatabaseExtend, I as IntegerProp, z as BigIntegerProp, F as StringProp, H as FloatProp, J as DoubleProp, L as DecimalProp, N as BooleanProp, O as DateProp, Q as DateTimeProp, V as TimeProp, W as TimestampProp, X as JsonProp, Y as UuidProp, Z as EnumProp, _ as VirtualProp, $ as DistributiveOmit, a0 as OneToOneRelationProp, a1 as BelongsToOneRelationProp, a2 as HasManyRelationProp, a3 as ManyToManyRelationProp, a4 as MigrationSet, a5 as MigrationSetAndJoinTable, a6 as FixtureSearchOptions, a7 as FixtureRecord, a8 as FixtureImportResult } from './model-Dbbfpk2X.mjs';
3
+ export { aS as ArrayOr, B as BaseListParams, aj as CommonProp, ac as DatabaseClient, d as DriverSpec, af as EnumsLabel, ag as EnumsLabelKo, ad as Environment, am as FlattenSubsetRow, aO as KnexColumnType, aL as KnexError, aR as ListResult, aP as MigrationJoinTable, aQ as RelationNode, al as RelationOn, ak as RelationType, an as SMDInput, ah as SQLDateTimeString, ae as SonamuDBFullConfig, aK as SonamuQueryMode, a9 as UBRef, U as UpsertBuilder, ab as WhereClause, aT as asArray, aG as isBelongsToOneRelationProp, ap as isBigIntegerProp, aw as isBooleanProp, aJ as isCustomJoinClause, ax as isDateProp, ay as isDateTimeProp, av as isDecimalProp, au as isDoubleProp, as as isEnumProp, at as isFloatProp, aH as isHasManyRelationProp, ao as isIntegerProp, aB as isJsonProp, aM as isKnexError, aN as isKyselyError, aI as isManyToManyRelationProp, aF as isOneToOneRelationProp, aa as isRefField, aE as isRelationProp, ar as isStringProp, aq as isTextProp, az as isTimeProp, aA as isTimestampProp, aC as isUuidProp, aD as isVirtualProp, aU as objToMap, ai as zArrayable } from './model-Dbbfpk2X.mjs';
4
4
  import { HTTPMethods, FastifyReply, FastifyInstance, FastifyRequest } from 'fastify';
5
5
  import { RouteGenericInterface } from 'fastify/types/route';
6
6
  import { Server, IncomingMessage, ServerResponse, IncomingHttpHeaders } from 'http';
@@ -423,7 +423,7 @@ declare class DBKnexClass extends DBClass {
423
423
  destroy(): Promise<void>;
424
424
  testDestroy(): Promise<void>;
425
425
  raw(db: Knex, query: string): Knex.Raw<any>;
426
- private generateDBConfig;
426
+ generateDBConfig(config: KnexBaseConfig): SonamuKnexDBConfig;
427
427
  /**
428
428
  * keys에 해당하는 설정들을 중복없이 가져옵니다. (host/port/database가 같은 설정은 중복으로 처리합니다.)
429
429
  */
@@ -525,7 +525,7 @@ declare class DBKyselyClass extends DBClass {
525
525
  destroy(): Promise<void>;
526
526
  testDestroy(): Promise<void>;
527
527
  raw(db: Kysely<Database>, query: string): Promise<kysely.QueryResult<unknown>>;
528
- private generateDBConfig;
528
+ generateDBConfig(config: KyselyBaseConfig): SonamuKyselyDBConfig;
529
529
  /**
530
530
  * keys에 해당하는 설정들을 중복없이 가져옵니다. (host/port/database가 같은 설정은 중복으로 처리합니다.)
531
531
  */
@@ -784,4 +784,4 @@ declare function findApiRootPath(): string;
784
784
  declare function nonNullable<T>(value: T): value is NonNullable<T>;
785
785
  declare function hydrate<T>(rows: T[]): T[];
786
786
 
787
- export { AlreadyProcessedException, type ApiDecoratorOptions, ApiParam, ApiParamType, BadRequestException, BelongsToOneRelationProp, BigIntegerProp, BooleanProp, type Context, type ContextExtend, DB, DBPreset, Database, DatabaseDriver, DatabaseExtend, DateProp, DateTimeProp, DecimalProp, DistributiveOmit, DoubleProp, DuplicateRowException, Entity, EntityIndex, EntityJson, EntityManager, type EntityNamesRecord, EntityProp, EntityPropNode, EntitySubsetRow, EnumProp, type ExtendedApi, FixtureImportResult, FixtureManager, FixtureManagerClass, FixtureRecord, FixtureSearchOptions, FloatProp, GenMigrationCode, GenerateOptions, HasManyRelationProp, IntegerProp, InternalServerErrorException, JsonProp, KnexBaseConfig, KnexConfig, KyselyBaseConfig, KyselyConfig, ManyToManyRelationProp, MigrationColumn, MigrationForeign, MigrationIndex, MigrationSet, MigrationSetAndJoinTable, type MigrationStatus, Migrator, type MigratorOptions, NotFoundException, OneToOneRelationProp, PathAndCode, RelationProp, type RenderedTemplate, RenderingNode, type ServiceClient, ServiceUnavailableException, SoException, Sonamu, type SonamuConfig, SonamuDBBaseConfig, SonamuDBConfig, SonamuKnexDBConfig, SonamuKyselyDBConfig, type SonamuSecrets, StringProp, SubsetQuery, Syncer, TargetNotFoundException, TemplateKey, TemplateOptions, TextProp, TimeProp, TimestampProp, UnauthorizedException, UuidProp, VirtualProp, api, apiParamToTsCode, apiParamTypeToTsType, findApiRootPath, findAppRootPath, getTextTypeLength, getZodObjectFromApi, getZodObjectFromApiParams, getZodTypeFromApiParamType, globAsync, hydrate, i, importMultiple, isDaemonServer, isDevelopment, isInDocker, isLocal, isProduction, isRemote, isSoException, isStaging, isTest, nonNullable, p, propNodeToZodTypeDef, propToZodTypeDef, registeredApis, serializeZodType, setupErrorHandler, unwrapPromiseOnce, zodTypeToTsTypeDef, zodTypeToZodCode };
787
+ export { AlreadyProcessedException, type ApiDecoratorOptions, ApiParam, ApiParamType, BadRequestException, BelongsToOneRelationProp, BigIntegerProp, BooleanProp, type Context, type ContextExtend, DB, DBKnexClass, DBKyselyClass, DBPreset, Database, DatabaseDriver, DatabaseExtend, DateProp, DateTimeProp, DecimalProp, DistributiveOmit, DoubleProp, DuplicateRowException, Entity, EntityIndex, EntityJson, EntityManager, type EntityNamesRecord, EntityProp, EntityPropNode, EntitySubsetRow, EnumProp, type ExtendedApi, FixtureImportResult, FixtureManager, FixtureManagerClass, FixtureRecord, FixtureSearchOptions, FloatProp, GenMigrationCode, GenerateOptions, HasManyRelationProp, IntegerProp, InternalServerErrorException, JsonProp, KnexBaseConfig, KnexConfig, KyselyBaseConfig, KyselyConfig, ManyToManyRelationProp, MigrationColumn, MigrationForeign, MigrationIndex, MigrationSet, MigrationSetAndJoinTable, type MigrationStatus, Migrator, type MigratorOptions, NotFoundException, OneToOneRelationProp, PathAndCode, RelationProp, type RenderedTemplate, RenderingNode, type ServiceClient, ServiceUnavailableException, SoException, Sonamu, type SonamuConfig, SonamuDBBaseConfig, SonamuDBConfig, SonamuKnexDBConfig, SonamuKyselyDBConfig, type SonamuSecrets, StringProp, SubsetQuery, Syncer, TargetNotFoundException, TemplateKey, TemplateOptions, TextProp, TimeProp, TimestampProp, UnauthorizedException, UuidProp, VirtualProp, api, apiParamToTsCode, apiParamTypeToTsType, findApiRootPath, findAppRootPath, getTextTypeLength, getZodObjectFromApi, getZodObjectFromApiParams, getZodTypeFromApiParamType, globAsync, hydrate, i, importMultiple, isDaemonServer, isDevelopment, isInDocker, isLocal, isProduction, isRemote, isSoException, isStaging, isTest, nonNullable, p, propNodeToZodTypeDef, propToZodTypeDef, registeredApis, serializeZodType, setupErrorHandler, unwrapPromiseOnce, zodTypeToTsTypeDef, zodTypeToZodCode };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { A as ApiParamType, e as ApiParam, E as EntityPropNode, T as TextProp, f as EntityProp, R as RelationProp, g as EntityIndex, h as EntityJson, S as SubsetQuery, i as EntitySubsetRow, j as TemplateKey, k as TemplateOptions, P as PathAndCode, G as GenerateOptions, l as RenderingNode, m as SonamuDBConfig, c as DatabaseDriver, K as KnexClient, b as KyselyClient, D as DBPreset, a as Database, n as SonamuDBBaseConfig, o as KnexConfig, p as KyselyConfig, q as KnexGenerator, r as KnexBaseConfig, s as SonamuKnexDBConfig, C as CodeGenerator, M as MigrationColumn, t as MigrationIndex, u as GenMigrationCode, v as MigrationForeign, w as KyselyBaseConfig, x as SonamuKyselyDBConfig, y as DatabaseExtend, I as IntegerProp, z as BigIntegerProp, F as StringProp, H as FloatProp, J as DoubleProp, L as DecimalProp, N as BooleanProp, O as DateProp, Q as DateTimeProp, V as TimeProp, W as TimestampProp, X as JsonProp, Y as UuidProp, Z as EnumProp, _ as VirtualProp, $ as DistributiveOmit, a0 as OneToOneRelationProp, a1 as BelongsToOneRelationProp, a2 as HasManyRelationProp, a3 as ManyToManyRelationProp, a4 as MigrationSet, a5 as MigrationSetAndJoinTable, a6 as FixtureSearchOptions, a7 as FixtureRecord, a8 as FixtureImportResult } from './model-CAH_4oQh.js';
3
- export { aS as ArrayOr, B as BaseListParams, aj as CommonProp, ac as DatabaseClient, d as DriverSpec, af as EnumsLabel, ag as EnumsLabelKo, ad as Environment, am as FlattenSubsetRow, aO as KnexColumnType, aL as KnexError, aR as ListResult, aP as MigrationJoinTable, aQ as RelationNode, al as RelationOn, ak as RelationType, an as SMDInput, ah as SQLDateTimeString, ae as SonamuDBFullConfig, aK as SonamuQueryMode, a9 as UBRef, U as UpsertBuilder, ab as WhereClause, aT as asArray, aG as isBelongsToOneRelationProp, ap as isBigIntegerProp, aw as isBooleanProp, aJ as isCustomJoinClause, ax as isDateProp, ay as isDateTimeProp, av as isDecimalProp, au as isDoubleProp, as as isEnumProp, at as isFloatProp, aH as isHasManyRelationProp, ao as isIntegerProp, aB as isJsonProp, aM as isKnexError, aN as isKyselyError, aI as isManyToManyRelationProp, aF as isOneToOneRelationProp, aa as isRefField, aE as isRelationProp, ar as isStringProp, aq as isTextProp, az as isTimeProp, aA as isTimestampProp, aC as isUuidProp, aD as isVirtualProp, aU as objToMap, ai as zArrayable } from './model-CAH_4oQh.js';
2
+ import { A as ApiParamType, e as ApiParam, E as EntityPropNode, T as TextProp, f as EntityProp, R as RelationProp, g as EntityIndex, h as EntityJson, S as SubsetQuery, i as EntitySubsetRow, j as TemplateKey, k as TemplateOptions, P as PathAndCode, G as GenerateOptions, l as RenderingNode, m as SonamuDBConfig, c as DatabaseDriver, K as KnexClient, b as KyselyClient, D as DBPreset, a as Database, n as SonamuDBBaseConfig, o as KnexConfig, p as KyselyConfig, q as KnexGenerator, r as KnexBaseConfig, s as SonamuKnexDBConfig, C as CodeGenerator, M as MigrationColumn, t as MigrationIndex, u as GenMigrationCode, v as MigrationForeign, w as KyselyBaseConfig, x as SonamuKyselyDBConfig, y as DatabaseExtend, I as IntegerProp, z as BigIntegerProp, F as StringProp, H as FloatProp, J as DoubleProp, L as DecimalProp, N as BooleanProp, O as DateProp, Q as DateTimeProp, V as TimeProp, W as TimestampProp, X as JsonProp, Y as UuidProp, Z as EnumProp, _ as VirtualProp, $ as DistributiveOmit, a0 as OneToOneRelationProp, a1 as BelongsToOneRelationProp, a2 as HasManyRelationProp, a3 as ManyToManyRelationProp, a4 as MigrationSet, a5 as MigrationSetAndJoinTable, a6 as FixtureSearchOptions, a7 as FixtureRecord, a8 as FixtureImportResult } from './model-Dbbfpk2X.js';
3
+ export { aS as ArrayOr, B as BaseListParams, aj as CommonProp, ac as DatabaseClient, d as DriverSpec, af as EnumsLabel, ag as EnumsLabelKo, ad as Environment, am as FlattenSubsetRow, aO as KnexColumnType, aL as KnexError, aR as ListResult, aP as MigrationJoinTable, aQ as RelationNode, al as RelationOn, ak as RelationType, an as SMDInput, ah as SQLDateTimeString, ae as SonamuDBFullConfig, aK as SonamuQueryMode, a9 as UBRef, U as UpsertBuilder, ab as WhereClause, aT as asArray, aG as isBelongsToOneRelationProp, ap as isBigIntegerProp, aw as isBooleanProp, aJ as isCustomJoinClause, ax as isDateProp, ay as isDateTimeProp, av as isDecimalProp, au as isDoubleProp, as as isEnumProp, at as isFloatProp, aH as isHasManyRelationProp, ao as isIntegerProp, aB as isJsonProp, aM as isKnexError, aN as isKyselyError, aI as isManyToManyRelationProp, aF as isOneToOneRelationProp, aa as isRefField, aE as isRelationProp, ar as isStringProp, aq as isTextProp, az as isTimeProp, aA as isTimestampProp, aC as isUuidProp, aD as isVirtualProp, aU as objToMap, ai as zArrayable } from './model-Dbbfpk2X.js';
4
4
  import { HTTPMethods, FastifyReply, FastifyInstance, FastifyRequest } from 'fastify';
5
5
  import { RouteGenericInterface } from 'fastify/types/route';
6
6
  import { Server, IncomingMessage, ServerResponse, IncomingHttpHeaders } from 'http';
@@ -423,7 +423,7 @@ declare class DBKnexClass extends DBClass {
423
423
  destroy(): Promise<void>;
424
424
  testDestroy(): Promise<void>;
425
425
  raw(db: Knex, query: string): Knex.Raw<any>;
426
- private generateDBConfig;
426
+ generateDBConfig(config: KnexBaseConfig): SonamuKnexDBConfig;
427
427
  /**
428
428
  * keys에 해당하는 설정들을 중복없이 가져옵니다. (host/port/database가 같은 설정은 중복으로 처리합니다.)
429
429
  */
@@ -525,7 +525,7 @@ declare class DBKyselyClass extends DBClass {
525
525
  destroy(): Promise<void>;
526
526
  testDestroy(): Promise<void>;
527
527
  raw(db: Kysely<Database>, query: string): Promise<kysely.QueryResult<unknown>>;
528
- private generateDBConfig;
528
+ generateDBConfig(config: KyselyBaseConfig): SonamuKyselyDBConfig;
529
529
  /**
530
530
  * keys에 해당하는 설정들을 중복없이 가져옵니다. (host/port/database가 같은 설정은 중복으로 처리합니다.)
531
531
  */
@@ -784,4 +784,4 @@ declare function findApiRootPath(): string;
784
784
  declare function nonNullable<T>(value: T): value is NonNullable<T>;
785
785
  declare function hydrate<T>(rows: T[]): T[];
786
786
 
787
- export { AlreadyProcessedException, type ApiDecoratorOptions, ApiParam, ApiParamType, BadRequestException, BelongsToOneRelationProp, BigIntegerProp, BooleanProp, type Context, type ContextExtend, DB, DBPreset, Database, DatabaseDriver, DatabaseExtend, DateProp, DateTimeProp, DecimalProp, DistributiveOmit, DoubleProp, DuplicateRowException, Entity, EntityIndex, EntityJson, EntityManager, type EntityNamesRecord, EntityProp, EntityPropNode, EntitySubsetRow, EnumProp, type ExtendedApi, FixtureImportResult, FixtureManager, FixtureManagerClass, FixtureRecord, FixtureSearchOptions, FloatProp, GenMigrationCode, GenerateOptions, HasManyRelationProp, IntegerProp, InternalServerErrorException, JsonProp, KnexBaseConfig, KnexConfig, KyselyBaseConfig, KyselyConfig, ManyToManyRelationProp, MigrationColumn, MigrationForeign, MigrationIndex, MigrationSet, MigrationSetAndJoinTable, type MigrationStatus, Migrator, type MigratorOptions, NotFoundException, OneToOneRelationProp, PathAndCode, RelationProp, type RenderedTemplate, RenderingNode, type ServiceClient, ServiceUnavailableException, SoException, Sonamu, type SonamuConfig, SonamuDBBaseConfig, SonamuDBConfig, SonamuKnexDBConfig, SonamuKyselyDBConfig, type SonamuSecrets, StringProp, SubsetQuery, Syncer, TargetNotFoundException, TemplateKey, TemplateOptions, TextProp, TimeProp, TimestampProp, UnauthorizedException, UuidProp, VirtualProp, api, apiParamToTsCode, apiParamTypeToTsType, findApiRootPath, findAppRootPath, getTextTypeLength, getZodObjectFromApi, getZodObjectFromApiParams, getZodTypeFromApiParamType, globAsync, hydrate, i, importMultiple, isDaemonServer, isDevelopment, isInDocker, isLocal, isProduction, isRemote, isSoException, isStaging, isTest, nonNullable, p, propNodeToZodTypeDef, propToZodTypeDef, registeredApis, serializeZodType, setupErrorHandler, unwrapPromiseOnce, zodTypeToTsTypeDef, zodTypeToZodCode };
787
+ export { AlreadyProcessedException, type ApiDecoratorOptions, ApiParam, ApiParamType, BadRequestException, BelongsToOneRelationProp, BigIntegerProp, BooleanProp, type Context, type ContextExtend, DB, DBKnexClass, DBKyselyClass, DBPreset, Database, DatabaseDriver, DatabaseExtend, DateProp, DateTimeProp, DecimalProp, DistributiveOmit, DoubleProp, DuplicateRowException, Entity, EntityIndex, EntityJson, EntityManager, type EntityNamesRecord, EntityProp, EntityPropNode, EntitySubsetRow, EnumProp, type ExtendedApi, FixtureImportResult, FixtureManager, FixtureManagerClass, FixtureRecord, FixtureSearchOptions, FloatProp, GenMigrationCode, GenerateOptions, HasManyRelationProp, IntegerProp, InternalServerErrorException, JsonProp, KnexBaseConfig, KnexConfig, KyselyBaseConfig, KyselyConfig, ManyToManyRelationProp, MigrationColumn, MigrationForeign, MigrationIndex, MigrationSet, MigrationSetAndJoinTable, type MigrationStatus, Migrator, type MigratorOptions, NotFoundException, OneToOneRelationProp, PathAndCode, RelationProp, type RenderedTemplate, RenderingNode, type ServiceClient, ServiceUnavailableException, SoException, Sonamu, type SonamuConfig, SonamuDBBaseConfig, SonamuDBConfig, SonamuKnexDBConfig, SonamuKyselyDBConfig, type SonamuSecrets, StringProp, SubsetQuery, Syncer, TargetNotFoundException, TemplateKey, TemplateOptions, TextProp, TimeProp, TimestampProp, UnauthorizedException, UuidProp, VirtualProp, api, apiParamToTsCode, apiParamTypeToTsType, findApiRootPath, findAppRootPath, getTextTypeLength, getZodObjectFromApi, getZodObjectFromApiParams, getZodTypeFromApiParamType, globAsync, hydrate, i, importMultiple, isDaemonServer, isDevelopment, isInDocker, isLocal, isProduction, isRemote, isSoException, isStaging, isTest, nonNullable, p, propNodeToZodTypeDef, propToZodTypeDef, registeredApis, serializeZodType, setupErrorHandler, unwrapPromiseOnce, zodTypeToTsTypeDef, zodTypeToZodCode };
package/dist/index.js CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkEUP6N7EKjs = require('./chunk-EUP6N7EK.js');
5
+ var _chunk6HM2HY4Wjs = require('./chunk-6HM2HY4W.js');
6
6
 
7
7
 
8
8
 
9
- var _chunkUAG3SKFMjs = require('./chunk-UAG3SKFM.js');
9
+ var _chunkJNQQ3K3Ejs = require('./chunk-JNQQ3K3E.js');
10
10
 
11
11
 
12
12
 
@@ -86,13 +86,15 @@ var _chunkUAG3SKFMjs = require('./chunk-UAG3SKFM.js');
86
86
 
87
87
 
88
88
 
89
- var _chunkWJGRXAXEjs = require('./chunk-WJGRXAXE.js');
89
+
90
+
91
+ var _chunk54T42DSAjs = require('./chunk-54T42DSA.js');
90
92
 
91
93
  // src/exceptions/error-handler.ts
92
94
  function setupErrorHandler(server) {
93
95
  server.setErrorHandler((error, request, reply) => {
94
96
  error.statusCode ??= 400;
95
- if (_chunkWJGRXAXEjs.isSoException.call(void 0, error) && error.payload && Array.isArray(error.payload)) {
97
+ if (_chunk54T42DSAjs.isSoException.call(void 0, error) && error.payload && Array.isArray(error.payload)) {
96
98
  const issues = error.payload;
97
99
  const [issue] = issues;
98
100
  const message = `${issue.message} (${issue.path.join("/")})`;
@@ -314,13 +316,13 @@ var i = {
314
316
  function index(columns) {
315
317
  return {
316
318
  type: "index",
317
- columns: _chunkWJGRXAXEjs.asArray.call(void 0, columns)
319
+ columns: _chunk54T42DSAjs.asArray.call(void 0, columns)
318
320
  };
319
321
  }
320
322
  function unique(columns) {
321
323
  return {
322
324
  type: "unique",
323
- columns: _chunkWJGRXAXEjs.asArray.call(void 0, columns)
325
+ columns: _chunk54T42DSAjs.asArray.call(void 0, columns)
324
326
  };
325
327
  }
326
328
 
@@ -410,5 +412,7 @@ function unique(columns) {
410
412
 
411
413
 
412
414
 
413
- exports.AlreadyProcessedException = _chunkWJGRXAXEjs.AlreadyProcessedException; exports.ApiParamType = _chunkWJGRXAXEjs.ApiParamType; exports.BadRequestException = _chunkWJGRXAXEjs.BadRequestException; exports.DB = _chunkWJGRXAXEjs.DB; exports.DuplicateRowException = _chunkWJGRXAXEjs.DuplicateRowException; exports.Entity = _chunkWJGRXAXEjs.Entity; exports.EntityManager = _chunkWJGRXAXEjs.EntityManager; exports.FixtureManager = _chunkEUP6N7EKjs.FixtureManager; exports.FixtureManagerClass = _chunkEUP6N7EKjs.FixtureManagerClass; exports.GenerateOptions = _chunkWJGRXAXEjs.GenerateOptions; exports.InternalServerErrorException = _chunkWJGRXAXEjs.InternalServerErrorException; exports.Migrator = _chunkEUP6N7EKjs.Migrator; exports.NotFoundException = _chunkWJGRXAXEjs.NotFoundException; exports.PathAndCode = _chunkWJGRXAXEjs.PathAndCode; exports.RenderingNode = _chunkWJGRXAXEjs.RenderingNode; exports.SQLDateTimeString = _chunkWJGRXAXEjs.SQLDateTimeString; exports.ServiceUnavailableException = _chunkWJGRXAXEjs.ServiceUnavailableException; exports.SoException = _chunkWJGRXAXEjs.SoException; exports.Sonamu = _chunkWJGRXAXEjs.Sonamu; exports.SonamuQueryMode = _chunkWJGRXAXEjs.SonamuQueryMode; exports.Syncer = _chunkWJGRXAXEjs.Syncer; exports.TargetNotFoundException = _chunkWJGRXAXEjs.TargetNotFoundException; exports.TemplateKey = _chunkWJGRXAXEjs.TemplateKey; exports.TemplateOptions = _chunkWJGRXAXEjs.TemplateOptions; exports.UnauthorizedException = _chunkWJGRXAXEjs.UnauthorizedException; exports.UpsertBuilder = _chunkUAG3SKFMjs.UpsertBuilder; exports.api = _chunkWJGRXAXEjs.api; exports.apiParamToTsCode = _chunkWJGRXAXEjs.apiParamToTsCode; exports.apiParamTypeToTsType = _chunkWJGRXAXEjs.apiParamTypeToTsType; exports.asArray = _chunkWJGRXAXEjs.asArray; exports.findApiRootPath = _chunkWJGRXAXEjs.findApiRootPath; exports.findAppRootPath = _chunkWJGRXAXEjs.findAppRootPath; exports.getTextTypeLength = _chunkWJGRXAXEjs.getTextTypeLength; exports.getZodObjectFromApi = _chunkWJGRXAXEjs.getZodObjectFromApi; exports.getZodObjectFromApiParams = _chunkWJGRXAXEjs.getZodObjectFromApiParams; exports.getZodTypeFromApiParamType = _chunkWJGRXAXEjs.getZodTypeFromApiParamType; exports.globAsync = _chunkWJGRXAXEjs.globAsync; exports.hydrate = _chunkWJGRXAXEjs.hydrate; exports.i = i; exports.importMultiple = _chunkWJGRXAXEjs.importMultiple; exports.isBelongsToOneRelationProp = _chunkWJGRXAXEjs.isBelongsToOneRelationProp; exports.isBigIntegerProp = _chunkWJGRXAXEjs.isBigIntegerProp; exports.isBooleanProp = _chunkWJGRXAXEjs.isBooleanProp; exports.isCustomJoinClause = _chunkWJGRXAXEjs.isCustomJoinClause; exports.isDaemonServer = _chunkWJGRXAXEjs.isDaemonServer; exports.isDateProp = _chunkWJGRXAXEjs.isDateProp; exports.isDateTimeProp = _chunkWJGRXAXEjs.isDateTimeProp; exports.isDecimalProp = _chunkWJGRXAXEjs.isDecimalProp; exports.isDevelopment = _chunkWJGRXAXEjs.isDevelopment; exports.isDoubleProp = _chunkWJGRXAXEjs.isDoubleProp; exports.isEnumProp = _chunkWJGRXAXEjs.isEnumProp; exports.isFloatProp = _chunkWJGRXAXEjs.isFloatProp; exports.isHasManyRelationProp = _chunkWJGRXAXEjs.isHasManyRelationProp; exports.isInDocker = _chunkWJGRXAXEjs.isInDocker; exports.isIntegerProp = _chunkWJGRXAXEjs.isIntegerProp; exports.isJsonProp = _chunkWJGRXAXEjs.isJsonProp; exports.isKnexError = _chunkWJGRXAXEjs.isKnexError; exports.isKyselyError = _chunkWJGRXAXEjs.isKyselyError; exports.isLocal = _chunkWJGRXAXEjs.isLocal; exports.isManyToManyRelationProp = _chunkWJGRXAXEjs.isManyToManyRelationProp; exports.isOneToOneRelationProp = _chunkWJGRXAXEjs.isOneToOneRelationProp; exports.isProduction = _chunkWJGRXAXEjs.isProduction; exports.isRefField = _chunkUAG3SKFMjs.isRefField; exports.isRelationProp = _chunkWJGRXAXEjs.isRelationProp; exports.isRemote = _chunkWJGRXAXEjs.isRemote; exports.isSoException = _chunkWJGRXAXEjs.isSoException; exports.isStaging = _chunkWJGRXAXEjs.isStaging; exports.isStringProp = _chunkWJGRXAXEjs.isStringProp; exports.isTest = _chunkWJGRXAXEjs.isTest; exports.isTextProp = _chunkWJGRXAXEjs.isTextProp; exports.isTimeProp = _chunkWJGRXAXEjs.isTimeProp; exports.isTimestampProp = _chunkWJGRXAXEjs.isTimestampProp; exports.isUuidProp = _chunkWJGRXAXEjs.isUuidProp; exports.isVirtualProp = _chunkWJGRXAXEjs.isVirtualProp; exports.nonNullable = _chunkWJGRXAXEjs.nonNullable; exports.objToMap = _chunkWJGRXAXEjs.objToMap; exports.p = p; exports.propNodeToZodTypeDef = _chunkWJGRXAXEjs.propNodeToZodTypeDef; exports.propToZodTypeDef = _chunkWJGRXAXEjs.propToZodTypeDef; exports.registeredApis = _chunkWJGRXAXEjs.registeredApis; exports.serializeZodType = _chunkWJGRXAXEjs.serializeZodType; exports.setupErrorHandler = setupErrorHandler; exports.unwrapPromiseOnce = _chunkWJGRXAXEjs.unwrapPromiseOnce; exports.zArrayable = _chunkWJGRXAXEjs.zArrayable; exports.zodTypeToTsTypeDef = _chunkWJGRXAXEjs.zodTypeToTsTypeDef; exports.zodTypeToZodCode = _chunkWJGRXAXEjs.zodTypeToZodCode;
415
+
416
+
417
+ exports.AlreadyProcessedException = _chunk54T42DSAjs.AlreadyProcessedException; exports.ApiParamType = _chunk54T42DSAjs.ApiParamType; exports.BadRequestException = _chunk54T42DSAjs.BadRequestException; exports.DB = _chunk54T42DSAjs.DB; exports.DBKnexClass = _chunk54T42DSAjs.DBKnexClass; exports.DBKyselyClass = _chunk54T42DSAjs.DBKyselyClass; exports.DuplicateRowException = _chunk54T42DSAjs.DuplicateRowException; exports.Entity = _chunk54T42DSAjs.Entity; exports.EntityManager = _chunk54T42DSAjs.EntityManager; exports.FixtureManager = _chunk6HM2HY4Wjs.FixtureManager; exports.FixtureManagerClass = _chunk6HM2HY4Wjs.FixtureManagerClass; exports.GenerateOptions = _chunk54T42DSAjs.GenerateOptions; exports.InternalServerErrorException = _chunk54T42DSAjs.InternalServerErrorException; exports.Migrator = _chunk6HM2HY4Wjs.Migrator; exports.NotFoundException = _chunk54T42DSAjs.NotFoundException; exports.PathAndCode = _chunk54T42DSAjs.PathAndCode; exports.RenderingNode = _chunk54T42DSAjs.RenderingNode; exports.SQLDateTimeString = _chunk54T42DSAjs.SQLDateTimeString; exports.ServiceUnavailableException = _chunk54T42DSAjs.ServiceUnavailableException; exports.SoException = _chunk54T42DSAjs.SoException; exports.Sonamu = _chunk54T42DSAjs.Sonamu; exports.SonamuQueryMode = _chunk54T42DSAjs.SonamuQueryMode; exports.Syncer = _chunk54T42DSAjs.Syncer; exports.TargetNotFoundException = _chunk54T42DSAjs.TargetNotFoundException; exports.TemplateKey = _chunk54T42DSAjs.TemplateKey; exports.TemplateOptions = _chunk54T42DSAjs.TemplateOptions; exports.UnauthorizedException = _chunk54T42DSAjs.UnauthorizedException; exports.UpsertBuilder = _chunkJNQQ3K3Ejs.UpsertBuilder; exports.api = _chunk54T42DSAjs.api; exports.apiParamToTsCode = _chunk54T42DSAjs.apiParamToTsCode; exports.apiParamTypeToTsType = _chunk54T42DSAjs.apiParamTypeToTsType; exports.asArray = _chunk54T42DSAjs.asArray; exports.findApiRootPath = _chunk54T42DSAjs.findApiRootPath; exports.findAppRootPath = _chunk54T42DSAjs.findAppRootPath; exports.getTextTypeLength = _chunk54T42DSAjs.getTextTypeLength; exports.getZodObjectFromApi = _chunk54T42DSAjs.getZodObjectFromApi; exports.getZodObjectFromApiParams = _chunk54T42DSAjs.getZodObjectFromApiParams; exports.getZodTypeFromApiParamType = _chunk54T42DSAjs.getZodTypeFromApiParamType; exports.globAsync = _chunk54T42DSAjs.globAsync; exports.hydrate = _chunk54T42DSAjs.hydrate; exports.i = i; exports.importMultiple = _chunk54T42DSAjs.importMultiple; exports.isBelongsToOneRelationProp = _chunk54T42DSAjs.isBelongsToOneRelationProp; exports.isBigIntegerProp = _chunk54T42DSAjs.isBigIntegerProp; exports.isBooleanProp = _chunk54T42DSAjs.isBooleanProp; exports.isCustomJoinClause = _chunk54T42DSAjs.isCustomJoinClause; exports.isDaemonServer = _chunk54T42DSAjs.isDaemonServer; exports.isDateProp = _chunk54T42DSAjs.isDateProp; exports.isDateTimeProp = _chunk54T42DSAjs.isDateTimeProp; exports.isDecimalProp = _chunk54T42DSAjs.isDecimalProp; exports.isDevelopment = _chunk54T42DSAjs.isDevelopment; exports.isDoubleProp = _chunk54T42DSAjs.isDoubleProp; exports.isEnumProp = _chunk54T42DSAjs.isEnumProp; exports.isFloatProp = _chunk54T42DSAjs.isFloatProp; exports.isHasManyRelationProp = _chunk54T42DSAjs.isHasManyRelationProp; exports.isInDocker = _chunk54T42DSAjs.isInDocker; exports.isIntegerProp = _chunk54T42DSAjs.isIntegerProp; exports.isJsonProp = _chunk54T42DSAjs.isJsonProp; exports.isKnexError = _chunk54T42DSAjs.isKnexError; exports.isKyselyError = _chunk54T42DSAjs.isKyselyError; exports.isLocal = _chunk54T42DSAjs.isLocal; exports.isManyToManyRelationProp = _chunk54T42DSAjs.isManyToManyRelationProp; exports.isOneToOneRelationProp = _chunk54T42DSAjs.isOneToOneRelationProp; exports.isProduction = _chunk54T42DSAjs.isProduction; exports.isRefField = _chunkJNQQ3K3Ejs.isRefField; exports.isRelationProp = _chunk54T42DSAjs.isRelationProp; exports.isRemote = _chunk54T42DSAjs.isRemote; exports.isSoException = _chunk54T42DSAjs.isSoException; exports.isStaging = _chunk54T42DSAjs.isStaging; exports.isStringProp = _chunk54T42DSAjs.isStringProp; exports.isTest = _chunk54T42DSAjs.isTest; exports.isTextProp = _chunk54T42DSAjs.isTextProp; exports.isTimeProp = _chunk54T42DSAjs.isTimeProp; exports.isTimestampProp = _chunk54T42DSAjs.isTimestampProp; exports.isUuidProp = _chunk54T42DSAjs.isUuidProp; exports.isVirtualProp = _chunk54T42DSAjs.isVirtualProp; exports.nonNullable = _chunk54T42DSAjs.nonNullable; exports.objToMap = _chunk54T42DSAjs.objToMap; exports.p = p; exports.propNodeToZodTypeDef = _chunk54T42DSAjs.propNodeToZodTypeDef; exports.propToZodTypeDef = _chunk54T42DSAjs.propToZodTypeDef; exports.registeredApis = _chunk54T42DSAjs.registeredApis; exports.serializeZodType = _chunk54T42DSAjs.serializeZodType; exports.setupErrorHandler = setupErrorHandler; exports.unwrapPromiseOnce = _chunk54T42DSAjs.unwrapPromiseOnce; exports.zArrayable = _chunk54T42DSAjs.zArrayable; exports.zodTypeToTsTypeDef = _chunk54T42DSAjs.zodTypeToTsTypeDef; exports.zodTypeToZodCode = _chunk54T42DSAjs.zodTypeToZodCode;
414
418
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/exceptions/error-handler.ts","../src/entity/entity-utils.ts"],"names":[],"mappings":"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","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"]}
1
+ {"version":3,"sources":["../src/exceptions/error-handler.ts","../src/entity/entity-utils.ts"],"names":[],"mappings":"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","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"]}
package/dist/index.mjs CHANGED
@@ -2,16 +2,18 @@ import {
2
2
  FixtureManager,
3
3
  FixtureManagerClass,
4
4
  Migrator
5
- } from "./chunk-6SP5N5ND.mjs";
5
+ } from "./chunk-HRZ23FCT.mjs";
6
6
  import {
7
7
  UpsertBuilder,
8
8
  isRefField
9
- } from "./chunk-HVVCQLAU.mjs";
9
+ } from "./chunk-5CB4CKVQ.mjs";
10
10
  import {
11
11
  AlreadyProcessedException,
12
12
  ApiParamType,
13
13
  BadRequestException,
14
14
  DB,
15
+ DBKnexClass,
16
+ DBKyselyClass,
15
17
  DuplicateRowException,
16
18
  Entity,
17
19
  EntityManager,
@@ -86,7 +88,7 @@ import {
86
88
  zArrayable,
87
89
  zodTypeToTsTypeDef,
88
90
  zodTypeToZodCode
89
- } from "./chunk-ZFLQLW37.mjs";
91
+ } from "./chunk-YOH4CHWQ.mjs";
90
92
  import "./chunk-PTFDTOJU.mjs";
91
93
 
92
94
  // src/exceptions/error-handler.ts
@@ -329,6 +331,8 @@ export {
329
331
  ApiParamType,
330
332
  BadRequestException,
331
333
  DB,
334
+ DBKnexClass,
335
+ DBKyselyClass,
332
336
  DuplicateRowException,
333
337
  Entity,
334
338
  EntityManager,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/exceptions/error-handler.ts","../src/entity/entity-utils.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"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/exceptions/error-handler.ts","../src/entity/entity-utils.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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,SAAS,kBAAkB,QAAyB;AACzD,SAAO,gBAAgB,CAAC,OAAO,SAAS,UAAU;AAChD,UAAM,eAAe;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;AA2BhB,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":[]}
@@ -946,7 +946,7 @@ interface DatabaseClient<T extends DatabaseDriver> {
946
946
  destroy(): Promise<void>;
947
947
  getMigrations(): Promise<string[]>;
948
948
  }
949
- type Environment = "development" | "development_slave" | "production" | "production_slave";
949
+ type Environment = "development" | "development_slave" | "production" | "production_slave" | "test";
950
950
  type EnvironmentConfigs<T> = {
951
951
  [K in Environment]?: Partial<T>;
952
952
  };
@@ -946,7 +946,7 @@ interface DatabaseClient<T extends DatabaseDriver> {
946
946
  destroy(): Promise<void>;
947
947
  getMigrations(): Promise<string[]>;
948
948
  }
949
- type Environment = "development" | "development_slave" | "production" | "production_slave";
949
+ type Environment = "development" | "development_slave" | "production" | "production_slave" | "test";
950
950
  type EnvironmentConfigs<T> = {
951
951
  [K in Environment]?: Partial<T>;
952
952
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sonamu",
3
- "version": "0.4.5",
3
+ "version": "0.4.7",
4
4
  "description": "Sonamu — TypeScript Fullstack API Framework",
5
5
  "keywords": [
6
6
  "typescript",
@@ -133,7 +133,7 @@ export class DBKnexClass extends DBClass {
133
133
  return db.raw(query);
134
134
  }
135
135
 
136
- private generateDBConfig(config: KnexBaseConfig): SonamuKnexDBConfig {
136
+ public generateDBConfig(config: KnexBaseConfig): SonamuKnexDBConfig {
137
137
  const defaultKnexConfig = _.merge(
138
138
  {
139
139
  client: "mysql2",
@@ -155,11 +155,16 @@ export class DBKnexClass extends DBClass {
155
155
  );
156
156
 
157
157
  // 로컬 환경 설정
158
- const test = _.merge({}, defaultKnexConfig, {
159
- connection: {
160
- database: `${config.database}_test`,
158
+ const test = _.merge(
159
+ {},
160
+ defaultKnexConfig,
161
+ {
162
+ connection: {
163
+ database: `${config.database}_test`,
164
+ },
161
165
  },
162
- });
166
+ config.environments?.test
167
+ );
163
168
 
164
169
  const fixture_local = _.merge({}, defaultKnexConfig, {
165
170
  connection: {
@@ -152,7 +152,7 @@ export class DBKyselyClass extends DBClass {
152
152
  return sql`${query}`.execute(db);
153
153
  }
154
154
 
155
- private generateDBConfig(config: KyselyBaseConfig): SonamuKyselyDBConfig {
155
+ public generateDBConfig(config: KyselyBaseConfig): SonamuKyselyDBConfig {
156
156
  const defaultKyselyConfig = _.merge(
157
157
  {
158
158
  migration: {
@@ -63,7 +63,8 @@ export type Environment =
63
63
  | "development"
64
64
  | "development_slave"
65
65
  | "production"
66
- | "production_slave";
66
+ | "production_slave"
67
+ | "test";
67
68
  type EnvironmentConfigs<T> = {
68
69
  [K in Environment]?: Partial<T>;
69
70
  };
package/src/index.ts CHANGED
@@ -17,3 +17,5 @@ export * from "./types/types";
17
17
  export * from "./utils/controller";
18
18
  export * from "./utils/model";
19
19
  export * from "./utils/utils";
20
+ export { DBKnexClass } from "./database/drivers/knex/db";
21
+ export { DBKyselyClass } from "./database/drivers/kysely/db";