construct-convert-map.ts 955 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import type Crowi from '~/server/crowi';
  2. import type { OverwriteFunction } from './overwrite-function';
  3. import { keepOriginal } from './overwrite-function';
  4. export type ConvertMap = {
  5. [collectionName: string]: {
  6. [propertyName: string]: OverwriteFunction,
  7. }
  8. }
  9. /**
  10. * initialize convert map. set keepOriginal as default
  11. *
  12. * @param {Crowi} crowi Crowi instance
  13. */
  14. export const constructConvertMap = (crowi: Crowi): ConvertMap => {
  15. const convertMap: ConvertMap = {};
  16. const models = crowi.models;
  17. // by default, original value is used for imported documents
  18. for (const model of Object.values(models)) {
  19. if (model.collection == null) {
  20. continue;
  21. }
  22. const collectionName = model.collection.name;
  23. console.log({ collectionName });
  24. convertMap[collectionName] = {};
  25. for (const key of Object.keys(model.schema.paths)) {
  26. convertMap[collectionName][key] = keepOriginal;
  27. }
  28. }
  29. return convertMap;
  30. };