index.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. import type { GrowiArchiveImportOption } from '~/models/admin/growi-archive-import-option';
  2. import { isImportOptionForPages } from '~/models/admin/import-option-for-pages';
  3. import type { OverwriteParams } from '../import-settings';
  4. import { overwriteParams as overwriteParamsForAttachmentFilesChunks } from './attachmentFiles.chunks';
  5. import { generateOverwriteParams as generateForPages } from './pages';
  6. import { generateOverwriteParams as generateForRevisions } from './revisions';
  7. /**
  8. * generate overwrite params with overwrite-params/* modules
  9. */
  10. export const generateOverwriteParams = <OPT extends GrowiArchiveImportOption>(
  11. collectionName: string, operatorUserId: string, option: OPT,
  12. ): OverwriteParams => {
  13. switch (collectionName) {
  14. case 'pages':
  15. if (!isImportOptionForPages(option)) {
  16. throw new Error('Invalid option for pages');
  17. }
  18. return generateForPages(operatorUserId, option);
  19. case 'revisions':
  20. if (!isImportOptionForPages(option)) {
  21. throw new Error('Invalid option for revisions');
  22. }
  23. return generateForRevisions(operatorUserId, option);
  24. case 'attachmentFiles.chunks':
  25. return overwriteParamsForAttachmentFilesChunks;
  26. default:
  27. return {};
  28. }
  29. };