UNPKG

@rytass/cms-base-nestjs-module

Version:

Rytass Content Management System NestJS Base Module

53 lines (50 loc) 2.11 kB
import { DataSource } from 'typeorm'; import { PROVIDE_ARTICLE_ENTITY, RESOLVED_ARTICLE_REPO, PROVIDE_ARTICLE_VERSION_ENTITY, RESOLVED_ARTICLE_VERSION_REPO, PROVIDE_ARTICLE_VERSION_CONTENT_ENTITY, RESOLVED_ARTICLE_VERSION_CONTENT_REPO, PROVIDE_CATEGORY_ENTITY, RESOLVED_CATEGORY_REPO, PROVIDE_CATEGORY_MULTI_LANGUAGE_NAME_ENTITY, RESOLVED_CATEGORY_MULTI_LANGUAGE_NAME_REPO, PROVIDE_SIGNATURE_LEVEL_ENTITY, RESOLVED_SIGNATURE_LEVEL_REPO } from '../typings/cms-base-providers.js'; import { BaseArticleRepo } from '../models/base-article.entity.js'; import { BaseArticleVersionRepo } from '../models/base-article-version.entity.js'; import { BaseArticleVersionContentRepo } from '../models/base-article-version-content.entity.js'; import { BaseCategoryRepo } from '../models/base-category.entity.js'; import { BaseSignatureLevelRepo } from '../models/base-signature-level.entity.js'; import { BaseCategoryMultiLanguageNameRepo } from '../models/base-category-multi-language-name.entity.js'; const TARGETS = [ [ BaseArticleRepo, PROVIDE_ARTICLE_ENTITY, RESOLVED_ARTICLE_REPO ], [ BaseArticleVersionRepo, PROVIDE_ARTICLE_VERSION_ENTITY, RESOLVED_ARTICLE_VERSION_REPO ], [ BaseArticleVersionContentRepo, PROVIDE_ARTICLE_VERSION_CONTENT_ENTITY, RESOLVED_ARTICLE_VERSION_CONTENT_REPO ], [ BaseCategoryRepo, PROVIDE_CATEGORY_ENTITY, RESOLVED_CATEGORY_REPO ], [ BaseCategoryMultiLanguageNameRepo, PROVIDE_CATEGORY_MULTI_LANGUAGE_NAME_ENTITY, RESOLVED_CATEGORY_MULTI_LANGUAGE_NAME_REPO ], [ BaseSignatureLevelRepo, PROVIDE_SIGNATURE_LEVEL_ENTITY, RESOLVED_SIGNATURE_LEVEL_REPO ] ]; const ResolvedRepoProviders = TARGETS.map(([repo, provide, resolved])=>({ provide: resolved, useFactory: (baseRepo, entity, dataSource)=>entity ? dataSource.getRepository(entity) : baseRepo, inject: [ repo, provide, DataSource ] })); export { ResolvedRepoProviders, TARGETS };