@asapjs/sequelize 1.0.0-alpha.15 → 1.0.0-alpha.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,8 @@
1
1
  import { SchemaFactory, SchemaOptions, BaseSchemaType } from '@asapjs/schema';
2
2
  export interface QueryOptions extends SchemaOptions {
3
3
  query: (association: string, user?: any) => string;
4
+ /** 컬럼 타입 (toSequelize 시 type()으로 컬럼 정의에 사용) */
5
+ type?: () => any;
4
6
  }
5
7
  export interface ForeignKeyOptions extends SchemaOptions {
6
8
  references: {
@@ -25,10 +27,22 @@ declare module '@asapjs/schema' {
25
27
  export declare class QueryType extends BaseSchemaType<any> {
26
28
  __name: string;
27
29
  private queryFn;
30
+ private typeGetter?;
28
31
  constructor(options: QueryOptions);
29
32
  validate(value: any): boolean;
30
33
  parse(value: any): any;
31
34
  getQuery(association: string, user?: any): string;
35
+ /**
36
+ * 레거시 TypeIsQueryToSequelize와 동일한 형식.
37
+ * schema의 sequelize 플러그인은 'query'를 처리하지 않으므로 직접 반환.
38
+ */
39
+ toSequelize(): {
40
+ query: (props: {
41
+ user?: any;
42
+ association?: string;
43
+ }) => string;
44
+ type?: () => any;
45
+ };
32
46
  }
33
47
  export declare class ForeignKeyType extends BaseSchemaType<number | string> {
34
48
  __name: string;
@@ -39,6 +53,20 @@ export declare class ForeignKeyType extends BaseSchemaType<number | string> {
39
53
  constructor(options: ForeignKeyOptions);
40
54
  validate(value: any): boolean;
41
55
  parse(value: any): number | string;
56
+ /**
57
+ * BaseSchemaType.toSequelize()는 plugin.transform()을 호출하는데,
58
+ * schema의 sequelize 플러그인은 'foreignkey'를 처리하지 않음.
59
+ * TypeIsForienKeyAddColumn이 기대하는 { table, extraData } 형식을 직접 반환..
60
+ */
61
+ toSequelize(): {
62
+ table: {
63
+ model: string;
64
+ key: string;
65
+ };
66
+ extraData?: {
67
+ type?: () => any;
68
+ };
69
+ };
42
70
  }
43
71
  export declare class BelongsToType extends BaseSchemaType<any> {
44
72
  __name: string;
@@ -48,5 +76,17 @@ export declare class BelongsToType extends BaseSchemaType<any> {
48
76
  constructor(options: BelongsToOptions);
49
77
  validate(value: any): boolean;
50
78
  parse(value: any): any;
79
+ /**
80
+ * BaseSchemaType.toSequelize()는 plugin.transform()을 호출하는데,
81
+ * schema의 sequelize 플러그인은 'belongsto'를 처리하지 않음.
82
+ * TypeIsBelongsToAddColumn이 기대하는 { associatedClassGetter, optionsOrForeignKey } 형식을 직접 반환.
83
+ */
84
+ toSequelize(): {
85
+ associatedClassGetter: () => any;
86
+ optionsOrForeignKey?: string | {
87
+ foreignKey?: string;
88
+ as?: string;
89
+ };
90
+ };
51
91
  }
52
92
  //# sourceMappingURL=schema-extensions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-extensions.d.ts","sourceRoot":"","sources":["../../src/types/schema-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG9E,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;CACpD;AAGD,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;IAC7D,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;CAC9D;AAGD,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAGD,OAAO,QAAQ,gBAAgB,CAAC;IAC9B,UAAU,eAAe;QAEvB,KAAK,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QACpC,UAAU,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAC9C,SAAS,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;KAC7C;CACF;AAGD,qBAAa,SAAU,SAAQ,cAAc,CAAC,GAAG,CAAC;IAChD,MAAM,SAAW;IACjB,OAAO,CAAC,OAAO,CAA8C;gBAEjD,OAAO,EAAE,YAAY;IAKjC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAK7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG;IAItB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,MAAM;CAGlD;AAGD,qBAAa,cAAe,SAAQ,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC;IACjE,MAAM,SAAgB;IACtB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;gBAE/B,OAAO,EAAE,iBAAiB;IAKtC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAI7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,MAAM;CAGnC;AAGD,qBAAa,aAAc,SAAQ,cAAc,CAAC,GAAG,CAAC;IACpD,MAAM,SAAe;IACrB,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;gBAEA,OAAO,EAAE,gBAAgB;IAOrC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAI7B,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG;CAGvB"}
1
+ {"version":3,"file":"schema-extensions.d.ts","sourceRoot":"","sources":["../../src/types/schema-extensions.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ class QueryType extends schema_1.BaseSchemaType {
8
8
  super(options);
9
9
  this.__name = 'query';
10
10
  this.queryFn = options.query;
11
+ this.typeGetter = options.type;
11
12
  }
12
13
  validate(value) {
13
14
  // QUERY는 실행 결과를 검증
@@ -19,6 +20,16 @@ class QueryType extends schema_1.BaseSchemaType {
19
20
  getQuery(association, user) {
20
21
  return this.queryFn(association, user);
21
22
  }
23
+ /**
24
+ * 레거시 TypeIsQueryToSequelize와 동일한 형식.
25
+ * schema의 sequelize 플러그인은 'query'를 처리하지 않으므로 직접 반환.
26
+ */
27
+ toSequelize() {
28
+ return {
29
+ query: (props) => { var _a; return this.queryFn((_a = props.association) !== null && _a !== void 0 ? _a : '', props.user); },
30
+ type: this.typeGetter,
31
+ };
32
+ }
22
33
  }
23
34
  exports.QueryType = QueryType;
24
35
  // FOREIGNKEY 타입 구현
@@ -34,6 +45,17 @@ class ForeignKeyType extends schema_1.BaseSchemaType {
34
45
  parse(value) {
35
46
  return value;
36
47
  }
48
+ /**
49
+ * BaseSchemaType.toSequelize()는 plugin.transform()을 호출하는데,
50
+ * schema의 sequelize 플러그인은 'foreignkey'를 처리하지 않음.
51
+ * TypeIsForienKeyAddColumn이 기대하는 { table, extraData } 형식을 직접 반환..
52
+ */
53
+ toSequelize() {
54
+ return {
55
+ table: this.references,
56
+ extraData: { type: schema_1.TypeIs.INT },
57
+ };
58
+ }
37
59
  }
38
60
  exports.ForeignKeyType = ForeignKeyType;
39
61
  // BELONGSTO 타입 구현
@@ -51,6 +73,23 @@ class BelongsToType extends schema_1.BaseSchemaType {
51
73
  parse(value) {
52
74
  return value;
53
75
  }
76
+ /**
77
+ * BaseSchemaType.toSequelize()는 plugin.transform()을 호출하는데,
78
+ * schema의 sequelize 플러그인은 'belongsto'를 처리하지 않음.
79
+ * TypeIsBelongsToAddColumn이 기대하는 { associatedClassGetter, optionsOrForeignKey } 형식을 직접 반환.
80
+ */
81
+ toSequelize() {
82
+ const associatedClassGetter = typeof this.target === 'function' ? this.target : () => this.target;
83
+ const optionsOrForeignKey = {};
84
+ if (this.foreignKey != null)
85
+ optionsOrForeignKey.foreignKey = this.foreignKey;
86
+ if (this.as != null)
87
+ optionsOrForeignKey.as = this.as;
88
+ return {
89
+ associatedClassGetter,
90
+ optionsOrForeignKey: Object.keys(optionsOrForeignKey).length > 0 ? optionsOrForeignKey : undefined,
91
+ };
92
+ }
54
93
  }
55
94
  exports.BelongsToType = BelongsToType;
56
95
  //# sourceMappingURL=schema-extensions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-extensions.js","sourceRoot":"","sources":["../../src/types/schema-extensions.ts"],"names":[],"mappings":";;;AAAA,2CAA8E;AAkC9E,cAAc;AACd,MAAa,SAAU,SAAQ,uBAAmB;IAIhD,YAAY,OAAqB;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJjB,WAAM,GAAG,OAAO,CAAC;QAKf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;IAC/B,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,mBAAmB;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAU;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ,CAAC,WAAmB,EAAE,IAAU;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;CACF;AArBD,8BAqBC;AAED,mBAAmB;AACnB,MAAa,cAAe,SAAQ,uBAA+B;IAIjE,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJjB,WAAM,GAAG,YAAY,CAAC;QAKpB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,KAAU;QACd,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAhBD,wCAgBC;AAED,kBAAkB;AAClB,MAAa,aAAc,SAAQ,uBAAmB;IAMpD,YAAY,OAAyB;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC;QANjB,WAAM,GAAG,WAAW,CAAC;QAOnB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAU;QACd,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AApBD,sCAoBC"}
1
+ {"version":3,"file":"schema-extensions.js","sourceRoot":"","sources":["../../src/types/schema-extensions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asapjs/sequelize",
3
- "version": "1.0.0-alpha.15",
3
+ "version": "1.0.0-alpha.17",
4
4
  "description": "Sequelize integration for AsapJS",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -42,5 +42,5 @@
42
42
  "sequelize-typescript": "^2.1.6",
43
43
  "typescript": "^5.8.3"
44
44
  },
45
- "gitHead": "038413ecfc411dc9b868fe32121733794506e137"
45
+ "gitHead": "20e9a43800dc0071a6bc184116e7bf0a98e12104"
46
46
  }