@rytass/cms-base-nestjs-graphql-module 0.0.25 → 0.0.27

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,9 @@
1
1
  import { DynamicModule } from '@nestjs/common';
2
- import { CMSBaseModuleOptionsDto, CMSBaseModuleAsyncOptionsDto } from '@rytass/cms-base-nestjs-module';
2
+ import { CMSGraphqlBaseModuleOptionsDto } from './typings/cms-graphql-base-root-module-options.dto';
3
+ import { CMSGraphqlBaseModuleAsyncOptionsDto } from './typings/cms-graphql-base-root-module-async-options.dto';
3
4
  export declare class CMSBaseGraphQLModule {
4
- static forRootAsync(options: CMSBaseModuleAsyncOptionsDto): DynamicModule;
5
- static forRoot(options?: CMSBaseModuleOptionsDto): DynamicModule;
5
+ static forRootAsync(options: CMSGraphqlBaseModuleAsyncOptionsDto): DynamicModule;
6
+ static forRoot(options: CMSGraphqlBaseModuleOptionsDto): DynamicModule;
7
+ private static createAsyncProvider;
8
+ private static createAsyncOptionsProvider;
6
9
  }
@@ -10,6 +10,8 @@ import { ArticleResolver } from './resolvers/article.resolver.js';
10
10
  import { BackstageArticleResolver } from './resolvers/backstage-article.resolver.js';
11
11
  import { ArticleSignatureResolver } from './resolvers/article-signature.resolver.js';
12
12
  import { BackstageCategoryResolver } from './resolvers/backstage-category.resolver.js';
13
+ import { OptionProviders } from './constants/option-providers.js';
14
+ import { CMS_BASE_GRAPHQL_MODULE_OPTIONS } from './typings/cms-graphql-base-providers.js';
13
15
 
14
16
  function _ts_decorate(decorators, target, key, desc) {
15
17
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -29,6 +31,8 @@ class CMSBaseGraphQLModule {
29
31
  CMSBaseModule
30
32
  ],
31
33
  providers: [
34
+ ...this.createAsyncProvider(options),
35
+ ...OptionProviders,
32
36
  MemberDataLoader,
33
37
  ArticleDataLoader,
34
38
  ArticleResolver,
@@ -52,6 +56,11 @@ class CMSBaseGraphQLModule {
52
56
  CMSBaseModule
53
57
  ],
54
58
  providers: [
59
+ {
60
+ provide: CMS_BASE_GRAPHQL_MODULE_OPTIONS,
61
+ useValue: options
62
+ },
63
+ ...OptionProviders,
55
64
  MemberDataLoader,
56
65
  ArticleDataLoader,
57
66
  ArticleResolver,
@@ -65,6 +74,38 @@ class CMSBaseGraphQLModule {
65
74
  ]
66
75
  };
67
76
  }
77
+ static createAsyncProvider(options) {
78
+ if (options.useExisting || options.useFactory) {
79
+ return [
80
+ this.createAsyncOptionsProvider(options)
81
+ ];
82
+ }
83
+ return [
84
+ this.createAsyncOptionsProvider(options),
85
+ ...options.useClass ? [
86
+ {
87
+ provide: options.useClass,
88
+ useClass: options.useClass
89
+ }
90
+ ] : []
91
+ ];
92
+ }
93
+ static createAsyncOptionsProvider(options) {
94
+ if (options.useFactory) {
95
+ return {
96
+ provide: CMS_BASE_GRAPHQL_MODULE_OPTIONS,
97
+ useFactory: options.useFactory,
98
+ inject: options.inject || []
99
+ };
100
+ }
101
+ return {
102
+ provide: CMS_BASE_GRAPHQL_MODULE_OPTIONS,
103
+ useFactory: async (optionsFactory)=>await optionsFactory.createCMSOptions(),
104
+ inject: [
105
+ options.useExisting || options.useClass
106
+ ]
107
+ };
108
+ }
68
109
  }
69
110
  CMSBaseGraphQLModule = _ts_decorate([
70
111
  Module({})
@@ -0,0 +1,2 @@
1
+ import { Provider } from '@nestjs/common';
2
+ export declare const OptionProviders: Provider[];
@@ -0,0 +1,20 @@
1
+ import { MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS, CMS_BASE_GRAPHQL_MODULE_OPTIONS, MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS } from '../typings/cms-graphql-base-providers.js';
2
+
3
+ const OptionProviders = [
4
+ {
5
+ provide: MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS,
6
+ useFactory: async (options)=>options?.mapArticleCustomFieldsToEntityColumns ? options.mapArticleCustomFieldsToEntityColumns : ()=>({}),
7
+ inject: [
8
+ CMS_BASE_GRAPHQL_MODULE_OPTIONS
9
+ ]
10
+ },
11
+ {
12
+ provide: MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS,
13
+ useFactory: async (options)=>options?.mapCategoryCustomFieldsToEntityColumns ? options.mapCategoryCustomFieldsToEntityColumns : ()=>({}),
14
+ inject: [
15
+ CMS_BASE_GRAPHQL_MODULE_OPTIONS
16
+ ]
17
+ }
18
+ ];
19
+
20
+ export { OptionProviders };
@@ -1,4 +1,4 @@
1
- import { Field, Int, ArgsType } from '@nestjs/graphql';
1
+ import { Field, ID, Int, ArgsType } from '@nestjs/graphql';
2
2
 
3
3
  function _ts_decorate(decorators, target, key, desc) {
4
4
  var c = arguments.length, r = c < 3 ? target : desc, d;
@@ -17,7 +17,7 @@ class ArticlesArgs {
17
17
  }
18
18
  _ts_decorate([
19
19
  Field(()=>[
20
- String
20
+ ID
21
21
  ], {
22
22
  nullable: true
23
23
  }),
@@ -1,4 +1,4 @@
1
- import { Field, ArgsType, registerEnumType } from '@nestjs/graphql';
1
+ import { Field, ID, ArgsType, registerEnumType } from '@nestjs/graphql';
2
2
  import { CategorySorter } from '@rytass/cms-base-nestjs-module';
3
3
 
4
4
  function _ts_decorate(decorators, target, key, desc) {
@@ -19,7 +19,7 @@ class CategoriesArgs {
19
19
  }
20
20
  _ts_decorate([
21
21
  Field(()=>[
22
- String
22
+ ID
23
23
  ], {
24
24
  nullable: true
25
25
  }),
@@ -27,7 +27,7 @@ _ts_decorate([
27
27
  ], CategoriesArgs.prototype, "parentIds", void 0);
28
28
  _ts_decorate([
29
29
  Field(()=>[
30
- String
30
+ ID
31
31
  ], {
32
32
  nullable: true
33
33
  }),
@@ -1,4 +1,5 @@
1
1
  import { ArticleVersionContentInput } from './article-version-content.input';
2
+ import { CustomFieldInput } from './custom-field.input';
2
3
  export declare class CreateArticleArgs {
3
4
  categoryIds: string[];
4
5
  tags: string[];
@@ -6,4 +7,5 @@ export declare class CreateArticleArgs {
6
7
  releasedAt?: Date | null;
7
8
  submitted?: boolean | null;
8
9
  signatureLevel?: string | null;
10
+ customFields?: CustomFieldInput[];
9
11
  }
@@ -1,5 +1,6 @@
1
1
  import { Field, ID, ArgsType } from '@nestjs/graphql';
2
2
  import { ArticleVersionContentInput } from './article-version-content.input.js';
3
+ import { CustomFieldInput } from './custom-field.input.js';
3
4
 
4
5
  function _ts_decorate(decorators, target, key, desc) {
5
6
  var c = arguments.length, r = c < 3 ? target : desc, d;
@@ -17,6 +18,7 @@ class CreateArticleArgs {
17
18
  releasedAt;
18
19
  submitted;
19
20
  signatureLevel;
21
+ customFields;
20
22
  }
21
23
  _ts_decorate([
22
24
  Field(()=>[
@@ -54,6 +56,14 @@ _ts_decorate([
54
56
  }),
55
57
  _ts_metadata("design:type", Object)
56
58
  ], CreateArticleArgs.prototype, "signatureLevel", void 0);
59
+ _ts_decorate([
60
+ Field(()=>[
61
+ CustomFieldInput
62
+ ], {
63
+ nullable: true
64
+ }),
65
+ _ts_metadata("design:type", Array)
66
+ ], CreateArticleArgs.prototype, "customFields", void 0);
57
67
  CreateArticleArgs = _ts_decorate([
58
68
  ArgsType()
59
69
  ], CreateArticleArgs);
@@ -1,5 +1,7 @@
1
1
  import { CategoryMultiLanguageNameInput } from './category-multi-language-name.input';
2
+ import { CustomFieldInput } from './custom-field.input';
2
3
  export declare class CreateCategoryArgs {
3
4
  parentIds?: string[] | null;
4
5
  multiLanguageNames: CategoryMultiLanguageNameInput[];
6
+ customFields?: CustomFieldInput[];
5
7
  }
@@ -1,5 +1,6 @@
1
1
  import { Field, ID, ArgsType } from '@nestjs/graphql';
2
2
  import { CategoryMultiLanguageNameInput } from './category-multi-language-name.input.js';
3
+ import { CustomFieldInput } from './custom-field.input.js';
3
4
 
4
5
  function _ts_decorate(decorators, target, key, desc) {
5
6
  var c = arguments.length, r = c < 3 ? target : desc, d;
@@ -13,6 +14,7 @@ function _ts_metadata(k, v) {
13
14
  class CreateCategoryArgs {
14
15
  parentIds;
15
16
  multiLanguageNames;
17
+ customFields;
16
18
  }
17
19
  _ts_decorate([
18
20
  Field(()=>[
@@ -28,6 +30,14 @@ _ts_decorate([
28
30
  ]),
29
31
  _ts_metadata("design:type", Array)
30
32
  ], CreateCategoryArgs.prototype, "multiLanguageNames", void 0);
33
+ _ts_decorate([
34
+ Field(()=>[
35
+ CustomFieldInput
36
+ ], {
37
+ nullable: true
38
+ }),
39
+ _ts_metadata("design:type", Array)
40
+ ], CreateCategoryArgs.prototype, "customFields", void 0);
31
41
  CreateCategoryArgs = _ts_decorate([
32
42
  ArgsType()
33
43
  ], CreateCategoryArgs);
@@ -0,0 +1,4 @@
1
+ export declare class CustomFieldInput {
2
+ key: string;
3
+ value: string;
4
+ }
@@ -0,0 +1,28 @@
1
+ import { Field, ID, InputType } from '@nestjs/graphql';
2
+
3
+ function _ts_decorate(decorators, target, key, desc) {
4
+ var c = arguments.length, r = c < 3 ? target : desc, d;
5
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
8
+ }
9
+ function _ts_metadata(k, v) {
10
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
11
+ }
12
+ class CustomFieldInput {
13
+ key;
14
+ value;
15
+ }
16
+ _ts_decorate([
17
+ Field(()=>ID),
18
+ _ts_metadata("design:type", String)
19
+ ], CustomFieldInput.prototype, "key", void 0);
20
+ _ts_decorate([
21
+ Field(()=>String),
22
+ _ts_metadata("design:type", String)
23
+ ], CustomFieldInput.prototype, "value", void 0);
24
+ CustomFieldInput = _ts_decorate([
25
+ InputType('CustomFieldInput')
26
+ ], CustomFieldInput);
27
+
28
+ export { CustomFieldInput };
package/index.cjs.js CHANGED
@@ -9,13 +9,13 @@ var DataLoader = require('dataloader');
9
9
  var lruCache = require('lru-cache');
10
10
  var typeorm = require('typeorm');
11
11
 
12
- function _ts_decorate$y(decorators, target, key, desc) {
12
+ function _ts_decorate$z(decorators, target, key, desc) {
13
13
  var c = arguments.length, r = c < 3 ? target : desc, d;
14
14
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15
15
  else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16
16
  return c > 3 && r && Object.defineProperty(target, key, r), r;
17
17
  }
18
- function _ts_metadata$w(k, v) {
18
+ function _ts_metadata$x(k, v) {
19
19
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
20
20
  }
21
21
  class BaseArticleDto {
@@ -25,41 +25,41 @@ class BaseArticleDto {
25
25
  updatedAt;
26
26
  releasedAt;
27
27
  }
28
- _ts_decorate$y([
28
+ _ts_decorate$z([
29
29
  graphql.Field(()=>graphql.ID),
30
- _ts_metadata$w("design:type", String)
30
+ _ts_metadata$x("design:type", String)
31
31
  ], BaseArticleDto.prototype, "id", void 0);
32
- _ts_decorate$y([
32
+ _ts_decorate$z([
33
33
  graphql.Field(()=>[
34
34
  String
35
35
  ]),
36
- _ts_metadata$w("design:type", Array)
36
+ _ts_metadata$x("design:type", Array)
37
37
  ], BaseArticleDto.prototype, "tags", void 0);
38
- _ts_decorate$y([
38
+ _ts_decorate$z([
39
39
  graphql.Field(()=>Date),
40
- _ts_metadata$w("design:type", typeof Date === "undefined" ? Object : Date)
40
+ _ts_metadata$x("design:type", typeof Date === "undefined" ? Object : Date)
41
41
  ], BaseArticleDto.prototype, "createdAt", void 0);
42
- _ts_decorate$y([
42
+ _ts_decorate$z([
43
43
  graphql.Field(()=>Date),
44
- _ts_metadata$w("design:type", typeof Date === "undefined" ? Object : Date)
44
+ _ts_metadata$x("design:type", typeof Date === "undefined" ? Object : Date)
45
45
  ], BaseArticleDto.prototype, "updatedAt", void 0);
46
- _ts_decorate$y([
46
+ _ts_decorate$z([
47
47
  graphql.Field(()=>Date, {
48
48
  nullable: true
49
49
  }),
50
- _ts_metadata$w("design:type", Object)
50
+ _ts_metadata$x("design:type", Object)
51
51
  ], BaseArticleDto.prototype, "releasedAt", void 0);
52
- BaseArticleDto = _ts_decorate$y([
52
+ BaseArticleDto = _ts_decorate$z([
53
53
  graphql.ObjectType('BaseArticle')
54
54
  ], BaseArticleDto);
55
55
 
56
- function _ts_decorate$x(decorators, target, key, desc) {
56
+ function _ts_decorate$y(decorators, target, key, desc) {
57
57
  var c = arguments.length, r = c < 3 ? target : desc, d;
58
58
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
59
59
  else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
60
60
  return c > 3 && r && Object.defineProperty(target, key, r), r;
61
61
  }
62
- function _ts_metadata$v(k, v) {
62
+ function _ts_metadata$w(k, v) {
63
63
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
64
64
  }
65
65
  class BackstageArticleDto extends BaseArticleDto {
@@ -67,23 +67,23 @@ class BackstageArticleDto extends BaseArticleDto {
67
67
  deletedAt;
68
68
  submittedAt;
69
69
  }
70
- _ts_decorate$x([
70
+ _ts_decorate$y([
71
71
  graphql.Field(()=>graphql.Int),
72
- _ts_metadata$v("design:type", Number)
72
+ _ts_metadata$w("design:type", Number)
73
73
  ], BackstageArticleDto.prototype, "version", void 0);
74
- _ts_decorate$x([
74
+ _ts_decorate$y([
75
75
  graphql.Field(()=>Date, {
76
76
  nullable: true
77
77
  }),
78
- _ts_metadata$v("design:type", Object)
78
+ _ts_metadata$w("design:type", Object)
79
79
  ], BackstageArticleDto.prototype, "deletedAt", void 0);
80
- _ts_decorate$x([
80
+ _ts_decorate$y([
81
81
  graphql.Field(()=>Date, {
82
82
  nullable: true
83
83
  }),
84
- _ts_metadata$v("design:type", Object)
84
+ _ts_metadata$w("design:type", Object)
85
85
  ], BackstageArticleDto.prototype, "submittedAt", void 0);
86
- BackstageArticleDto = _ts_decorate$x([
86
+ BackstageArticleDto = _ts_decorate$y([
87
87
  graphql.ObjectType('BackstageArticle')
88
88
  ], BackstageArticleDto);
89
89
 
@@ -130,13 +130,13 @@ const QuadratsContentScalar = new graphql$1.GraphQLScalarType({
130
130
  }
131
131
  });
132
132
 
133
- function _ts_decorate$w(decorators, target, key, desc) {
133
+ function _ts_decorate$x(decorators, target, key, desc) {
134
134
  var c = arguments.length, r = c < 3 ? target : desc, d;
135
135
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
136
136
  else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
137
137
  return c > 3 && r && Object.defineProperty(target, key, r), r;
138
138
  }
139
- function _ts_metadata$u(k, v) {
139
+ function _ts_metadata$v(k, v) {
140
140
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
141
141
  }
142
142
  class ArticleVersionContentInput {
@@ -145,30 +145,55 @@ class ArticleVersionContentInput {
145
145
  description;
146
146
  content;
147
147
  }
148
- _ts_decorate$w([
148
+ _ts_decorate$x([
149
149
  graphql.Field(()=>String, {
150
150
  nullable: true
151
151
  }),
152
- _ts_metadata$u("design:type", Object)
152
+ _ts_metadata$v("design:type", Object)
153
153
  ], ArticleVersionContentInput.prototype, "language", void 0);
154
- _ts_decorate$w([
154
+ _ts_decorate$x([
155
155
  graphql.Field(()=>String),
156
- _ts_metadata$u("design:type", String)
156
+ _ts_metadata$v("design:type", String)
157
157
  ], ArticleVersionContentInput.prototype, "title", void 0);
158
- _ts_decorate$w([
158
+ _ts_decorate$x([
159
159
  graphql.Field(()=>String, {
160
160
  nullable: true
161
161
  }),
162
- _ts_metadata$u("design:type", Object)
162
+ _ts_metadata$v("design:type", Object)
163
163
  ], ArticleVersionContentInput.prototype, "description", void 0);
164
- _ts_decorate$w([
164
+ _ts_decorate$x([
165
165
  graphql.Field(()=>QuadratsContentScalar),
166
- _ts_metadata$u("design:type", Array)
166
+ _ts_metadata$v("design:type", Array)
167
167
  ], ArticleVersionContentInput.prototype, "content", void 0);
168
- ArticleVersionContentInput = _ts_decorate$w([
168
+ ArticleVersionContentInput = _ts_decorate$x([
169
169
  graphql.InputType('ArticleVersionContentInput')
170
170
  ], ArticleVersionContentInput);
171
171
 
172
+ function _ts_decorate$w(decorators, target, key, desc) {
173
+ var c = arguments.length, r = c < 3 ? target : desc, d;
174
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
175
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
176
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
177
+ }
178
+ function _ts_metadata$u(k, v) {
179
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
180
+ }
181
+ class CustomFieldInput {
182
+ key;
183
+ value;
184
+ }
185
+ _ts_decorate$w([
186
+ graphql.Field(()=>graphql.ID),
187
+ _ts_metadata$u("design:type", String)
188
+ ], CustomFieldInput.prototype, "key", void 0);
189
+ _ts_decorate$w([
190
+ graphql.Field(()=>String),
191
+ _ts_metadata$u("design:type", String)
192
+ ], CustomFieldInput.prototype, "value", void 0);
193
+ CustomFieldInput = _ts_decorate$w([
194
+ graphql.InputType('CustomFieldInput')
195
+ ], CustomFieldInput);
196
+
172
197
  function _ts_decorate$v(decorators, target, key, desc) {
173
198
  var c = arguments.length, r = c < 3 ? target : desc, d;
174
199
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -185,6 +210,7 @@ class CreateArticleArgs {
185
210
  releasedAt;
186
211
  submitted;
187
212
  signatureLevel;
213
+ customFields;
188
214
  }
189
215
  _ts_decorate$v([
190
216
  graphql.Field(()=>[
@@ -222,6 +248,14 @@ _ts_decorate$v([
222
248
  }),
223
249
  _ts_metadata$t("design:type", Object)
224
250
  ], CreateArticleArgs.prototype, "signatureLevel", void 0);
251
+ _ts_decorate$v([
252
+ graphql.Field(()=>[
253
+ CustomFieldInput
254
+ ], {
255
+ nullable: true
256
+ }),
257
+ _ts_metadata$t("design:type", Array)
258
+ ], CreateArticleArgs.prototype, "customFields", void 0);
225
259
  CreateArticleArgs = _ts_decorate$v([
226
260
  graphql.ArgsType()
227
261
  ], CreateArticleArgs);
@@ -268,6 +302,10 @@ var BaseResource = /*#__PURE__*/ function(BaseResource) {
268
302
  return BaseResource;
269
303
  }({});
270
304
 
305
+ const CMS_BASE_GRAPHQL_MODULE_OPTIONS = Symbol('CMS_BASE_GRAPHQL_MODULE_OPTIONS');
306
+ const MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS = Symbol('MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS');
307
+ const MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS = Symbol('MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS');
308
+
271
309
  function _ts_decorate$t(decorators, target, key, desc) {
272
310
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
273
311
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -284,18 +322,25 @@ function _ts_param$9(paramIndex, decorator) {
284
322
  }
285
323
  class ArticleMutations {
286
324
  multiLanguage;
325
+ mapArticleCustomFieldsToEntityColumns;
287
326
  articleService;
288
- constructor(multiLanguage, articleService){
327
+ constructor(multiLanguage, mapArticleCustomFieldsToEntityColumns, articleService){
289
328
  this.multiLanguage = multiLanguage;
329
+ this.mapArticleCustomFieldsToEntityColumns = mapArticleCustomFieldsToEntityColumns;
290
330
  this.articleService = articleService;
291
331
  }
292
- resolveCreateArticleArgs(args) {
332
+ async resolveCreateArticleArgs(args) {
333
+ const extraArgsInput = {};
334
+ if (args.customFields?.length) {
335
+ Object.assign(extraArgsInput, await this.mapArticleCustomFieldsToEntityColumns(args.customFields));
336
+ }
293
337
  const basePayload = {
294
338
  categoryIds: args.categoryIds,
295
339
  tags: args.tags,
296
340
  submitted: args.submitted ?? undefined,
297
341
  signatureLevel: args.signatureLevel ?? null,
298
- releasedAt: args.releasedAt ?? null
342
+ releasedAt: args.releasedAt ?? null,
343
+ ...extraArgsInput
299
344
  };
300
345
  if (!this.multiLanguage) {
301
346
  const [content] = args.multiLanguageContents;
@@ -321,13 +366,13 @@ class ArticleMutations {
321
366
  }
322
367
  async createArticle(memberId, args) {
323
368
  return this.articleService.create({
324
- ...this.resolveCreateArticleArgs(args),
369
+ ...await this.resolveCreateArticleArgs(args),
325
370
  userId: memberId
326
371
  });
327
372
  }
328
373
  async updateArticle(memberId, args) {
329
374
  return this.articleService.addVersion(args.id, {
330
- ...this.resolveCreateArticleArgs(args),
375
+ ...await this.resolveCreateArticleArgs(args),
331
376
  userId: memberId
332
377
  });
333
378
  }
@@ -578,9 +623,11 @@ _ts_decorate$t([
578
623
  ArticleMutations = _ts_decorate$t([
579
624
  graphql.Resolver(),
580
625
  _ts_param$9(0, common.Inject(cmsBaseNestjsModule.MULTIPLE_LANGUAGE_MODE)),
626
+ _ts_param$9(1, common.Inject(MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS)),
581
627
  _ts_metadata$r("design:type", Function),
582
628
  _ts_metadata$r("design:paramtypes", [
583
629
  Boolean,
630
+ Function,
584
631
  typeof cmsBaseNestjsModule.ArticleBaseService === "undefined" ? Object : cmsBaseNestjsModule.ArticleBaseService
585
632
  ])
586
633
  ], ArticleMutations);
@@ -624,6 +671,7 @@ function _ts_metadata$p(k, v) {
624
671
  class CreateCategoryArgs {
625
672
  parentIds;
626
673
  multiLanguageNames;
674
+ customFields;
627
675
  }
628
676
  _ts_decorate$r([
629
677
  graphql.Field(()=>[
@@ -639,6 +687,14 @@ _ts_decorate$r([
639
687
  ]),
640
688
  _ts_metadata$p("design:type", Array)
641
689
  ], CreateCategoryArgs.prototype, "multiLanguageNames", void 0);
690
+ _ts_decorate$r([
691
+ graphql.Field(()=>[
692
+ CustomFieldInput
693
+ ], {
694
+ nullable: true
695
+ }),
696
+ _ts_metadata$p("design:type", Array)
697
+ ], CreateCategoryArgs.prototype, "customFields", void 0);
642
698
  CreateCategoryArgs = _ts_decorate$r([
643
699
  graphql.ArgsType()
644
700
  ], CreateCategoryArgs);
@@ -721,14 +777,21 @@ function _ts_param$8(paramIndex, decorator) {
721
777
  }
722
778
  class CategoryMutations {
723
779
  multiLanguage;
780
+ mapCategoryCustomFieldsToEntityColumns;
724
781
  categoryService;
725
- constructor(multiLanguage, categoryService){
782
+ constructor(multiLanguage, mapCategoryCustomFieldsToEntityColumns, categoryService){
726
783
  this.multiLanguage = multiLanguage;
784
+ this.mapCategoryCustomFieldsToEntityColumns = mapCategoryCustomFieldsToEntityColumns;
727
785
  this.categoryService = categoryService;
728
786
  }
729
- resolveCreateCategoryArgs(args) {
787
+ async resolveCreateCategoryArgs(args) {
788
+ const extraArgsInput = {};
789
+ if (args.customFields?.length) {
790
+ Object.assign(extraArgsInput, await this.mapCategoryCustomFieldsToEntityColumns(args.customFields));
791
+ }
730
792
  const basePayload = {
731
- parentIds: args.parentIds
793
+ parentIds: args.parentIds,
794
+ ...extraArgsInput
732
795
  };
733
796
  if (!this.multiLanguage) {
734
797
  const [content] = args.multiLanguageNames;
@@ -746,14 +809,14 @@ class CategoryMutations {
746
809
  multiLanguageNames
747
810
  };
748
811
  }
749
- createCategory(args) {
812
+ async createCategory(args) {
750
813
  return this.categoryService.create({
751
- ...this.resolveCreateCategoryArgs(args)
814
+ ...await this.resolveCreateCategoryArgs(args)
752
815
  });
753
816
  }
754
- updateCategory(args) {
817
+ async updateCategory(args) {
755
818
  return this.categoryService.update(args.id, {
756
- ...this.resolveCreateCategoryArgs(args)
819
+ ...await this.resolveCreateCategoryArgs(args)
757
820
  });
758
821
  }
759
822
  async deleteCategory(id) {
@@ -774,7 +837,7 @@ _ts_decorate$n([
774
837
  _ts_metadata$m("design:paramtypes", [
775
838
  typeof CreateCategoryArgs === "undefined" ? Object : CreateCategoryArgs
776
839
  ]),
777
- _ts_metadata$m("design:returntype", typeof Promise === "undefined" ? Object : Promise)
840
+ _ts_metadata$m("design:returntype", Promise)
778
841
  ], CategoryMutations.prototype, "createCategory", null);
779
842
  _ts_decorate$n([
780
843
  graphql.Mutation(()=>BackstageCategoryDto),
@@ -789,7 +852,7 @@ _ts_decorate$n([
789
852
  _ts_metadata$m("design:paramtypes", [
790
853
  typeof UpdateCategoryArgs === "undefined" ? Object : UpdateCategoryArgs
791
854
  ]),
792
- _ts_metadata$m("design:returntype", typeof Promise === "undefined" ? Object : Promise)
855
+ _ts_metadata$m("design:returntype", Promise)
793
856
  ], CategoryMutations.prototype, "updateCategory", null);
794
857
  _ts_decorate$n([
795
858
  graphql.Mutation(()=>Boolean),
@@ -811,9 +874,11 @@ _ts_decorate$n([
811
874
  CategoryMutations = _ts_decorate$n([
812
875
  graphql.Resolver(),
813
876
  _ts_param$8(0, common.Inject(cmsBaseNestjsModule.MULTIPLE_LANGUAGE_MODE)),
877
+ _ts_param$8(1, common.Inject(MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS)),
814
878
  _ts_metadata$m("design:type", Function),
815
879
  _ts_metadata$m("design:paramtypes", [
816
880
  Boolean,
881
+ Function,
817
882
  typeof cmsBaseNestjsModule.CategoryBaseService === "undefined" ? Object : cmsBaseNestjsModule.CategoryBaseService
818
883
  ])
819
884
  ], CategoryMutations);
@@ -835,7 +900,7 @@ class ArticlesArgs {
835
900
  }
836
901
  _ts_decorate$m([
837
902
  graphql.Field(()=>[
838
- String
903
+ graphql.ID
839
904
  ], {
840
905
  nullable: true
841
906
  }),
@@ -1164,7 +1229,7 @@ class CategoriesArgs {
1164
1229
  }
1165
1230
  _ts_decorate$f([
1166
1231
  graphql.Field(()=>[
1167
- String
1232
+ graphql.ID
1168
1233
  ], {
1169
1234
  nullable: true
1170
1235
  }),
@@ -1172,7 +1237,7 @@ _ts_decorate$f([
1172
1237
  ], CategoriesArgs.prototype, "parentIds", void 0);
1173
1238
  _ts_decorate$f([
1174
1239
  graphql.Field(()=>[
1175
- String
1240
+ graphql.ID
1176
1241
  ], {
1177
1242
  nullable: true
1178
1243
  }),
@@ -2141,6 +2206,23 @@ BackstageCategoryResolver = _ts_decorate$1([
2141
2206
  ])
2142
2207
  ], BackstageCategoryResolver);
2143
2208
 
2209
+ const OptionProviders = [
2210
+ {
2211
+ provide: MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS,
2212
+ useFactory: async (options)=>options?.mapArticleCustomFieldsToEntityColumns ? options.mapArticleCustomFieldsToEntityColumns : ()=>({}),
2213
+ inject: [
2214
+ CMS_BASE_GRAPHQL_MODULE_OPTIONS
2215
+ ]
2216
+ },
2217
+ {
2218
+ provide: MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS,
2219
+ useFactory: async (options)=>options?.mapCategoryCustomFieldsToEntityColumns ? options.mapCategoryCustomFieldsToEntityColumns : ()=>({}),
2220
+ inject: [
2221
+ CMS_BASE_GRAPHQL_MODULE_OPTIONS
2222
+ ]
2223
+ }
2224
+ ];
2225
+
2144
2226
  function _ts_decorate(decorators, target, key, desc) {
2145
2227
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2146
2228
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -2159,6 +2241,8 @@ class CMSBaseGraphQLModule {
2159
2241
  cmsBaseNestjsModule.CMSBaseModule
2160
2242
  ],
2161
2243
  providers: [
2244
+ ...this.createAsyncProvider(options),
2245
+ ...OptionProviders,
2162
2246
  MemberDataLoader,
2163
2247
  ArticleDataLoader,
2164
2248
  ArticleResolver,
@@ -2182,6 +2266,11 @@ class CMSBaseGraphQLModule {
2182
2266
  cmsBaseNestjsModule.CMSBaseModule
2183
2267
  ],
2184
2268
  providers: [
2269
+ {
2270
+ provide: CMS_BASE_GRAPHQL_MODULE_OPTIONS,
2271
+ useValue: options
2272
+ },
2273
+ ...OptionProviders,
2185
2274
  MemberDataLoader,
2186
2275
  ArticleDataLoader,
2187
2276
  ArticleResolver,
@@ -2195,6 +2284,38 @@ class CMSBaseGraphQLModule {
2195
2284
  ]
2196
2285
  };
2197
2286
  }
2287
+ static createAsyncProvider(options) {
2288
+ if (options.useExisting || options.useFactory) {
2289
+ return [
2290
+ this.createAsyncOptionsProvider(options)
2291
+ ];
2292
+ }
2293
+ return [
2294
+ this.createAsyncOptionsProvider(options),
2295
+ ...options.useClass ? [
2296
+ {
2297
+ provide: options.useClass,
2298
+ useClass: options.useClass
2299
+ }
2300
+ ] : []
2301
+ ];
2302
+ }
2303
+ static createAsyncOptionsProvider(options) {
2304
+ if (options.useFactory) {
2305
+ return {
2306
+ provide: CMS_BASE_GRAPHQL_MODULE_OPTIONS,
2307
+ useFactory: options.useFactory,
2308
+ inject: options.inject || []
2309
+ };
2310
+ }
2311
+ return {
2312
+ provide: CMS_BASE_GRAPHQL_MODULE_OPTIONS,
2313
+ useFactory: async (optionsFactory)=>await optionsFactory.createCMSOptions(),
2314
+ inject: [
2315
+ options.useExisting || options.useClass
2316
+ ]
2317
+ };
2318
+ }
2198
2319
  }
2199
2320
  CMSBaseGraphQLModule = _ts_decorate([
2200
2321
  common.Module({})
@@ -2207,3 +2328,4 @@ exports.BackstageArticleDto = BackstageArticleDto;
2207
2328
  exports.BackstageCategoryDto = BackstageCategoryDto;
2208
2329
  exports.CMSBaseGraphQLModule = CMSBaseGraphQLModule;
2209
2330
  exports.CategoryDto = CategoryDto;
2331
+ exports.CustomFieldInput = CustomFieldInput;
package/index.d.ts CHANGED
@@ -5,3 +5,4 @@ export * from './dto/article-collection.dto';
5
5
  export * from './dto/backstage-article-collection.dto';
6
6
  export * from './dto/category.dto';
7
7
  export * from './dto/backstage-category.dto';
8
+ export * from './dto/custom-field.input';
package/index.js CHANGED
@@ -5,3 +5,4 @@ export { ArticleCollectionDto } from './dto/article-collection.dto.js';
5
5
  export { BackstageArticleCollectionDto } from './dto/backstage-article-collection.dto.js';
6
6
  export { CategoryDto } from './dto/category.dto.js';
7
7
  export { BackstageCategoryDto } from './dto/backstage-category.dto.js';
8
+ export { CustomFieldInput } from './dto/custom-field.input.js';
@@ -2,10 +2,12 @@ import { ArticleBaseService } from '@rytass/cms-base-nestjs-module';
2
2
  import { BackstageArticleDto } from '../dto/backstage-article.dto';
3
3
  import { CreateArticleArgs } from '../dto/create-article.args';
4
4
  import { UpdateArticleArgs } from '../dto/update-article.args';
5
+ import { CustomFieldInput } from '../dto/custom-field.input';
5
6
  export declare class ArticleMutations {
6
7
  private readonly multiLanguage;
8
+ private readonly mapArticleCustomFieldsToEntityColumns;
7
9
  private readonly articleService;
8
- constructor(multiLanguage: boolean, articleService: ArticleBaseService);
10
+ constructor(multiLanguage: boolean, mapArticleCustomFieldsToEntityColumns: (customFields: CustomFieldInput[]) => Promise<Record<string, string>>, articleService: ArticleBaseService);
9
11
  private resolveCreateArticleArgs;
10
12
  createArticle(memberId: string, args: CreateArticleArgs): Promise<BackstageArticleDto>;
11
13
  updateArticle(memberId: string, args: UpdateArticleArgs): Promise<BackstageArticleDto>;
@@ -7,6 +7,7 @@ import { UpdateArticleArgs } from '../dto/update-article.args.js';
7
7
  import { Inject } from '@nestjs/common';
8
8
  import { BaseAction } from '../constants/enum/base-action.enum.js';
9
9
  import { BaseResource } from '../constants/enum/base-resource.enum.js';
10
+ import { MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS } from '../typings/cms-graphql-base-providers.js';
10
11
 
11
12
  function _ts_decorate(decorators, target, key, desc) {
12
13
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -24,18 +25,25 @@ function _ts_param(paramIndex, decorator) {
24
25
  }
25
26
  class ArticleMutations {
26
27
  multiLanguage;
28
+ mapArticleCustomFieldsToEntityColumns;
27
29
  articleService;
28
- constructor(multiLanguage, articleService){
30
+ constructor(multiLanguage, mapArticleCustomFieldsToEntityColumns, articleService){
29
31
  this.multiLanguage = multiLanguage;
32
+ this.mapArticleCustomFieldsToEntityColumns = mapArticleCustomFieldsToEntityColumns;
30
33
  this.articleService = articleService;
31
34
  }
32
- resolveCreateArticleArgs(args) {
35
+ async resolveCreateArticleArgs(args) {
36
+ const extraArgsInput = {};
37
+ if (args.customFields?.length) {
38
+ Object.assign(extraArgsInput, await this.mapArticleCustomFieldsToEntityColumns(args.customFields));
39
+ }
33
40
  const basePayload = {
34
41
  categoryIds: args.categoryIds,
35
42
  tags: args.tags,
36
43
  submitted: args.submitted ?? undefined,
37
44
  signatureLevel: args.signatureLevel ?? null,
38
- releasedAt: args.releasedAt ?? null
45
+ releasedAt: args.releasedAt ?? null,
46
+ ...extraArgsInput
39
47
  };
40
48
  if (!this.multiLanguage) {
41
49
  const [content] = args.multiLanguageContents;
@@ -61,13 +69,13 @@ class ArticleMutations {
61
69
  }
62
70
  async createArticle(memberId, args) {
63
71
  return this.articleService.create({
64
- ...this.resolveCreateArticleArgs(args),
72
+ ...await this.resolveCreateArticleArgs(args),
65
73
  userId: memberId
66
74
  });
67
75
  }
68
76
  async updateArticle(memberId, args) {
69
77
  return this.articleService.addVersion(args.id, {
70
- ...this.resolveCreateArticleArgs(args),
78
+ ...await this.resolveCreateArticleArgs(args),
71
79
  userId: memberId
72
80
  });
73
81
  }
@@ -318,9 +326,11 @@ _ts_decorate([
318
326
  ArticleMutations = _ts_decorate([
319
327
  Resolver(),
320
328
  _ts_param(0, Inject(MULTIPLE_LANGUAGE_MODE)),
329
+ _ts_param(1, Inject(MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS)),
321
330
  _ts_metadata("design:type", Function),
322
331
  _ts_metadata("design:paramtypes", [
323
332
  Boolean,
333
+ Function,
324
334
  typeof ArticleBaseService === "undefined" ? Object : ArticleBaseService
325
335
  ])
326
336
  ], ArticleMutations);
@@ -2,10 +2,12 @@ import { CategoryBaseService } from '@rytass/cms-base-nestjs-module';
2
2
  import { CreateCategoryArgs } from '../dto/create-category.args';
3
3
  import { BackstageCategoryDto } from '../dto/backstage-category.dto';
4
4
  import { UpdateCategoryArgs } from '../dto/update-category.args';
5
+ import { CustomFieldInput } from '../dto/custom-field.input';
5
6
  export declare class CategoryMutations {
6
7
  private readonly multiLanguage;
8
+ private readonly mapCategoryCustomFieldsToEntityColumns;
7
9
  private readonly categoryService;
8
- constructor(multiLanguage: boolean, categoryService: CategoryBaseService);
10
+ constructor(multiLanguage: boolean, mapCategoryCustomFieldsToEntityColumns: (customFields: CustomFieldInput[]) => Promise<Record<string, string>>, categoryService: CategoryBaseService);
9
11
  private resolveCreateCategoryArgs;
10
12
  createCategory(args: CreateCategoryArgs): Promise<BackstageCategoryDto>;
11
13
  updateCategory(args: UpdateCategoryArgs): Promise<BackstageCategoryDto>;
@@ -7,6 +7,7 @@ import { UpdateCategoryArgs } from '../dto/update-category.args.js';
7
7
  import { Inject } from '@nestjs/common';
8
8
  import { BaseAction } from '../constants/enum/base-action.enum.js';
9
9
  import { BaseResource } from '../constants/enum/base-resource.enum.js';
10
+ import { MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS } from '../typings/cms-graphql-base-providers.js';
10
11
 
11
12
  function _ts_decorate(decorators, target, key, desc) {
12
13
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -24,14 +25,21 @@ function _ts_param(paramIndex, decorator) {
24
25
  }
25
26
  class CategoryMutations {
26
27
  multiLanguage;
28
+ mapCategoryCustomFieldsToEntityColumns;
27
29
  categoryService;
28
- constructor(multiLanguage, categoryService){
30
+ constructor(multiLanguage, mapCategoryCustomFieldsToEntityColumns, categoryService){
29
31
  this.multiLanguage = multiLanguage;
32
+ this.mapCategoryCustomFieldsToEntityColumns = mapCategoryCustomFieldsToEntityColumns;
30
33
  this.categoryService = categoryService;
31
34
  }
32
- resolveCreateCategoryArgs(args) {
35
+ async resolveCreateCategoryArgs(args) {
36
+ const extraArgsInput = {};
37
+ if (args.customFields?.length) {
38
+ Object.assign(extraArgsInput, await this.mapCategoryCustomFieldsToEntityColumns(args.customFields));
39
+ }
33
40
  const basePayload = {
34
- parentIds: args.parentIds
41
+ parentIds: args.parentIds,
42
+ ...extraArgsInput
35
43
  };
36
44
  if (!this.multiLanguage) {
37
45
  const [content] = args.multiLanguageNames;
@@ -49,14 +57,14 @@ class CategoryMutations {
49
57
  multiLanguageNames
50
58
  };
51
59
  }
52
- createCategory(args) {
60
+ async createCategory(args) {
53
61
  return this.categoryService.create({
54
- ...this.resolveCreateCategoryArgs(args)
62
+ ...await this.resolveCreateCategoryArgs(args)
55
63
  });
56
64
  }
57
- updateCategory(args) {
65
+ async updateCategory(args) {
58
66
  return this.categoryService.update(args.id, {
59
- ...this.resolveCreateCategoryArgs(args)
67
+ ...await this.resolveCreateCategoryArgs(args)
60
68
  });
61
69
  }
62
70
  async deleteCategory(id) {
@@ -77,7 +85,7 @@ _ts_decorate([
77
85
  _ts_metadata("design:paramtypes", [
78
86
  typeof CreateCategoryArgs === "undefined" ? Object : CreateCategoryArgs
79
87
  ]),
80
- _ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
88
+ _ts_metadata("design:returntype", Promise)
81
89
  ], CategoryMutations.prototype, "createCategory", null);
82
90
  _ts_decorate([
83
91
  Mutation(()=>BackstageCategoryDto),
@@ -92,7 +100,7 @@ _ts_decorate([
92
100
  _ts_metadata("design:paramtypes", [
93
101
  typeof UpdateCategoryArgs === "undefined" ? Object : UpdateCategoryArgs
94
102
  ]),
95
- _ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
103
+ _ts_metadata("design:returntype", Promise)
96
104
  ], CategoryMutations.prototype, "updateCategory", null);
97
105
  _ts_decorate([
98
106
  Mutation(()=>Boolean),
@@ -114,9 +122,11 @@ _ts_decorate([
114
122
  CategoryMutations = _ts_decorate([
115
123
  Resolver(),
116
124
  _ts_param(0, Inject(MULTIPLE_LANGUAGE_MODE)),
125
+ _ts_param(1, Inject(MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS)),
117
126
  _ts_metadata("design:type", Function),
118
127
  _ts_metadata("design:paramtypes", [
119
128
  Boolean,
129
+ Function,
120
130
  typeof CategoryBaseService === "undefined" ? Object : CategoryBaseService
121
131
  ])
122
132
  ], CategoryMutations);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rytass/cms-base-nestjs-graphql-module",
3
- "version": "0.0.25",
3
+ "version": "0.0.27",
4
4
  "description": "Rytass Content Management System NestJS Base GraphQL Module",
5
5
  "keywords": [
6
6
  "rytass",
@@ -0,0 +1,3 @@
1
+ export declare const CMS_BASE_GRAPHQL_MODULE_OPTIONS: unique symbol;
2
+ export declare const MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS: unique symbol;
3
+ export declare const MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS: unique symbol;
@@ -0,0 +1,5 @@
1
+ const CMS_BASE_GRAPHQL_MODULE_OPTIONS = Symbol('CMS_BASE_GRAPHQL_MODULE_OPTIONS');
2
+ const MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS = Symbol('MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS');
3
+ const MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS = Symbol('MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS');
4
+
5
+ export { CMS_BASE_GRAPHQL_MODULE_OPTIONS, MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS, MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS };
@@ -0,0 +1,9 @@
1
+ import { ModuleMetadata, Type } from '@nestjs/common';
2
+ import { CMSGraphqlBaseModuleOptionFactory } from './cms-graphql-base-root-module-option-factory';
3
+ import { CMSGraphqlBaseModuleOptionsDto } from './cms-graphql-base-root-module-options.dto';
4
+ export interface CMSGraphqlBaseModuleAsyncOptionsDto extends Pick<ModuleMetadata, 'imports'> {
5
+ useFactory?: (...args: any[]) => Promise<CMSGraphqlBaseModuleOptionsDto> | CMSGraphqlBaseModuleOptionsDto;
6
+ inject?: any[];
7
+ useClass?: Type<CMSGraphqlBaseModuleOptionFactory>;
8
+ useExisting?: Type<CMSGraphqlBaseModuleOptionFactory>;
9
+ }
@@ -0,0 +1,4 @@
1
+ import { CMSGraphqlBaseModuleOptionsDto } from './cms-graphql-base-root-module-options.dto';
2
+ export interface CMSGraphqlBaseModuleOptionFactory {
3
+ createCMSOptions(): Promise<CMSGraphqlBaseModuleOptionsDto> | CMSGraphqlBaseModuleOptionsDto;
4
+ }
@@ -0,0 +1,6 @@
1
+ import { CMSBaseModuleOptionsDto } from '@rytass/cms-base-nestjs-module';
2
+ import { CustomFieldInput } from '../dto/custom-field.input';
3
+ export interface CMSGraphqlBaseModuleOptionsDto extends CMSBaseModuleOptionsDto {
4
+ mapArticleCustomFieldsToEntityColumns?: (customFields: CustomFieldInput[]) => Promise<Record<string, string | object>> | Record<string, string | object>;
5
+ mapCategoryCustomFieldsToEntityColumns?: (customFields: CustomFieldInput[]) => Promise<Record<string, string | object>> | Record<string, string | object>;
6
+ }