@powerhousedao/codegen 5.1.0-dev.3 → 5.1.0-dev.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/error.esm.t +3 -3
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +3 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +68 -4
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +1 -3
- package/dist/src/codegen/__tests__/config.d.ts +1 -0
- package/dist/src/codegen/__tests__/config.d.ts.map +1 -1
- package/dist/src/codegen/__tests__/config.js +1 -0
- package/dist/src/codegen/__tests__/config.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-doc-model.test.js +113 -88
- package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js +6 -3
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-editor.test.js +10 -7
- package/dist/src/codegen/__tests__/generate-editor.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-manifest.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js +159 -0
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js.map +1 -0
- package/dist/src/codegen/generate.d.ts +42 -6
- package/dist/src/codegen/generate.d.ts.map +1 -1
- package/dist/src/codegen/generate.js +212 -95
- package/dist/src/codegen/generate.js.map +1 -1
- package/dist/src/codegen/graphql.d.ts +20 -17
- package/dist/src/codegen/graphql.d.ts.map +1 -1
- package/dist/src/codegen/graphql.js +105 -78
- package/dist/src/codegen/graphql.js.map +1 -1
- package/dist/src/codegen/hygen.d.ts +1 -8
- package/dist/src/codegen/hygen.d.ts.map +1 -1
- package/dist/src/codegen/hygen.js +11 -68
- package/dist/src/codegen/hygen.js.map +1 -1
- package/dist/src/create-lib/create-project.d.ts.map +1 -1
- package/dist/src/create-lib/create-project.js +80 -0
- package/dist/src/create-lib/create-project.js.map +1 -1
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +0 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/ts-morph-utils/constants.d.ts +18 -0
- package/dist/src/ts-morph-utils/constants.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/constants.js +18 -0
- package/dist/src/ts-morph-utils/constants.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-editor.d.ts +24 -0
- package/dist/src/ts-morph-utils/file-builders/document-editor.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-editor.js +271 -0
- package/dist/src/ts-morph-utils/file-builders/document-editor.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/gen-dir.d.ts +3 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/gen-dir.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/gen-dir.js +216 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/gen-dir.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/root-dir.d.ts +3 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/root-dir.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/root-dir.js +55 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/root-dir.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/src-dir.d.ts +3 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/src-dir.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/src-dir.js +252 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/src-dir.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/types.d.ts +32 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/types.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/types.js +2 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/types.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.d.ts +31 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.js +136 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model.d.ts +8 -0
- package/dist/src/ts-morph-utils/file-builders/document-model.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model.js +250 -0
- package/dist/src/ts-morph-utils/file-builders/document-model.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/drive-editor.d.ts +56 -0
- package/dist/src/ts-morph-utils/file-builders/drive-editor.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/drive-editor.js +341 -0
- package/dist/src/ts-morph-utils/file-builders/drive-editor.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/editor-common.d.ts +3 -0
- package/dist/src/ts-morph-utils/file-builders/editor-common.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/editor-common.js +15 -0
- package/dist/src/ts-morph-utils/file-builders/editor-common.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/index-files.d.ts +18 -0
- package/dist/src/ts-morph-utils/file-builders/index-files.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/index-files.js +25 -0
- package/dist/src/ts-morph-utils/file-builders/index-files.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/module-files.d.ts +25 -0
- package/dist/src/ts-morph-utils/file-builders/module-files.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/module-files.js +104 -0
- package/dist/src/ts-morph-utils/file-builders/module-files.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/subgraphs.d.ts +6 -0
- package/dist/src/ts-morph-utils/file-builders/subgraphs.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/subgraphs.js +53 -0
- package/dist/src/ts-morph-utils/file-builders/subgraphs.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/types.d.ts +13 -0
- package/dist/src/ts-morph-utils/file-builders/types.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/types.js +2 -0
- package/dist/src/ts-morph-utils/file-builders/types.js.map +1 -0
- package/dist/src/ts-morph-utils/file-utils.d.ts +28 -0
- package/dist/src/ts-morph-utils/file-utils.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-utils.js +102 -0
- package/dist/src/ts-morph-utils/file-utils.js.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/common-files.d.ts +5 -0
- package/dist/src/ts-morph-utils/name-builders/common-files.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/common-files.js +15 -0
- package/dist/src/ts-morph-utils/name-builders/common-files.js.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/document-model-files.d.ts +4 -0
- package/dist/src/ts-morph-utils/name-builders/document-model-files.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/document-model-files.js +12 -0
- package/dist/src/ts-morph-utils/name-builders/document-model-files.js.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/editor-files.d.ts +10 -0
- package/dist/src/ts-morph-utils/name-builders/editor-files.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/editor-files.js +37 -0
- package/dist/src/ts-morph-utils/name-builders/editor-files.js.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/get-file-paths.d.ts +4 -0
- package/dist/src/ts-morph-utils/name-builders/get-file-paths.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/get-file-paths.js +21 -0
- package/dist/src/ts-morph-utils/name-builders/get-file-paths.js.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/get-variable-names.d.ts +37 -0
- package/dist/src/ts-morph-utils/name-builders/get-variable-names.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/get-variable-names.js +149 -0
- package/dist/src/ts-morph-utils/name-builders/get-variable-names.js.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/types.d.ts +19 -0
- package/dist/src/ts-morph-utils/name-builders/types.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/types.js +2 -0
- package/dist/src/ts-morph-utils/name-builders/types.js.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/variables.d.ts +12 -0
- package/dist/src/ts-morph-utils/name-builders/variables.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/name-builders/variables.js +35 -0
- package/dist/src/ts-morph-utils/name-builders/variables.js.map +1 -0
- package/dist/src/ts-morph-utils/syntax-builders.d.ts +75 -0
- package/dist/src/ts-morph-utils/syntax-builders.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/syntax-builders.js +215 -0
- package/dist/src/ts-morph-utils/syntax-builders.js.map +1 -0
- package/dist/src/ts-morph-utils/syntax-getters.d.ts +11 -0
- package/dist/src/ts-morph-utils/syntax-getters.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/syntax-getters.js +45 -0
- package/dist/src/ts-morph-utils/syntax-getters.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/actions.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/actions.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/actions.js +28 -0
- package/dist/src/ts-morph-utils/templates/document-model/actions.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/actions.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/actions.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/actions.js +40 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/actions.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/creators.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/creators.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/creators.js +16 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/creators.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-schema.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-schema.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-schema.js +56 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-schema.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.js +5 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/index.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/index.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/index.js +29 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/index.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/actions.d.ts +8 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/actions.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/actions.js +39 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/actions.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/creators.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/creators.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/creators.js +97 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/creators.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/error.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/error.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/error.js +73 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/error.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/operations.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/operations.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/operations.js +61 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/operations.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/ph-factories.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/ph-factories.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/ph-factories.js +93 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/ph-factories.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.js +106 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/schema/index.d.ts +2 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/schema/index.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/schema/index.js +6 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/schema/index.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/types.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/types.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/types.js +38 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/types.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/utils.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/utils.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/utils.js +77 -0
- package/dist/src/ts-morph-utils/templates/document-model/gen/utils.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/hooks.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/hooks.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/hooks.js +49 -0
- package/dist/src/ts-morph-utils/templates/document-model/hooks.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/index.d.ts +2 -0
- package/dist/src/ts-morph-utils/templates/document-model/index.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/index.js +9 -0
- package/dist/src/ts-morph-utils/templates/document-model/index.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/module.d.ts +9 -0
- package/dist/src/ts-morph-utils/templates/document-model/module.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/module.js +26 -0
- package/dist/src/ts-morph-utils/templates/document-model/module.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/index.d.ts +2 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/index.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/index.js +5 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/index.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.js +121 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.d.ts +6 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.js +87 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/utils.d.ts +2 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/utils.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/utils.js +5 -0
- package/dist/src/ts-morph-utils/templates/document-model/src/utils.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.d.ts +7 -0
- package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.js +22 -0
- package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/utils.d.ts +3 -0
- package/dist/src/ts-morph-utils/templates/document-model/utils.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/utils.js +11 -0
- package/dist/src/ts-morph-utils/templates/document-model/utils.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/drive-editor.d.ts +5 -0
- package/dist/src/ts-morph-utils/templates/drive-editor.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/drive-editor.js +211 -0
- package/dist/src/ts-morph-utils/templates/drive-editor.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/unsafe-utils.d.ts +8 -0
- package/dist/src/ts-morph-utils/templates/unsafe-utils.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/unsafe-utils.js +23 -0
- package/dist/src/ts-morph-utils/templates/unsafe-utils.js.map +1 -0
- package/dist/src/ts-morph-utils/templates/utils.d.ts +6 -0
- package/dist/src/ts-morph-utils/templates/utils.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/utils.js +16 -0
- package/dist/src/ts-morph-utils/templates/utils.js.map +1 -0
- package/dist/src/ts-morph-utils/ts-morph-project.d.ts +3 -0
- package/dist/src/ts-morph-utils/ts-morph-project.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/ts-morph-project.js +9 -0
- package/dist/src/ts-morph-utils/ts-morph-project.js.map +1 -0
- package/dist/src/ts-morph-utils/types.d.ts +34 -0
- package/dist/src/ts-morph-utils/types.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/types.js +2 -0
- package/dist/src/ts-morph-utils/types.js.map +1 -0
- package/dist/src/utils/mock.d.ts +2 -3
- package/dist/src/utils/mock.d.ts.map +1 -1
- package/dist/src/utils/mock.js +4 -4
- package/dist/src/utils/mock.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -14
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/edit-name.esm.t +0 -78
- package/dist/src/codegen/__tests__/generate-schemas.test.d.ts +0 -2
- package/dist/src/codegen/__tests__/generate-schemas.test.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/generate-schemas.test.js +0 -143
- package/dist/src/codegen/__tests__/generate-schemas.test.js.map +0 -1
- package/dist/src/ts-morph-utils.d.ts +0 -48
- package/dist/src/ts-morph-utils.d.ts.map +0 -1
- package/dist/src/ts-morph-utils.js +0 -207
- package/dist/src/ts-morph-utils.js.map +0 -1
package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t
CHANGED
|
@@ -20,7 +20,7 @@ import type {
|
|
|
20
20
|
} from './actions.js';
|
|
21
21
|
|
|
22
22
|
<% actions.filter(a => a.hasInput).forEach(action => { _%>
|
|
23
|
-
export const <%= h.changeCase.camel(action.name) %> = (input
|
|
23
|
+
export const <%= h.changeCase.camel(action.name) %> = (input<% if(action.isEmptyInput) { %>: <%= h.changeCase.pascal(action.name) %>Input = {}<% } else { %>: <%= h.changeCase.pascal(action.name) %>Input<% } %><%if(action.hasAttachment){ %>, attachments: AttachmentInput[] <% } %>) =>
|
|
24
24
|
createAction<<%= h.changeCase.pascal(action.name) %>Action>(
|
|
25
25
|
'<%= h.changeCase.constantCase(action.name) %>',
|
|
26
26
|
{...input},
|
package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/error.esm.t
CHANGED
|
@@ -5,7 +5,7 @@ force: true
|
|
|
5
5
|
<% if (errors.length > 0) { _%>
|
|
6
6
|
export type ErrorCode =
|
|
7
7
|
<% errors.forEach((error, errorIndex) => { _%>
|
|
8
|
-
|
|
|
8
|
+
| "<%= h.changeCase.pascal(error.name) %>"<% if (errorIndex === errors.length - 1) { %>;<% } %>
|
|
9
9
|
<% }); _%>
|
|
10
10
|
|
|
11
11
|
export interface ReducerError {
|
|
@@ -14,8 +14,8 @@ export interface ReducerError {
|
|
|
14
14
|
|
|
15
15
|
<% errors.forEach(error => { _%>
|
|
16
16
|
export class <%= h.changeCase.pascal(error.name) %> extends Error implements ReducerError {
|
|
17
|
-
errorCode =
|
|
18
|
-
constructor(message =
|
|
17
|
+
errorCode = "<%= h.changeCase.pascal(error.name) %>" as ErrorCode;
|
|
18
|
+
constructor(message = "<%= h.changeCase.pascal(error.name) %>") {
|
|
19
19
|
super(message);
|
|
20
20
|
}
|
|
21
21
|
}
|
package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js
CHANGED
|
@@ -15,6 +15,9 @@ module.exports = {
|
|
|
15
15
|
? filteredModules[0].operations.map((a) => ({
|
|
16
16
|
name: a.name,
|
|
17
17
|
hasInput: a.schema !== null,
|
|
18
|
+
isEmptyInput:
|
|
19
|
+
a.schema?.includes("_empty") &&
|
|
20
|
+
!a.schema.replace(/_empty:\s*Boolean/, "").match(/\w+:\s*\w+/),
|
|
18
21
|
hasAttachment: a.schema?.includes(": Attachment"),
|
|
19
22
|
scope: a.scope || "global",
|
|
20
23
|
state: a.scope === "global" ? "" : a.scope, // the state this action affects
|
|
@@ -2,13 +2,77 @@
|
|
|
2
2
|
to: "<%= editorDir %>/editor.tsx"
|
|
3
3
|
unless_exists: true
|
|
4
4
|
---
|
|
5
|
-
import {
|
|
5
|
+
import { DocumentToolbar } from "@powerhousedao/design-system/connect";
|
|
6
|
+
import { setName } from "document-model";
|
|
7
|
+
import { type FormEvent, useState } from "react";
|
|
8
|
+
<% if(!documentType){ %>import { useSelectedDocument } from "@powerhousedao/reactor-browser";<% } else { %>import { <%= useSelectedHookName %> } from "<%= documentModelDir %>";<% } %>
|
|
6
9
|
|
|
7
|
-
/** Implement your editor behavior here */
|
|
8
10
|
export default function Editor() {
|
|
11
|
+
const [document, dispatch] = <%= useSelectedHookName %>();
|
|
12
|
+
const [isEditing, setIsEditing] = useState(false);
|
|
13
|
+
|
|
14
|
+
if (!document) return null;
|
|
15
|
+
|
|
16
|
+
const handleSubmit = (event: FormEvent<HTMLFormElement>) => {
|
|
17
|
+
event.preventDefault();
|
|
18
|
+
const form = event.currentTarget;
|
|
19
|
+
const nameInput = form.elements.namedItem("name") as HTMLInputElement;
|
|
20
|
+
const name = nameInput.value.trim();
|
|
21
|
+
if (!name) return;
|
|
22
|
+
dispatch(setName(name));
|
|
23
|
+
setIsEditing(false);
|
|
24
|
+
};
|
|
25
|
+
|
|
9
26
|
return (
|
|
10
|
-
<div className="
|
|
11
|
-
|
|
27
|
+
<div className="min-h-screen bg-gray-50">
|
|
28
|
+
<DocumentToolbar />
|
|
29
|
+
<div className="flex justify-center px-4 py-8">
|
|
30
|
+
<div className="w-full max-w-md rounded-xl bg-white p-6 shadow-sm">
|
|
31
|
+
<div className="mb-4 text-xs font-medium uppercase tracking-wide text-gray-400">
|
|
32
|
+
<%= pascalCaseDocumentType %>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
{isEditing ? (
|
|
36
|
+
<form onSubmit={handleSubmit} className="space-y-4">
|
|
37
|
+
<input
|
|
38
|
+
type="text"
|
|
39
|
+
name="name"
|
|
40
|
+
defaultValue={document.header.name}
|
|
41
|
+
autoFocus
|
|
42
|
+
className="w-full rounded-lg border border-gray-200 px-4 py-3 text-lg font-semibold text-gray-900 outline-none transition-colors focus:border-blue-500 focus:ring-2 focus:ring-blue-100"
|
|
43
|
+
placeholder="Enter name..."
|
|
44
|
+
/>
|
|
45
|
+
<div className="flex gap-2">
|
|
46
|
+
<button
|
|
47
|
+
type="submit"
|
|
48
|
+
className="flex-1 rounded-lg bg-blue-600 px-4 py-2.5 text-sm font-medium text-white transition-colors hover:bg-blue-700"
|
|
49
|
+
>
|
|
50
|
+
Save
|
|
51
|
+
</button>
|
|
52
|
+
<button
|
|
53
|
+
type="button"
|
|
54
|
+
onClick={() => setIsEditing(false)}
|
|
55
|
+
className="flex-1 rounded-lg border border-gray-200 px-4 py-2.5 text-sm font-medium text-gray-600 transition-colors hover:bg-gray-50"
|
|
56
|
+
>
|
|
57
|
+
Cancel
|
|
58
|
+
</button>
|
|
59
|
+
</div>
|
|
60
|
+
</form>
|
|
61
|
+
) : (
|
|
62
|
+
<div className="flex items-center justify-between gap-4">
|
|
63
|
+
<h2 className="truncate text-xl font-semibold text-gray-900">
|
|
64
|
+
{document.header.name || "Untitled"}
|
|
65
|
+
</h2>
|
|
66
|
+
<button
|
|
67
|
+
onClick={() => setIsEditing(true)}
|
|
68
|
+
className="shrink-0 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200"
|
|
69
|
+
>
|
|
70
|
+
Edit
|
|
71
|
+
</button>
|
|
72
|
+
</div>
|
|
73
|
+
)}
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
12
76
|
</div>
|
|
13
77
|
);
|
|
14
78
|
}
|
|
@@ -54,9 +54,7 @@ module.exports = {
|
|
|
54
54
|
const useInSelectedFolderHookName = documentType
|
|
55
55
|
? `use${phDocumentTypeName}sInSelectedFolder`
|
|
56
56
|
: "useDocumentsInSelectedFolder";
|
|
57
|
-
const editNameComponentName =
|
|
58
|
-
? `Edit${pascalCaseDocumentType}Name`
|
|
59
|
-
: "EditDocumentName";
|
|
57
|
+
const editNameComponentName = "EditName"
|
|
60
58
|
|
|
61
59
|
return {
|
|
62
60
|
rootDir,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/codegen/__tests__/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,SAA0C,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/codegen/__tests__/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,SAA0C,CAAC;AACxE,eAAO,MAAM,YAAY,SAAuC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,MAAM,CAAC;AACxE,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { generateDocumentModel, hygenGenerateProcessor, loadDocumentModel, } from "@powerhousedao/codegen";
|
|
2
2
|
import { readFileSync, rmSync } from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { afterAll, beforeAll, beforeEach, describe, expect, it, } from "vitest";
|
|
5
|
+
import { USE_TS_MORPH } from "./config.js";
|
|
5
6
|
import { DOCUMENT_MODELS_TEST_PROJECT, GENERATE_DOC_MODEL_TEST_OUTPUT_DIR, TEST_PACKAGE_NAME, } from "./constants.js";
|
|
6
7
|
import { runGeneratedTests } from "./fixtures/run-generated-tests.js";
|
|
7
8
|
import { compile } from "./fixtures/typecheck.js";
|
|
@@ -14,9 +15,9 @@ describe("document model", () => {
|
|
|
14
15
|
const documentModelsSrcPath = path.join(testDir, "data", "document-models");
|
|
15
16
|
let documentModelsDirName = path.join(testOutDirPath, "document-models");
|
|
16
17
|
let processorsDirName = path.join(testOutDirPath, "processors");
|
|
17
|
-
async function setupTest(context) {
|
|
18
|
+
async function setupTest(context, dataDir = testDataDir) {
|
|
18
19
|
testOutDirPath = getTestOutDirPath(context.task.name, outDirName);
|
|
19
|
-
await copyAllFiles(
|
|
20
|
+
await copyAllFiles(dataDir, testOutDirPath);
|
|
20
21
|
documentModelsDirName = path.join(testOutDirPath, "document-models");
|
|
21
22
|
processorsDirName = path.join(testOutDirPath, "processors");
|
|
22
23
|
}
|
|
@@ -30,73 +31,46 @@ describe("document model", () => {
|
|
|
30
31
|
purgeDirAfterTest(outDirName);
|
|
31
32
|
});
|
|
32
33
|
const generate = async () => {
|
|
33
|
-
await
|
|
34
|
+
const billingStatementDocumentModel = await loadDocumentModel(path.join(documentModelsSrcPath, "billing-statement", "billing-statement.json"));
|
|
35
|
+
await generateDocumentModel({
|
|
36
|
+
dir: documentModelsDirName,
|
|
37
|
+
specifiedPackageName: TEST_PACKAGE_NAME,
|
|
38
|
+
documentModelState: billingStatementDocumentModel,
|
|
39
|
+
useTsMorph: USE_TS_MORPH,
|
|
40
|
+
useVersioning: false,
|
|
34
41
|
skipFormat: true,
|
|
35
|
-
outDir: documentModelsDirName,
|
|
36
42
|
});
|
|
37
|
-
const billingStatementDocumentModel = await loadDocumentModel(path.join(documentModelsSrcPath, "billing-statement", "billing-statement.json"));
|
|
38
|
-
await hygenGenerateDocumentModel(billingStatementDocumentModel, documentModelsDirName, TEST_PACKAGE_NAME, { skipFormat: true });
|
|
39
43
|
const testDocDocumentModel = await loadDocumentModel(path.join(documentModelsSrcPath, "test-doc", "test-doc.json"));
|
|
40
|
-
await
|
|
44
|
+
await generateDocumentModel({
|
|
45
|
+
useTsMorph: USE_TS_MORPH,
|
|
46
|
+
useVersioning: false,
|
|
47
|
+
dir: documentModelsDirName,
|
|
48
|
+
specifiedPackageName: TEST_PACKAGE_NAME,
|
|
49
|
+
documentModelState: testDocDocumentModel,
|
|
50
|
+
skipFormat: true,
|
|
51
|
+
});
|
|
41
52
|
};
|
|
42
53
|
it("should generate a document model", {
|
|
43
54
|
timeout: 100000,
|
|
44
|
-
}, async () => {
|
|
55
|
+
}, async (context) => {
|
|
56
|
+
await setupTest(context);
|
|
45
57
|
await generate();
|
|
46
58
|
await compile(testOutDirPath);
|
|
47
59
|
await runGeneratedTests(testOutDirPath);
|
|
48
60
|
});
|
|
49
|
-
it("should generate
|
|
61
|
+
it("should generate a document model when previous document models exist", {
|
|
50
62
|
timeout: 100000,
|
|
51
|
-
}, async () => {
|
|
63
|
+
}, async (context) => {
|
|
64
|
+
const dataDirOverride = getTestDataDir(testDir, "document-models-test-project-with-existing-document-models");
|
|
65
|
+
await setupTest(context, dataDirOverride);
|
|
52
66
|
await generate();
|
|
53
|
-
await hygenGenerateProcessor("test-analytics-processor", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
|
|
54
|
-
skipFormat: true,
|
|
55
|
-
});
|
|
56
|
-
await compile(testOutDirPath);
|
|
57
|
-
});
|
|
58
|
-
it("should generate multiple analytics processors with composable factories", {
|
|
59
|
-
timeout: 100000,
|
|
60
|
-
}, async () => {
|
|
61
|
-
await generate();
|
|
62
|
-
await hygenGenerateProcessor("test1", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
|
|
63
|
-
skipFormat: true,
|
|
64
|
-
});
|
|
65
|
-
await hygenGenerateProcessor("test2", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
|
|
66
|
-
skipFormat: true,
|
|
67
|
-
});
|
|
68
|
-
await hygenGenerateProcessor("test3", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
|
|
69
|
-
skipFormat: true,
|
|
70
|
-
});
|
|
71
|
-
await compile(testOutDirPath);
|
|
72
|
-
});
|
|
73
|
-
it("should generate a relational db processor and factory", {
|
|
74
|
-
timeout: 100000,
|
|
75
|
-
}, async () => {
|
|
76
|
-
await generate();
|
|
77
|
-
await hygenGenerateProcessor("test-relational-processor", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
|
|
78
|
-
skipFormat: true,
|
|
79
|
-
});
|
|
80
|
-
await compile(testOutDirPath);
|
|
81
|
-
});
|
|
82
|
-
it("should generate multiple relational db processors with composable factories", {
|
|
83
|
-
timeout: 100000,
|
|
84
|
-
}, async () => {
|
|
85
|
-
await generate();
|
|
86
|
-
await hygenGenerateProcessor("test1", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
|
|
87
|
-
skipFormat: true,
|
|
88
|
-
});
|
|
89
|
-
await hygenGenerateProcessor("test2", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
|
|
90
|
-
skipFormat: true,
|
|
91
|
-
});
|
|
92
|
-
await hygenGenerateProcessor("test3", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
|
|
93
|
-
skipFormat: true,
|
|
94
|
-
});
|
|
95
67
|
await compile(testOutDirPath);
|
|
68
|
+
await runGeneratedTests(testOutDirPath);
|
|
96
69
|
});
|
|
97
70
|
it("should create the document-models.ts file if it does not exist", {
|
|
98
71
|
timeout: 100000,
|
|
99
|
-
}, async () => {
|
|
72
|
+
}, async (context) => {
|
|
73
|
+
await setupTest(context);
|
|
100
74
|
const documentModelsFilePath = path.join(documentModelsDirName, "document-models.ts");
|
|
101
75
|
rmSync(documentModelsFilePath, { force: true });
|
|
102
76
|
await generate();
|
|
@@ -112,7 +86,8 @@ describe("document model", () => {
|
|
|
112
86
|
});
|
|
113
87
|
it("should generate multiple document models and export both in document-models.ts", {
|
|
114
88
|
timeout: 100000,
|
|
115
|
-
}, async () => {
|
|
89
|
+
}, async (context) => {
|
|
90
|
+
await setupTest(context);
|
|
116
91
|
await generate();
|
|
117
92
|
await compile(testOutDirPath);
|
|
118
93
|
const documentModelsFilePath = path.join(documentModelsDirName, "document-models.ts");
|
|
@@ -125,14 +100,22 @@ describe("document model", () => {
|
|
|
125
100
|
expect(documentModelsContent).toContain("TestDoc");
|
|
126
101
|
expect(documentModelsContent).toContain("]");
|
|
127
102
|
});
|
|
128
|
-
it("should generate an updated version of test-doc", { timeout: 100000 }, async () => {
|
|
103
|
+
it("should generate an updated version of test-doc", { timeout: 100000 }, async (context) => {
|
|
104
|
+
await setupTest(context);
|
|
129
105
|
await generate();
|
|
130
106
|
await compile(testOutDirPath);
|
|
131
107
|
const testDocDocumentModelV2 = await loadDocumentModel(path.join(documentModelsSrcPath, "..", "test-doc-versions", "test-doc-v2", "test-doc.json"));
|
|
132
108
|
// TODO: this is a hack to get the test to pass, we should be able to update the reducer file once is generated
|
|
133
109
|
// remove .out/document-model/test-doc/src/reducers/base-operations.ts file
|
|
134
110
|
rmSync(path.join(documentModelsDirName, "test-doc", "src", "reducers", "base-operations.ts"), { force: true });
|
|
135
|
-
await
|
|
111
|
+
await generateDocumentModel({
|
|
112
|
+
useTsMorph: USE_TS_MORPH,
|
|
113
|
+
useVersioning: false,
|
|
114
|
+
dir: documentModelsDirName,
|
|
115
|
+
specifiedPackageName: TEST_PACKAGE_NAME,
|
|
116
|
+
documentModelState: testDocDocumentModelV2,
|
|
117
|
+
skipFormat: true,
|
|
118
|
+
});
|
|
136
119
|
// expect .out/document-model/test-doc/src/reducers/base-operations.ts to contain setTestIdOperation, setTestNameOperation, setTestDescriptionOperation and setTestValueOperation
|
|
137
120
|
const baseOperationsPath = path.join(documentModelsDirName, "test-doc", "src", "reducers", "base-operations.ts");
|
|
138
121
|
const baseOperationsContent = readFileSync(baseOperationsPath, "utf-8");
|
|
@@ -141,7 +124,60 @@ describe("document model", () => {
|
|
|
141
124
|
expect(baseOperationsContent).toContain("setTestDescriptionOperation");
|
|
142
125
|
expect(baseOperationsContent).toContain("setTestValueOperation");
|
|
143
126
|
});
|
|
144
|
-
it("should generate
|
|
127
|
+
it("should generate an analytics processor and factory", {
|
|
128
|
+
timeout: 100000,
|
|
129
|
+
}, async (context) => {
|
|
130
|
+
await setupTest(context);
|
|
131
|
+
await generate();
|
|
132
|
+
await hygenGenerateProcessor("test-analytics-processor", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
|
|
133
|
+
skipFormat: true,
|
|
134
|
+
});
|
|
135
|
+
await compile(testOutDirPath);
|
|
136
|
+
});
|
|
137
|
+
it("should generate multiple analytics processors with composable factories", {
|
|
138
|
+
timeout: 100000,
|
|
139
|
+
}, async (context) => {
|
|
140
|
+
await setupTest(context);
|
|
141
|
+
await generate();
|
|
142
|
+
await hygenGenerateProcessor("test1", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
|
|
143
|
+
skipFormat: true,
|
|
144
|
+
});
|
|
145
|
+
await hygenGenerateProcessor("test2", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
|
|
146
|
+
skipFormat: true,
|
|
147
|
+
});
|
|
148
|
+
await hygenGenerateProcessor("test3", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
|
|
149
|
+
skipFormat: true,
|
|
150
|
+
});
|
|
151
|
+
await compile(testOutDirPath);
|
|
152
|
+
});
|
|
153
|
+
it("should generate a relational db processor and factory", {
|
|
154
|
+
timeout: 100000,
|
|
155
|
+
}, async (context) => {
|
|
156
|
+
await setupTest(context);
|
|
157
|
+
await generate();
|
|
158
|
+
await hygenGenerateProcessor("test-relational-processor", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
|
|
159
|
+
skipFormat: true,
|
|
160
|
+
});
|
|
161
|
+
await compile(testOutDirPath);
|
|
162
|
+
});
|
|
163
|
+
it("should generate multiple relational db processors with composable factories", {
|
|
164
|
+
timeout: 100000,
|
|
165
|
+
}, async (context) => {
|
|
166
|
+
await setupTest(context);
|
|
167
|
+
await generate();
|
|
168
|
+
await hygenGenerateProcessor("test1", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
|
|
169
|
+
skipFormat: true,
|
|
170
|
+
});
|
|
171
|
+
await hygenGenerateProcessor("test2", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
|
|
172
|
+
skipFormat: true,
|
|
173
|
+
});
|
|
174
|
+
await hygenGenerateProcessor("test3", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
|
|
175
|
+
skipFormat: true,
|
|
176
|
+
});
|
|
177
|
+
await compile(testOutDirPath);
|
|
178
|
+
});
|
|
179
|
+
it("should generate error classes and types from billing statement errors", { timeout: 100000 }, async (context) => {
|
|
180
|
+
await setupTest(context);
|
|
145
181
|
await generate();
|
|
146
182
|
await compile(testOutDirPath);
|
|
147
183
|
// Check general module errors
|
|
@@ -149,58 +185,47 @@ describe("document model", () => {
|
|
|
149
185
|
const generalErrorContent = readFileSync(generalErrorPath, "utf-8");
|
|
150
186
|
// Check that InvalidStatusTransition error is generated
|
|
151
187
|
expect(generalErrorContent).toContain("export type ErrorCode =");
|
|
152
|
-
expect(generalErrorContent).toContain("
|
|
188
|
+
expect(generalErrorContent).toContain(`"InvalidStatusTransition"`);
|
|
153
189
|
expect(generalErrorContent).toContain("export class InvalidStatusTransition extends Error implements ReducerError");
|
|
154
|
-
expect(generalErrorContent).toContain(
|
|
190
|
+
expect(generalErrorContent).toContain(`errorCode = "InvalidStatusTransition" as ErrorCode`);
|
|
155
191
|
// Check line_items module errors
|
|
156
192
|
const lineItemsErrorPath = path.join(documentModelsDirName, "billing-statement", "gen", "line-items", "error.ts");
|
|
157
193
|
const lineItemsErrorContent = readFileSync(lineItemsErrorPath, "utf-8");
|
|
158
194
|
// Check that both DuplicateLineItem and InvalidStatusTransition errors are generated (but deduplicated)
|
|
159
195
|
expect(lineItemsErrorContent).toContain("export type ErrorCode =");
|
|
160
|
-
expect(lineItemsErrorContent).toContain("
|
|
161
|
-
expect(lineItemsErrorContent).toContain("
|
|
196
|
+
expect(lineItemsErrorContent).toContain(`"DuplicateLineItem"`);
|
|
197
|
+
expect(lineItemsErrorContent).toContain(`"InvalidStatusTransition"`);
|
|
162
198
|
expect(lineItemsErrorContent).toContain("export class DuplicateLineItem extends Error implements ReducerError");
|
|
163
199
|
expect(lineItemsErrorContent).toContain("export class InvalidStatusTransition extends Error implements ReducerError");
|
|
164
200
|
// Verify that InvalidStatusTransition only appears once in the ErrorCode type (deduplication test)
|
|
165
|
-
const errorCodeMatches = lineItemsErrorContent.match(/
|
|
201
|
+
const errorCodeMatches = lineItemsErrorContent.match(/"InvalidStatusTransition"/g);
|
|
166
202
|
expect(errorCodeMatches?.length).toBe(3); // Once in type definition, once in each class
|
|
167
203
|
});
|
|
168
|
-
it("should
|
|
169
|
-
await
|
|
170
|
-
await compile(testOutDirPath);
|
|
171
|
-
// Check that the general module reducer imports InvalidStatusTransition
|
|
172
|
-
const generalReducerPath = path.join(documentModelsDirName, "billing-statement", "src", "reducers", "general.ts");
|
|
173
|
-
const generalReducerContent = readFileSync(generalReducerPath, "utf-8");
|
|
174
|
-
// Should have import for both InvalidStatusTransition and StatusAlreadySet errors in single import
|
|
175
|
-
expect(generalReducerContent).toContain('import { InvalidStatusTransition, StatusAlreadySet } from "../../gen/general/error.js";');
|
|
176
|
-
// Should contain the reducer code with both error usages
|
|
177
|
-
expect(generalReducerContent).toContain("throw new InvalidStatusTransition");
|
|
178
|
-
expect(generalReducerContent).toContain("throw new StatusAlreadySet");
|
|
179
|
-
// Check that the line-items module reducer imports DuplicateLineItem
|
|
180
|
-
const lineItemsReducerPath = path.join(documentModelsDirName, "billing-statement", "src", "reducers", "line-items.ts");
|
|
181
|
-
const lineItemsReducerContent = readFileSync(lineItemsReducerPath, "utf-8");
|
|
182
|
-
// Should have import for DuplicateLineItem error
|
|
183
|
-
expect(lineItemsReducerContent).toContain('import { DuplicateLineItem } from "../../gen/line-items/error.js";');
|
|
184
|
-
// Should contain the reducer code with error usage
|
|
185
|
-
expect(lineItemsReducerContent).toContain("throw new DuplicateLineItem");
|
|
186
|
-
});
|
|
187
|
-
it("should generate error codes for legacy documents with empty error codes", { timeout: 100000 }, async () => {
|
|
204
|
+
it("should generate error codes for legacy documents with empty error codes", { timeout: 100000 }, async (context) => {
|
|
205
|
+
await setupTest(context);
|
|
188
206
|
await generate();
|
|
189
207
|
const testEmptyCodesDocumentModel = await loadDocumentModel(path.join(documentModelsSrcPath, "test-empty-error-codes", "test-empty-error-codes.json"));
|
|
190
|
-
await
|
|
208
|
+
await generateDocumentModel({
|
|
209
|
+
useTsMorph: USE_TS_MORPH,
|
|
210
|
+
useVersioning: false,
|
|
211
|
+
dir: documentModelsDirName,
|
|
212
|
+
specifiedPackageName: TEST_PACKAGE_NAME,
|
|
213
|
+
documentModelState: testEmptyCodesDocumentModel,
|
|
214
|
+
skipFormat: true,
|
|
215
|
+
});
|
|
191
216
|
// Check that error codes are generated from error names
|
|
192
217
|
const testOperationsErrorPath = path.join(documentModelsDirName, "test-empty-codes", "gen", "test-operations", "error.ts");
|
|
193
218
|
const testOperationsErrorContent = readFileSync(testOperationsErrorPath, "utf-8");
|
|
194
219
|
// Check that error codes are generated from names in PascalCase when empty
|
|
195
220
|
expect(testOperationsErrorContent).toContain("export type ErrorCode =");
|
|
196
|
-
expect(testOperationsErrorContent).toContain("
|
|
197
|
-
expect(testOperationsErrorContent).toContain("
|
|
221
|
+
expect(testOperationsErrorContent).toContain(`"InvalidValue"`);
|
|
222
|
+
expect(testOperationsErrorContent).toContain(`"EmptyValue"`);
|
|
198
223
|
// Check that error classes are generated
|
|
199
224
|
expect(testOperationsErrorContent).toContain("export class InvalidValue extends Error implements ReducerError");
|
|
200
225
|
expect(testOperationsErrorContent).toContain("export class EmptyValue extends Error implements ReducerError");
|
|
201
226
|
// Verify error code constants are set properly in PascalCase
|
|
202
|
-
expect(testOperationsErrorContent).toContain(
|
|
203
|
-
expect(testOperationsErrorContent).toContain(
|
|
227
|
+
expect(testOperationsErrorContent).toContain(`errorCode = "InvalidValue" as ErrorCode`);
|
|
228
|
+
expect(testOperationsErrorContent).toContain(`errorCode = "EmptyValue" as ErrorCode`);
|
|
204
229
|
});
|
|
205
230
|
});
|
|
206
231
|
//# sourceMappingURL=generate-doc-model.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-doc-model.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-doc-model.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"generate-doc-model.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-doc-model.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { generateDriveEditor } from "@powerhousedao/codegen";
|
|
|
2
2
|
import fs, { existsSync, rmSync } from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { afterAll, beforeAll, describe, expect, it, } from "vitest";
|
|
5
|
+
import { USE_TS_MORPH } from "./config.js";
|
|
5
6
|
import { EDITORS_TEST_PROJECT, EDITORS_TEST_PROJECT_WITH_EXISTING_EDITOR, GENERATE_DRIVE_EDITOR_TEST_OUTPUT_DIR, } from "./constants.js";
|
|
6
7
|
import { compile } from "./fixtures/typecheck.js";
|
|
7
8
|
import { copyAllFiles, getTestDataDir, getTestOutDirPath, getTestOutputDir, purgeDirAfterTest, resetDirForTest, } from "./utils.js";
|
|
@@ -41,6 +42,7 @@ describe("generateDriveEditor", () => {
|
|
|
41
42
|
config,
|
|
42
43
|
appId: "AtlasDriveExplorer",
|
|
43
44
|
allowedDocumentTypes: "powerhouse/test-doc",
|
|
45
|
+
useTsMorph: USE_TS_MORPH,
|
|
44
46
|
});
|
|
45
47
|
const editorsDir = path.join(testOutDirPath, "editors");
|
|
46
48
|
expect(existsSync(editorsDir)).toBe(true);
|
|
@@ -67,7 +69,7 @@ describe("generateDriveEditor", () => {
|
|
|
67
69
|
expect(existsSync(editorFilePath)).toBe(true);
|
|
68
70
|
const editorContent = fs.readFileSync(editorFilePath, "utf-8");
|
|
69
71
|
expect(editorContent).toContain(`export default function Editor(props: EditorProps)`);
|
|
70
|
-
expect(editorContent).toContain(`<DriveExplorer {...props}
|
|
72
|
+
expect(editorContent).toContain(`<DriveExplorer {...props}`);
|
|
71
73
|
expect(editorContent).toContain(`useSetPHDriveEditorConfig(editorConfig)`);
|
|
72
74
|
const componentsDir = path.join(editorDir, "components");
|
|
73
75
|
expect(existsSync(componentsDir)).toBe(true);
|
|
@@ -109,7 +111,7 @@ describe("generateDriveEditor", () => {
|
|
|
109
111
|
}, async (context) => {
|
|
110
112
|
await setupTest(context, getTestDataDir(testDir, EDITORS_TEST_PROJECT_WITH_EXISTING_EDITOR));
|
|
111
113
|
const name = "TestApp";
|
|
112
|
-
await generateDriveEditor({ name, config }); // No appId provided
|
|
114
|
+
await generateDriveEditor({ name, config, useTsMorph: USE_TS_MORPH }); // No appId provided
|
|
113
115
|
const editorsDir = path.join(testOutDirPath, "editors");
|
|
114
116
|
const editorDir = path.join(editorsDir, "test-app");
|
|
115
117
|
const moduleFilePath = path.join(editorDir, "module.ts");
|
|
@@ -127,6 +129,7 @@ describe("generateDriveEditor", () => {
|
|
|
127
129
|
config,
|
|
128
130
|
appId: "AtlasDriveExplorer",
|
|
129
131
|
allowedDocumentTypes: "powerhouse/test-doc",
|
|
132
|
+
useTsMorph: USE_TS_MORPH,
|
|
130
133
|
});
|
|
131
134
|
const editorsDir = path.join(testOutDirPath, "editors");
|
|
132
135
|
const editorsFilePath = path.join(editorsDir, "editors.ts");
|
|
@@ -143,7 +146,7 @@ describe("generateDriveEditor", () => {
|
|
|
143
146
|
const editorsDir = path.join(testOutDirPath, "editors");
|
|
144
147
|
const editorsFilePath = path.join(editorsDir, "editors.ts");
|
|
145
148
|
rmSync(editorsFilePath, { force: true });
|
|
146
|
-
await generateDriveEditor({ name, config });
|
|
149
|
+
await generateDriveEditor({ name, config, useTsMorph: USE_TS_MORPH });
|
|
147
150
|
await compile(testOutDirPath);
|
|
148
151
|
const editorsContent = fs.readFileSync(editorsFilePath, "utf-8");
|
|
149
152
|
expect(editorsContent).toContain(`export const editors: EditorModule[]`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-drive-editor.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-drive-editor.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,MAAM,EACN,EAAE,GAEH,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,oBAAoB,EACpB,yCAAyC,EACzC,qCAAqC,GACtC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IACpC,MAAM,UAAU,GAAG,gBAAgB,CACjC,OAAO,EACP,qCAAqC,CACtC,CAAC;IACF,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAClE,IAAI,cAAc,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAqB;QAC/B,UAAU,EAAE,EAAE;QACd,iBAAiB,EAAE,EAAE;QACrB,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,EAAE;QAChB,gBAAgB,EAAE,EAAE;QACpB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,MAAM;KACjB,CAAC;IACF,KAAK,UAAU,SAAS,CACtB,OAAoB,EACpB,mBAAmB,GAAG,WAAW;QAEjC,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAElE,MAAM,YAAY,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;QAExD,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACzD,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAC1E,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACZ,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CACA,mEAAmE,EACnE;QACE,OAAO,EAAE,MAAM;KAChB,EACD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,sBAAsB,CAAC;QAEpC,MAAM,mBAAmB,CAAC;YACxB,IAAI;YACJ,MAAM;YACN,KAAK,EAAE,oBAAoB;YAC3B,oBAAoB,EAAE,qBAAqB;
|
|
1
|
+
{"version":3,"file":"generate-drive-editor.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-drive-editor.test.ts"],"names":[],"mappings":"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"}
|