@rytass/cms-base-nestjs-graphql-module 0.0.24 → 0.0.26

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
  }
@@ -9,6 +9,9 @@ import { ArticleDataLoader } from './data-loaders/article.dataloader.js';
9
9
  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
+ 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';
12
15
 
13
16
  function _ts_decorate(decorators, target, key, desc) {
14
17
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -28,6 +31,8 @@ class CMSBaseGraphQLModule {
28
31
  CMSBaseModule
29
32
  ],
30
33
  providers: [
34
+ ...this.createAsyncProvider(options),
35
+ ...OptionProviders,
31
36
  MemberDataLoader,
32
37
  ArticleDataLoader,
33
38
  ArticleResolver,
@@ -36,7 +41,8 @@ class CMSBaseGraphQLModule {
36
41
  ArticleQueries,
37
42
  ArticleMutations,
38
43
  CategoryQueries,
39
- CategoryMutations
44
+ CategoryMutations,
45
+ BackstageCategoryResolver
40
46
  ]
41
47
  };
42
48
  }
@@ -50,6 +56,11 @@ class CMSBaseGraphQLModule {
50
56
  CMSBaseModule
51
57
  ],
52
58
  providers: [
59
+ {
60
+ provide: CMS_BASE_GRAPHQL_MODULE_OPTIONS,
61
+ useValue: options
62
+ },
63
+ ...OptionProviders,
53
64
  MemberDataLoader,
54
65
  ArticleDataLoader,
55
66
  ArticleResolver,
@@ -58,7 +69,40 @@ class CMSBaseGraphQLModule {
58
69
  ArticleQueries,
59
70
  ArticleMutations,
60
71
  CategoryQueries,
61
- CategoryMutations
72
+ CategoryMutations,
73
+ BackstageCategoryResolver
74
+ ]
75
+ };
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
62
106
  ]
63
107
  };
64
108
  }
@@ -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,5 +1,6 @@
1
- import { ArticleStage } from '@rytass/cms-base-nestjs-module';
1
+ import { ArticleSorter, ArticleStage } from '@rytass/cms-base-nestjs-module';
2
2
  import { ArticlesArgs } from './articles.args';
3
3
  export declare class BackstageArticleArgs extends ArticlesArgs {
4
4
  stage: ArticleStage;
5
+ sorter?: ArticleSorter | null;
5
6
  }
@@ -1,5 +1,5 @@
1
1
  import { Field, ArgsType, registerEnumType } from '@nestjs/graphql';
2
- import { ArticleStage } from '@rytass/cms-base-nestjs-module';
2
+ import { ArticleStage, ArticleSorter } from '@rytass/cms-base-nestjs-module';
3
3
  import { ArticlesArgs } from './articles.args.js';
4
4
 
5
5
  function _ts_decorate(decorators, target, key, desc) {
@@ -13,16 +13,26 @@ function _ts_metadata(k, v) {
13
13
  }
14
14
  class BackstageArticleArgs extends ArticlesArgs {
15
15
  stage;
16
+ sorter;
16
17
  }
17
18
  _ts_decorate([
18
19
  Field(()=>ArticleStage),
19
20
  _ts_metadata("design:type", typeof ArticleStage === "undefined" ? Object : ArticleStage)
20
21
  ], BackstageArticleArgs.prototype, "stage", void 0);
22
+ _ts_decorate([
23
+ Field(()=>ArticleSorter, {
24
+ nullable: true
25
+ }),
26
+ _ts_metadata("design:type", Object)
27
+ ], BackstageArticleArgs.prototype, "sorter", void 0);
21
28
  BackstageArticleArgs = _ts_decorate([
22
29
  ArgsType()
23
30
  ], BackstageArticleArgs);
24
31
  registerEnumType(ArticleStage, {
25
32
  name: 'ArticleStage'
26
33
  });
34
+ registerEnumType(ArticleSorter, {
35
+ name: 'ArticleSorter'
36
+ });
27
37
 
28
38
  export { BackstageArticleArgs };
@@ -1,5 +1,8 @@
1
+ import { CategorySorter } from '@rytass/cms-base-nestjs-module';
1
2
  export declare class CategoriesArgs {
2
3
  parentIds?: string[] | null;
3
4
  ids?: string[] | null;
4
5
  searchTerm?: string | null;
6
+ fromTop?: boolean | null;
7
+ sorter?: CategorySorter | null;
5
8
  }
@@ -1,4 +1,5 @@
1
- import { Field, ArgsType } from '@nestjs/graphql';
1
+ import { Field, ArgsType, registerEnumType } from '@nestjs/graphql';
2
+ import { CategorySorter } from '@rytass/cms-base-nestjs-module';
2
3
 
3
4
  function _ts_decorate(decorators, target, key, desc) {
4
5
  var c = arguments.length, r = c < 3 ? target : desc, d;
@@ -13,6 +14,8 @@ class CategoriesArgs {
13
14
  parentIds;
14
15
  ids;
15
16
  searchTerm;
17
+ fromTop;
18
+ sorter;
16
19
  }
17
20
  _ts_decorate([
18
21
  Field(()=>[
@@ -36,8 +39,24 @@ _ts_decorate([
36
39
  }),
37
40
  _ts_metadata("design:type", Object)
38
41
  ], CategoriesArgs.prototype, "searchTerm", void 0);
42
+ _ts_decorate([
43
+ Field(()=>Boolean, {
44
+ description: 'If true, return only top level categories',
45
+ nullable: true
46
+ }),
47
+ _ts_metadata("design:type", Object)
48
+ ], CategoriesArgs.prototype, "fromTop", void 0);
49
+ _ts_decorate([
50
+ Field(()=>CategorySorter, {
51
+ nullable: true
52
+ }),
53
+ _ts_metadata("design:type", Object)
54
+ ], CategoriesArgs.prototype, "sorter", void 0);
39
55
  CategoriesArgs = _ts_decorate([
40
56
  ArgsType()
41
57
  ], CategoriesArgs);
58
+ registerEnumType(CategorySorter, {
59
+ name: 'CategorySorter'
60
+ });
42
61
 
43
62
  export { CategoriesArgs };
@@ -0,0 +1,4 @@
1
+ export declare class CategoryMultiLanguageNameDto {
2
+ language: string;
3
+ name: string;
4
+ }
@@ -0,0 +1,28 @@
1
+ import { Field, ObjectType } 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 CategoryMultiLanguageNameDto {
13
+ language;
14
+ name;
15
+ }
16
+ _ts_decorate([
17
+ Field(()=>String),
18
+ _ts_metadata("design:type", String)
19
+ ], CategoryMultiLanguageNameDto.prototype, "language", void 0);
20
+ _ts_decorate([
21
+ Field(()=>String),
22
+ _ts_metadata("design:type", String)
23
+ ], CategoryMultiLanguageNameDto.prototype, "name", void 0);
24
+ CategoryMultiLanguageNameDto = _ts_decorate([
25
+ ObjectType('CategoryMultiLanguageName')
26
+ ], CategoryMultiLanguageNameDto);
27
+
28
+ export { CategoryMultiLanguageNameDto };
@@ -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 };