UNPKG

@rytass/cms-base-nestjs-module

Version:

Rytass Content Management System NestJS Base Module

113 lines (110 loc) 3.51 kB
import { MULTIPLE_LANGUAGE_MODE, CMS_BASE_MODULE_OPTIONS, MULTIPLE_CATEGORY_PARENT_MODE, CIRCULAR_CATEGORY_MODE, ENABLE_SIGNATURE_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'; 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: ENABLE_SIGNATURE_MODE, useFactory: (options)=>options?.signatureMode ?? null, inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: SIGNATURE_LEVELS, useFactory: (options)=>options?.signatureLevels ?? [], 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 ?? false, inject: [ CMS_BASE_MODULE_OPTIONS ] }, { provide: AUTO_RELEASE_AFTER_APPROVED, useFactory: (options)=>options?.autoReleaseWhenLatestSignatureApproved ?? false, inject: [ CMS_BASE_MODULE_OPTIONS ] } ]; export { OptionProviders };