UNPKG

@rytass/cms-base-nestjs-module

Version:

Rytass Content Management System NestJS Base Module

109 lines (106 loc) 3.43 kB
import { CMS_BASE_MODULE_OPTIONS, MULTIPLE_LANGUAGE_MODE, MULTIPLE_CATEGORY_PARENT_MODE, CIRCULAR_CATEGORY_MODE, SIGNATURE_LEVELS, PROVIDE_ARTICLE_ENTITY, PROVIDE_ARTICLE_VERSION_ENTITY, PROVIDE_ARTICLE_VERSION_CONTENT_ENTITY, PROVIDE_CATEGORY_ENTITY, PROVIDE_CATEGORY_MULTI_LANGUAGE_NAME_ENTITY, PROVIDE_SIGNATURE_LEVEL_ENTITY, FULL_TEXT_SEARCH_MODE, DRAFT_MODE, AUTO_RELEASE_AFTER_APPROVED } from '../typings/cms-base-providers.js'; import { DEFAULT_SIGNATURE_LEVEL } from './default-signature-level.js'; const OptionProviders = [ { provide: MULTIPLE_LANGUAGE_MODE, useFactory: (options)=>options?.multipleLanguageMode ?? false, inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: MULTIPLE_CATEGORY_PARENT_MODE, useFactory: (options)=>options?.allowMultipleParentCategories ?? false, inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: CIRCULAR_CATEGORY_MODE, useFactory: (options)=>options?.allowCircularCategories ?? false, inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: SIGNATURE_LEVELS, useFactory: (options)=>options?.signatureLevels ?? [ DEFAULT_SIGNATURE_LEVEL ], inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: PROVIDE_ARTICLE_ENTITY, useFactory: (options)=>options?.articleEntity ?? null, inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: PROVIDE_ARTICLE_VERSION_ENTITY, useFactory: (options)=>options?.articleVersionEntity ?? null, inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: PROVIDE_ARTICLE_VERSION_CONTENT_ENTITY, useFactory: (options)=>options?.articleVersionContentEntity ?? null, inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: PROVIDE_CATEGORY_ENTITY, useFactory: (options)=>options?.categoryEntity ?? null, inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: PROVIDE_CATEGORY_MULTI_LANGUAGE_NAME_ENTITY, useFactory: (options)=>options?.categoryMultiLanguageNameEntity ?? null, inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: PROVIDE_SIGNATURE_LEVEL_ENTITY, useFactory: (options)=>options?.signatureLevelEntity ?? null, inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: FULL_TEXT_SEARCH_MODE, useFactory: async (options)=>{ if (!options?.fullTextSearchMode) return false; try { await import('@node-rs/jieba'); return true; } catch (_ex) { throw new Error('Full Text Search Mode requires @node-rs/jieba module, please install it first.'); } }, inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: DRAFT_MODE, useFactory: (options)=>options?.enableDraftMode ?? true, inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: AUTO_RELEASE_AFTER_APPROVED, useFactory: (options)=>options?.autoReleaseWhenLatestSignatureApproved ?? false, inject: [ CMS_BASE_MODULE_OPTIONS ] } ]; export { OptionProviders };