zudojs-cli 2.1.2 → 2.2.0
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/README.md +6 -3
- package/dist/src/adapters/databases/databaseAdapter.resolver.d.ts +0 -1
- package/dist/src/adapters/databases/databaseAdapter.resolver.js +0 -1
- package/dist/src/adapters/databases/index.d.ts +0 -1
- package/dist/src/adapters/databases/index.js +0 -1
- package/dist/src/adapters/databases/mysql.adapter.d.ts +0 -1
- package/dist/src/adapters/databases/mysql.adapter.js +0 -1
- package/dist/src/adapters/databases/postgres.adapter.d.ts +0 -1
- package/dist/src/adapters/databases/postgres.adapter.js +0 -1
- package/dist/src/adapters/databases/sqlite.adapter.d.ts +0 -1
- package/dist/src/adapters/databases/sqlite.adapter.js +0 -1
- package/dist/src/adapters/frontend/angular.adapter.d.ts +0 -1
- package/dist/src/adapters/frontend/angular.adapter.js +0 -1
- package/dist/src/adapters/frontend/astro.adapter.d.ts +0 -1
- package/dist/src/adapters/frontend/astro.adapter.js +0 -1
- package/dist/src/adapters/frontend/fallback/fallback.helper.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/fallback.helper.js +0 -1
- package/dist/src/adapters/frontend/fallback/framework/angular/angular.fallback.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/framework/angular/angular.fallback.js +0 -1
- package/dist/src/adapters/frontend/fallback/framework/angular/angularWorkspace.fallback.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/framework/angular/angularWorkspace.fallback.js +0 -1
- package/dist/src/adapters/frontend/fallback/framework/angular/index.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/framework/angular/index.js +0 -1
- package/dist/src/adapters/frontend/fallback/framework/astro.fallback.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/framework/astro.fallback.js +0 -1
- package/dist/src/adapters/frontend/fallback/framework/index.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/framework/index.js +0 -1
- package/dist/src/adapters/frontend/fallback/framework/next.fallback.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/framework/next.fallback.js +0 -1
- package/dist/src/adapters/frontend/fallback/framework/nuxt.fallback.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/framework/nuxt.fallback.js +0 -1
- package/dist/src/adapters/frontend/fallback/framework/sveltekit.fallback.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/framework/sveltekit.fallback.js +0 -1
- package/dist/src/adapters/frontend/fallback/index.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/index.js +0 -1
- package/dist/src/adapters/frontend/fallback/vite/index.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/vite/index.js +0 -1
- package/dist/src/adapters/frontend/fallback/vite/react.fallback.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/vite/react.fallback.js +0 -1
- package/dist/src/adapters/frontend/fallback/vite/svelte.fallback.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/vite/svelte.fallback.js +0 -1
- package/dist/src/adapters/frontend/fallback/vite/vanilla.fallback.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/vite/vanilla.fallback.js +0 -1
- package/dist/src/adapters/frontend/fallback/vite/vue.fallback.d.ts +0 -1
- package/dist/src/adapters/frontend/fallback/vite/vue.fallback.js +0 -1
- package/dist/src/adapters/frontend/flutter.adapter.d.ts +0 -1
- package/dist/src/adapters/frontend/flutter.adapter.js +0 -1
- package/dist/src/adapters/frontend/frontendAdapter.type.d.ts +0 -1
- package/dist/src/adapters/frontend/frontendAdapter.type.js +0 -1
- package/dist/src/adapters/frontend/index.d.ts +0 -1
- package/dist/src/adapters/frontend/index.js +0 -1
- package/dist/src/adapters/frontend/next.adapter.d.ts +0 -1
- package/dist/src/adapters/frontend/next.adapter.js +0 -1
- package/dist/src/adapters/frontend/nuxt.adapter.d.ts +0 -1
- package/dist/src/adapters/frontend/nuxt.adapter.js +0 -1
- package/dist/src/adapters/frontend/react-native.adapter.d.ts +0 -1
- package/dist/src/adapters/frontend/react-native.adapter.js +0 -1
- package/dist/src/adapters/frontend/react.adapter.d.ts +0 -1
- package/dist/src/adapters/frontend/react.adapter.js +0 -1
- package/dist/src/adapters/frontend/svelte.adapter.d.ts +0 -1
- package/dist/src/adapters/frontend/svelte.adapter.js +0 -1
- package/dist/src/adapters/frontend/sveltekit.adapter.d.ts +0 -1
- package/dist/src/adapters/frontend/sveltekit.adapter.js +0 -1
- package/dist/src/adapters/frontend/vanilla.adapter.d.ts +0 -1
- package/dist/src/adapters/frontend/vanilla.adapter.js +0 -1
- package/dist/src/adapters/frontend/vue.adapter.d.ts +0 -1
- package/dist/src/adapters/frontend/vue.adapter.js +0 -1
- package/dist/src/adapters/package-managers/bun.adapter.d.ts +0 -1
- package/dist/src/adapters/package-managers/bun.adapter.js +0 -1
- package/dist/src/adapters/package-managers/index.d.ts +0 -1
- package/dist/src/adapters/package-managers/index.js +0 -1
- package/dist/src/adapters/package-managers/npm.adapter.d.ts +0 -1
- package/dist/src/adapters/package-managers/npm.adapter.js +0 -1
- package/dist/src/adapters/package-managers/packageManager.type.d.ts +0 -1
- package/dist/src/adapters/package-managers/packageManager.type.js +0 -1
- package/dist/src/adapters/package-managers/pnpm.adapter.d.ts +0 -1
- package/dist/src/adapters/package-managers/pnpm.adapter.js +0 -1
- package/dist/src/adapters/package-managers/yarn.adapter.d.ts +0 -1
- package/dist/src/adapters/package-managers/yarn.adapter.js +0 -1
- package/dist/src/bin/bin.menu.d.ts +0 -1
- package/dist/src/bin/bin.menu.js +0 -1
- package/dist/src/bin/bin.runner.d.ts +0 -1
- package/dist/src/bin/bin.runner.js +0 -1
- package/dist/src/bin/index.d.ts +0 -1
- package/dist/src/bin/index.js +0 -1
- package/dist/src/bin/zudojs.d.ts +0 -1
- package/dist/src/bin/zudojs.js +1 -2
- package/dist/src/cliApplication/cliApplication.builtins.d.ts +0 -1
- package/dist/src/cliApplication/cliApplication.builtins.js +0 -1
- package/dist/src/cliApplication/cliApplication.core.d.ts +0 -1
- package/dist/src/cliApplication/cliApplication.core.js +0 -1
- package/dist/src/cliApplication/cliApplication.help.d.ts +0 -1
- package/dist/src/cliApplication/cliApplication.help.js +0 -1
- package/dist/src/cliApplication/cliApplication.logger.d.ts +0 -1
- package/dist/src/cliApplication/cliApplication.logger.js +0 -1
- package/dist/src/cliApplication/cliApplication.writer.d.ts +0 -1
- package/dist/src/cliApplication/cliApplication.writer.js +0 -1
- package/dist/src/cliApplication/index.d.ts +0 -1
- package/dist/src/cliApplication/index.js +0 -1
- package/dist/src/cliApplication/invocation/index.d.ts +0 -1
- package/dist/src/cliApplication/invocation/index.js +0 -1
- package/dist/src/cliApplication/invocation/invocation.hint.d.ts +0 -7
- package/dist/src/cliApplication/invocation/invocation.hint.js +14 -1
- package/dist/src/cliApplication/invocation/invocation.locate.d.ts +0 -1
- package/dist/src/cliApplication/invocation/invocation.locate.js +0 -1
- package/dist/src/cliApplication/invocation/invocation.name.d.ts +0 -1
- package/dist/src/cliApplication/invocation/invocation.name.js +0 -1
- package/dist/src/cliApplication/invocation/invocation.sanitize.d.ts +0 -1
- package/dist/src/cliApplication/invocation/invocation.sanitize.js +0 -1
- package/dist/src/cliCommand/cliCommand.builder.d.ts +0 -1
- package/dist/src/cliCommand/cliCommand.builder.js +0 -1
- package/dist/src/cliCommand/cliCommand.factory.d.ts +0 -1
- package/dist/src/cliCommand/cliCommand.factory.js +0 -1
- package/dist/src/cliCommand/cliCommand.registry.d.ts +0 -1
- package/dist/src/cliCommand/cliCommand.registry.js +0 -1
- package/dist/src/cliCommand/cliCommand.validator.d.ts +0 -1
- package/dist/src/cliCommand/cliCommand.validator.js +0 -1
- package/dist/src/cliCommand/index.d.ts +0 -1
- package/dist/src/cliCommand/index.js +0 -1
- package/dist/src/cliConstant/cliConstant.value.d.ts +0 -1
- package/dist/src/cliConstant/cliConstant.value.js +0 -1
- package/dist/src/cliConstant/cliVersion.d.ts +0 -1
- package/dist/src/cliConstant/cliVersion.js +0 -1
- package/dist/src/cliConstant/index.d.ts +0 -1
- package/dist/src/cliConstant/index.js +0 -1
- package/dist/src/cliError/cliError.argument.d.ts +0 -1
- package/dist/src/cliError/cliError.argument.js +0 -1
- package/dist/src/cliError/cliError.base.d.ts +0 -1
- package/dist/src/cliError/cliError.base.js +0 -1
- package/dist/src/cliError/cliError.command.d.ts +0 -1
- package/dist/src/cliError/cliError.command.js +0 -1
- package/dist/src/cliError/cliError.execution.d.ts +0 -1
- package/dist/src/cliError/cliError.execution.js +0 -1
- package/dist/src/cliError/cliError.option.d.ts +0 -1
- package/dist/src/cliError/cliError.option.js +0 -1
- package/dist/src/cliError/index.d.ts +0 -1
- package/dist/src/cliError/index.js +0 -1
- package/dist/src/cliParser/cliParser.core.d.ts +0 -1
- package/dist/src/cliParser/cliParser.core.js +0 -1
- package/dist/src/cliParser/cliParser.helper.d.ts +0 -1
- package/dist/src/cliParser/cliParser.helper.js +0 -1
- package/dist/src/cliParser/cliParser.longOption.d.ts +0 -1
- package/dist/src/cliParser/cliParser.longOption.js +0 -1
- package/dist/src/cliParser/cliParser.shortOption.d.ts +0 -1
- package/dist/src/cliParser/cliParser.shortOption.js +0 -1
- package/dist/src/cliParser/index.d.ts +0 -1
- package/dist/src/cliParser/index.js +0 -1
- package/dist/src/cliType/cliType.type.d.ts +0 -1
- package/dist/src/cliType/cliType.type.js +0 -1
- package/dist/src/cliType/index.d.ts +0 -1
- package/dist/src/cliType/index.js +0 -1
- package/dist/src/cliVersion/cliVersion.core.d.ts +0 -1
- package/dist/src/cliVersion/cliVersion.core.js +0 -1
- package/dist/src/cliVersion/cliVersion.update.d.ts +0 -1
- package/dist/src/cliVersion/cliVersion.update.js +0 -1
- package/dist/src/cliVersion/index.d.ts +0 -1
- package/dist/src/cliVersion/index.js +0 -1
- package/dist/src/commands/add.command.d.ts +0 -1
- package/dist/src/commands/add.command.js +1 -2
- package/dist/src/commands/build.command.d.ts +0 -1
- package/dist/src/commands/build.command.js +0 -1
- package/dist/src/commands/commandError.helper.d.ts +0 -1
- package/dist/src/commands/commandError.helper.js +0 -1
- package/dist/src/commands/create.command.d.ts +0 -1
- package/dist/src/commands/create.command.js +0 -1
- package/dist/src/commands/dev/dev.plan.d.ts +39 -0
- package/dist/src/commands/dev/dev.plan.js +83 -0
- package/dist/src/commands/dev/index.d.ts +4 -0
- package/dist/src/commands/dev/index.js +4 -0
- package/dist/src/commands/dev.command.d.ts +4 -30
- package/dist/src/commands/dev.command.js +10 -80
- package/dist/src/commands/doctor.command.d.ts +0 -1
- package/dist/src/commands/doctor.command.js +0 -1
- package/dist/src/commands/generate.command.d.ts +0 -1
- package/dist/src/commands/generate.command.js +30 -10
- package/dist/src/commands/index.d.ts +0 -1
- package/dist/src/commands/index.js +0 -1
- package/dist/src/commands/info.command.d.ts +0 -1
- package/dist/src/commands/info.command.js +0 -1
- package/dist/src/constants/index.d.ts +0 -1
- package/dist/src/constants/index.js +0 -1
- package/dist/src/constants/zudojsVersions.generated.d.ts +0 -1
- package/dist/src/constants/zudojsVersions.generated.js +38 -39
- package/dist/src/constants/zudojsVersions.helper.d.ts +0 -1
- package/dist/src/constants/zudojsVersions.helper.js +0 -1
- package/dist/src/errors/index.d.ts +0 -1
- package/dist/src/errors/index.js +0 -1
- package/dist/src/generators/backend/backend.generator.d.ts +0 -1
- package/dist/src/generators/backend/backend.generator.js +0 -1
- package/dist/src/generators/backend/index.d.ts +0 -1
- package/dist/src/generators/backend/index.js +0 -1
- package/dist/src/generators/command/command.generator.d.ts +0 -1
- package/dist/src/generators/command/command.generator.js +0 -1
- package/dist/src/generators/command/command.template.d.ts +0 -1
- package/dist/src/generators/command/command.template.js +0 -1
- package/dist/src/generators/command/index.d.ts +0 -1
- package/dist/src/generators/command/index.js +0 -1
- package/dist/src/generators/event/event.generator.d.ts +0 -1
- package/dist/src/generators/event/event.generator.js +0 -1
- package/dist/src/generators/event/index.d.ts +0 -1
- package/dist/src/generators/event/index.js +0 -1
- package/dist/src/generators/frontend/frontendGenerator.core.d.ts +0 -1
- package/dist/src/generators/frontend/frontendGenerator.core.js +0 -1
- package/dist/src/generators/frontend/frontendPipeline.d.ts +0 -1
- package/dist/src/generators/frontend/frontendPipeline.js +0 -1
- package/dist/src/generators/frontend/index.d.ts +0 -1
- package/dist/src/generators/frontend/index.js +0 -1
- package/dist/src/generators/fullstack/fullstackBackend.layout.d.ts +0 -1
- package/dist/src/generators/fullstack/fullstackBackend.layout.js +0 -1
- package/dist/src/generators/fullstack/fullstackComposer.core.d.ts +0 -1
- package/dist/src/generators/fullstack/fullstackComposer.core.js +0 -1
- package/dist/src/generators/fullstack/index.d.ts +0 -1
- package/dist/src/generators/fullstack/index.js +0 -1
- package/dist/src/generators/index.d.ts +0 -1
- package/dist/src/generators/index.js +0 -1
- package/dist/src/generators/infrastructure/index.d.ts +0 -1
- package/dist/src/generators/infrastructure/index.js +0 -1
- package/dist/src/generators/infrastructure/infrastructure.generator.d.ts +0 -1
- package/dist/src/generators/infrastructure/infrastructure.generator.js +0 -1
- package/dist/src/generators/integration/index.d.ts +0 -1
- package/dist/src/generators/integration/index.js +0 -1
- package/dist/src/generators/integration/integrationGenerator.core.d.ts +0 -1
- package/dist/src/generators/integration/integrationGenerator.core.js +0 -1
- package/dist/src/generators/job/index.d.ts +0 -1
- package/dist/src/generators/job/index.js +0 -1
- package/dist/src/generators/job/job.generator.d.ts +0 -1
- package/dist/src/generators/job/job.generator.js +0 -1
- package/dist/src/generators/middleware/index.d.ts +2 -2
- package/dist/src/generators/middleware/index.js +2 -2
- package/dist/src/generators/middleware/middleware.generator.d.ts +28 -2
- package/dist/src/generators/middleware/middleware.generator.js +60 -16
- package/dist/src/generators/middleware/middleware.template.d.ts +20 -0
- package/dist/src/generators/middleware/middleware.template.js +34 -0
- package/dist/src/generators/model/index.d.ts +0 -1
- package/dist/src/generators/model/index.js +0 -1
- package/dist/src/generators/model/model.generator.d.ts +0 -1
- package/dist/src/generators/model/model.generator.js +0 -1
- package/dist/src/generators/module/index.d.ts +0 -1
- package/dist/src/generators/module/index.js +0 -1
- package/dist/src/generators/module/module.generator.d.ts +0 -1
- package/dist/src/generators/module/module.generator.js +27 -11
- package/dist/src/generators/module/module.registration.d.ts +4 -3
- package/dist/src/generators/module/module.registration.js +5 -4
- package/dist/src/generators/project/project.generator.d.ts +0 -1
- package/dist/src/generators/project/project.generator.js +0 -1
- package/dist/src/generators/query/index.d.ts +0 -1
- package/dist/src/generators/query/index.js +0 -1
- package/dist/src/generators/query/query.generator.d.ts +0 -1
- package/dist/src/generators/query/query.generator.js +0 -1
- package/dist/src/generators/query/query.template.d.ts +0 -1
- package/dist/src/generators/query/query.template.js +0 -1
- package/dist/src/generators/resource/index.d.ts +0 -1
- package/dist/src/generators/resource/index.js +0 -1
- package/dist/src/generators/resource/resource.checks.d.ts +31 -0
- package/dist/src/generators/resource/resource.checks.js +52 -0
- package/dist/src/generators/resource/resource.generator.d.ts +5 -3
- package/dist/src/generators/resource/resource.generator.js +23 -36
- package/dist/src/generators/resource/resource.layout.d.ts +0 -1
- package/dist/src/generators/resource/resource.layout.js +0 -1
- package/dist/src/generators/resource/resource.plan.d.ts +0 -1
- package/dist/src/generators/resource/resource.plan.js +0 -1
- package/dist/src/generators/resource/resource.run.d.ts +12 -2
- package/dist/src/generators/resource/resource.run.js +33 -9
- package/dist/src/generators/validator/index.d.ts +0 -1
- package/dist/src/generators/validator/index.js +0 -1
- package/dist/src/generators/validator/validator.generator.d.ts +6 -2
- package/dist/src/generators/validator/validator.generator.js +31 -10
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.js +0 -1
- package/dist/src/installers/dependency.installer.d.ts +0 -1
- package/dist/src/installers/dependency.installer.js +0 -1
- package/dist/src/installers/index.d.ts +0 -1
- package/dist/src/installers/index.js +0 -1
- package/dist/src/manifest/index.d.ts +0 -1
- package/dist/src/manifest/index.js +0 -1
- package/dist/src/manifest/manifestFile.helper.d.ts +0 -1
- package/dist/src/manifest/manifestFile.helper.js +0 -1
- package/dist/src/manifest/manifestManager.core.d.ts +0 -1
- package/dist/src/manifest/manifestManager.core.js +0 -1
- package/dist/src/prompts/backend/api-style.prompt.d.ts +0 -1
- package/dist/src/prompts/backend/api-style.prompt.js +0 -1
- package/dist/src/prompts/backend/backend-architecture.prompt.d.ts +0 -1
- package/dist/src/prompts/backend/backend-architecture.prompt.js +0 -1
- package/dist/src/prompts/backend/database.prompt.d.ts +0 -1
- package/dist/src/prompts/backend/database.prompt.js +0 -1
- package/dist/src/prompts/backend/index.d.ts +0 -1
- package/dist/src/prompts/backend/index.js +0 -1
- package/dist/src/prompts/backend/services.prompt.d.ts +0 -1
- package/dist/src/prompts/backend/services.prompt.js +0 -1
- package/dist/src/prompts/cancel.prompt.d.ts +0 -1
- package/dist/src/prompts/cancel.prompt.js +0 -1
- package/dist/src/prompts/capabilities/capabilities.prompt.d.ts +0 -1
- package/dist/src/prompts/capabilities/capabilities.prompt.js +0 -1
- package/dist/src/prompts/capabilities/index.d.ts +0 -1
- package/dist/src/prompts/capabilities/index.js +0 -1
- package/dist/src/prompts/frontend/framework.prompt.d.ts +0 -1
- package/dist/src/prompts/frontend/framework.prompt.js +0 -1
- package/dist/src/prompts/frontend/frontend-architecture.prompt.d.ts +0 -1
- package/dist/src/prompts/frontend/frontend-architecture.prompt.js +0 -1
- package/dist/src/prompts/frontend/index.d.ts +0 -1
- package/dist/src/prompts/frontend/index.js +0 -1
- package/dist/src/prompts/index.d.ts +0 -1
- package/dist/src/prompts/index.js +0 -1
- package/dist/src/prompts/menu/index.d.ts +0 -1
- package/dist/src/prompts/menu/index.js +0 -1
- package/dist/src/prompts/menu/menu.adapter.d.ts +0 -1
- package/dist/src/prompts/menu/menu.adapter.js +0 -1
- package/dist/src/prompts/menu/menu.constant.d.ts +0 -1
- package/dist/src/prompts/menu/menu.constant.js +0 -1
- package/dist/src/prompts/menu/menu.flow.d.ts +0 -1
- package/dist/src/prompts/menu/menu.flow.js +0 -1
- package/dist/src/prompts/menu/menu.select.d.ts +0 -1
- package/dist/src/prompts/menu/menu.select.js +0 -1
- package/dist/src/prompts/menu/menu.type.d.ts +0 -1
- package/dist/src/prompts/menu/menu.type.js +0 -1
- package/dist/src/prompts/project/confirmation.prompt.d.ts +0 -1
- package/dist/src/prompts/project/confirmation.prompt.js +0 -1
- package/dist/src/prompts/project/index.d.ts +0 -1
- package/dist/src/prompts/project/index.js +0 -1
- package/dist/src/prompts/project/project-name.prompt.d.ts +0 -1
- package/dist/src/prompts/project/project-name.prompt.js +0 -1
- package/dist/src/prompts/project/project-type.prompt.d.ts +0 -1
- package/dist/src/prompts/project/project-type.prompt.js +0 -1
- package/dist/src/prompts/workspace/index.d.ts +0 -1
- package/dist/src/prompts/workspace/index.js +0 -1
- package/dist/src/prompts/workspace/package-manager.prompt.d.ts +0 -1
- package/dist/src/prompts/workspace/package-manager.prompt.js +0 -1
- package/dist/src/recipes/apply/index.d.ts +0 -1
- package/dist/src/recipes/apply/index.js +0 -1
- package/dist/src/recipes/apply/recipeApply.app.d.ts +0 -1
- package/dist/src/recipes/apply/recipeApply.app.js +0 -1
- package/dist/src/recipes/apply/recipeApply.context.d.ts +0 -1
- package/dist/src/recipes/apply/recipeApply.context.js +0 -1
- package/dist/src/recipes/apply/recipeApply.files.d.ts +0 -1
- package/dist/src/recipes/apply/recipeApply.files.js +0 -1
- package/dist/src/recipes/apply/recipeApply.project.d.ts +13 -3
- package/dist/src/recipes/apply/recipeApply.project.js +56 -3
- package/dist/src/recipes/apply/recipeApply.report.d.ts +0 -1
- package/dist/src/recipes/apply/recipeApply.report.js +0 -1
- package/dist/src/recipes/catalog/database/database.files.d.ts +0 -1
- package/dist/src/recipes/catalog/database/database.files.js +0 -1
- package/dist/src/recipes/catalog/database/database.recipe.d.ts +0 -1
- package/dist/src/recipes/catalog/database/database.recipe.js +11 -2
- package/dist/src/recipes/catalog/database/index.d.ts +0 -1
- package/dist/src/recipes/catalog/database/index.js +0 -1
- package/dist/src/recipes/catalog/email.recipe.d.ts +0 -1
- package/dist/src/recipes/catalog/email.recipe.js +0 -1
- package/dist/src/recipes/catalog/index.d.ts +0 -1
- package/dist/src/recipes/catalog/index.js +0 -1
- package/dist/src/recipes/catalog/openapi.recipe.d.ts +0 -1
- package/dist/src/recipes/catalog/openapi.recipe.js +0 -1
- package/dist/src/recipes/catalog/platform/cache.recipe.d.ts +0 -1
- package/dist/src/recipes/catalog/platform/cache.recipe.js +0 -1
- package/dist/src/recipes/catalog/platform/index.d.ts +0 -1
- package/dist/src/recipes/catalog/platform/index.js +0 -1
- package/dist/src/recipes/catalog/platform/messaging.recipe.d.ts +0 -1
- package/dist/src/recipes/catalog/platform/messaging.recipe.js +0 -1
- package/dist/src/recipes/catalog/platform/observability.recipe.d.ts +0 -1
- package/dist/src/recipes/catalog/platform/observability.recipe.js +0 -1
- package/dist/src/recipes/catalog/platform/queue.recipe.d.ts +0 -1
- package/dist/src/recipes/catalog/platform/queue.recipe.js +0 -1
- package/dist/src/recipes/catalog/platform/scheduler.recipe.d.ts +0 -1
- package/dist/src/recipes/catalog/platform/scheduler.recipe.js +0 -1
- package/dist/src/recipes/catalog/redis.recipe.d.ts +0 -1
- package/dist/src/recipes/catalog/redis.recipe.js +0 -1
- package/dist/src/recipes/catalog/storage.recipe.d.ts +0 -1
- package/dist/src/recipes/catalog/storage.recipe.js +0 -1
- package/dist/src/recipes/catalog/websockets.recipe.d.ts +0 -1
- package/dist/src/recipes/catalog/websockets.recipe.js +0 -1
- package/dist/src/recipes/docker/docker.compose.d.ts +0 -1
- package/dist/src/recipes/docker/docker.compose.js +0 -1
- package/dist/src/recipes/docker/docker.recipe.d.ts +0 -1
- package/dist/src/recipes/docker/docker.recipe.js +0 -1
- package/dist/src/recipes/docker/docker.refresh.d.ts +0 -1
- package/dist/src/recipes/docker/docker.refresh.js +0 -1
- package/dist/src/recipes/docker/index.d.ts +0 -1
- package/dist/src/recipes/docker/index.js +0 -1
- package/dist/src/recipes/index.d.ts +0 -1
- package/dist/src/recipes/index.js +0 -1
- package/dist/src/recipes/recipe.registry.d.ts +0 -1
- package/dist/src/recipes/recipe.registry.js +0 -1
- package/dist/src/recipes/recipe.type.d.ts +6 -1
- package/dist/src/recipes/recipe.type.js +0 -1
- package/dist/src/registries/adapter/frontendAdapterRegistry.core.d.ts +0 -1
- package/dist/src/registries/adapter/frontendAdapterRegistry.core.js +0 -1
- package/dist/src/registries/adapter/packageManagerRegistry.core.d.ts +0 -1
- package/dist/src/registries/adapter/packageManagerRegistry.core.js +0 -1
- package/dist/src/registries/dependency/dependencyRegistry.core.d.ts +0 -1
- package/dist/src/registries/dependency/dependencyRegistry.core.js +0 -1
- package/dist/src/registries/dependency/index.d.ts +0 -1
- package/dist/src/registries/dependency/index.js +0 -1
- package/dist/src/registries/generator/generatorRegistry.core.d.ts +0 -1
- package/dist/src/registries/generator/generatorRegistry.core.js +0 -1
- package/dist/src/registries/generator/index.d.ts +0 -1
- package/dist/src/registries/generator/index.js +0 -1
- package/dist/src/registries/index.d.ts +0 -1
- package/dist/src/registries/index.js +0 -1
- package/dist/src/resolvers/architecture.resolver.d.ts +0 -1
- package/dist/src/resolvers/architecture.resolver.js +13 -3
- package/dist/src/resolvers/capability/capabilityResolver.core.d.ts +0 -1
- package/dist/src/resolvers/capability/capabilityResolver.core.js +0 -1
- package/dist/src/resolvers/capability/index.d.ts +0 -1
- package/dist/src/resolvers/capability/index.js +0 -1
- package/dist/src/resolvers/configuration/configurationResolver.core.d.ts +0 -1
- package/dist/src/resolvers/configuration/configurationResolver.core.js +0 -1
- package/dist/src/resolvers/configuration/index.d.ts +0 -1
- package/dist/src/resolvers/configuration/index.js +0 -1
- package/dist/src/resolvers/dependency/dependencyResolver.core.d.ts +0 -1
- package/dist/src/resolvers/dependency/dependencyResolver.core.js +0 -1
- package/dist/src/resolvers/dependency/dependencyVersions.constant.d.ts +0 -1
- package/dist/src/resolvers/dependency/dependencyVersions.constant.js +0 -1
- package/dist/src/resolvers/dependency/index.d.ts +0 -1
- package/dist/src/resolvers/dependency/index.js +0 -1
- package/dist/src/resolvers/index.d.ts +0 -1
- package/dist/src/resolvers/index.js +0 -1
- package/dist/src/resolvers/layout/index.d.ts +0 -1
- package/dist/src/resolvers/layout/index.js +0 -1
- package/dist/src/resolvers/layout/projectLayout.core.d.ts +0 -1
- package/dist/src/resolvers/layout/projectLayout.core.js +0 -1
- package/dist/src/resolvers/project.resolver.d.ts +0 -1
- package/dist/src/resolvers/project.resolver.js +0 -1
- package/dist/src/rollback/index.d.ts +0 -1
- package/dist/src/rollback/index.js +0 -1
- package/dist/src/rollback/rollbackManager.core.d.ts +0 -1
- package/dist/src/rollback/rollbackManager.core.js +0 -1
- package/dist/src/runners/package-manager/index.d.ts +0 -1
- package/dist/src/runners/package-manager/index.js +0 -1
- package/dist/src/runners/package-manager/packageManagerRunner.core.d.ts +0 -1
- package/dist/src/runners/package-manager/packageManagerRunner.core.js +0 -1
- package/dist/src/runners/process/index.d.ts +0 -1
- package/dist/src/runners/process/index.js +0 -1
- package/dist/src/runners/process/processRunner.core.d.ts +0 -1
- package/dist/src/runners/process/processRunner.core.js +0 -1
- package/dist/src/runners/task/index.d.ts +0 -1
- package/dist/src/runners/task/index.js +0 -1
- package/dist/src/runners/task/taskRunner.core.d.ts +0 -1
- package/dist/src/runners/task/taskRunner.core.js +0 -1
- package/dist/src/scaffolders/framework.scaffolder.d.ts +0 -1
- package/dist/src/scaffolders/framework.scaffolder.js +0 -1
- package/dist/src/scaffolders/index.d.ts +0 -1
- package/dist/src/scaffolders/index.js +0 -1
- package/dist/src/scaffolders/scaffolder.helper.d.ts +0 -1
- package/dist/src/scaffolders/scaffolder.helper.js +0 -1
- package/dist/src/templates/backendApp/backendApp.core.d.ts +0 -1
- package/dist/src/templates/backendApp/backendApp.core.js +0 -1
- package/dist/src/templates/backendApp/backendApp.modules.d.ts +0 -1
- package/dist/src/templates/backendApp/backendApp.modules.js +0 -1
- package/dist/src/templates/backendApp/backendApp.project.d.ts +19 -3
- package/dist/src/templates/backendApp/backendApp.project.js +41 -3
- package/dist/src/templates/backendApp/index.d.ts +0 -1
- package/dist/src/templates/backendApp/index.js +0 -1
- package/dist/src/templates/backendApp/parts/config.template.d.ts +0 -1
- package/dist/src/templates/backendApp/parts/config.template.js +13 -6
- package/dist/src/templates/backendApp/parts/httpUtils.template.d.ts +2 -2
- package/dist/src/templates/backendApp/parts/httpUtils.template.js +20 -6
- package/dist/src/templates/backendApp/parts/index.d.ts +0 -1
- package/dist/src/templates/backendApp/parts/index.js +0 -1
- package/dist/src/templates/backendApp/parts/integrations.template.d.ts +0 -1
- package/dist/src/templates/backendApp/parts/integrations.template.js +0 -1
- package/dist/src/templates/backendApp/parts/wiring.template.d.ts +3 -2
- package/dist/src/templates/backendApp/parts/wiring.template.js +13 -3
- package/dist/src/templates/microservice/index.d.ts +0 -1
- package/dist/src/templates/microservice/index.js +0 -1
- package/dist/src/templates/microservice/microservice.template.d.ts +0 -1
- package/dist/src/templates/microservice/microservice.template.js +6 -27
- package/dist/src/templates/modular-monolith/index.d.ts +0 -1
- package/dist/src/templates/modular-monolith/index.js +0 -1
- package/dist/src/templates/modular-monolith/modularMonolith.template.d.ts +0 -1
- package/dist/src/templates/modular-monolith/modularMonolith.template.js +3 -10
- package/dist/src/templates/monolith/index.d.ts +0 -1
- package/dist/src/templates/monolith/index.js +0 -1
- package/dist/src/templates/monolith/monolith.template.d.ts +0 -1
- package/dist/src/templates/monolith/monolith.template.js +3 -11
- package/dist/src/templates/resource/index.d.ts +0 -1
- package/dist/src/templates/resource/index.js +0 -1
- package/dist/src/templates/resource/layers/index.d.ts +4 -4
- package/dist/src/templates/resource/layers/index.js +4 -4
- package/dist/src/templates/resource/layers/resourceData.template.d.ts +8 -4
- package/dist/src/templates/resource/layers/resourceData.template.js +30 -72
- package/dist/src/templates/resource/layers/resourceHttp/index.d.ts +6 -0
- package/dist/src/templates/resource/layers/resourceHttp/index.js +6 -0
- package/dist/src/templates/resource/layers/resourceHttp/resourceController.template.d.ts +10 -0
- package/dist/src/templates/resource/layers/resourceHttp/resourceController.template.js +55 -0
- package/dist/src/templates/resource/layers/resourceHttp/resourceRoutes.template.d.ts +6 -0
- package/dist/src/templates/resource/layers/resourceHttp/resourceRoutes.template.js +77 -0
- package/dist/src/templates/resource/layers/resourceHttp/resourceTest.template.d.ts +11 -0
- package/dist/src/templates/resource/layers/resourceHttp/resourceTest.template.js +84 -0
- package/dist/src/templates/resource/layers/resourceMemory.template.d.ts +6 -0
- package/dist/src/templates/resource/layers/resourceMemory.template.js +87 -0
- package/dist/src/templates/resource/layers/resourcePrisma.template.d.ts +0 -1
- package/dist/src/templates/resource/layers/resourcePrisma.template.js +10 -9
- package/dist/src/templates/resource/layers/resourceService.template.d.ts +1 -8
- package/dist/src/templates/resource/layers/resourceService.template.js +9 -54
- package/dist/src/templates/resource/resource.files.d.ts +0 -1
- package/dist/src/templates/resource/resource.files.js +7 -6
- package/dist/src/templates/resource/resource.names.d.ts +0 -1
- package/dist/src/templates/resource/resource.names.js +0 -1
- package/dist/src/templates/resource/resource.type.d.ts +0 -1
- package/dist/src/templates/resource/resource.type.js +0 -1
- package/dist/src/templates/shared/appRuntime.template.d.ts +0 -1
- package/dist/src/templates/shared/appRuntime.template.js +6 -5
- package/dist/src/templates/shared/capability.template.d.ts +0 -1
- package/dist/src/templates/shared/capability.template.js +0 -1
- package/dist/src/templates/shared/dockerfile/dockerfile.install.d.ts +0 -1
- package/dist/src/templates/shared/dockerfile/dockerfile.install.js +0 -1
- package/dist/src/templates/shared/dockerfile/dockerfile.template.d.ts +0 -1
- package/dist/src/templates/shared/dockerfile/dockerfile.template.js +15 -5
- package/dist/src/templates/shared/dockerfile/index.d.ts +0 -1
- package/dist/src/templates/shared/dockerfile/index.js +0 -1
- package/dist/src/templates/shared/index.d.ts +1 -1
- package/dist/src/templates/shared/index.js +1 -1
- package/dist/src/templates/shared/pnpm.template.d.ts +0 -1
- package/dist/src/templates/shared/pnpm.template.js +0 -1
- package/dist/src/templates/shared/server.parts.d.ts +28 -0
- package/dist/src/templates/shared/server.parts.js +59 -0
- package/dist/src/templates/shared/server.template.d.ts +17 -16
- package/dist/src/templates/shared/server.template.js +42 -57
- package/dist/src/types/index.d.ts +0 -1
- package/dist/src/types/index.js +0 -1
- package/dist/src/types/projectConfiguration.type.d.ts +0 -1
- package/dist/src/types/projectConfiguration.type.js +0 -1
- package/dist/src/types/scaffold.type.d.ts +0 -1
- package/dist/src/types/scaffold.type.js +0 -1
- package/dist/src/utils/index.d.ts +0 -1
- package/dist/src/utils/index.js +0 -1
- package/dist/src/utils/utils.detect.d.ts +0 -1
- package/dist/src/utils/utils.detect.js +0 -1
- package/dist/src/utils/utils.exec.d.ts +0 -1
- package/dist/src/utils/utils.exec.js +0 -1
- package/dist/src/utils/utils.fileSystem.d.ts +0 -1
- package/dist/src/utils/utils.fileSystem.js +0 -1
- package/dist/src/utils/utils.name.d.ts +0 -1
- package/dist/src/utils/utils.name.js +0 -1
- package/dist/src/utils/utils.writeGuard.d.ts +0 -1
- package/dist/src/utils/utils.writeGuard.js +0 -1
- package/dist/src/validators/compatibility/compatibilityValidator.core.d.ts +0 -1
- package/dist/src/validators/compatibility/compatibilityValidator.core.js +0 -1
- package/dist/src/validators/compatibility/index.d.ts +0 -1
- package/dist/src/validators/compatibility/index.js +0 -1
- package/dist/src/validators/environment/environmentValidator.core.d.ts +0 -1
- package/dist/src/validators/environment/environmentValidator.core.js +0 -1
- package/dist/src/validators/environment/index.d.ts +0 -1
- package/dist/src/validators/environment/index.js +0 -1
- package/dist/src/validators/index.d.ts +0 -1
- package/dist/src/validators/index.js +0 -1
- package/dist/src/validators/project/index.d.ts +0 -1
- package/dist/src/validators/project/index.js +0 -1
- package/dist/src/validators/project/projectValidator.core.d.ts +0 -1
- package/dist/src/validators/project/projectValidator.core.js +0 -1
- package/dist/src/wiring/index.d.ts +0 -1
- package/dist/src/wiring/index.js +0 -1
- package/dist/src/wiring/wiring.dependencies.d.ts +0 -1
- package/dist/src/wiring/wiring.dependencies.js +0 -1
- package/dist/src/wiring/wiring.edits.d.ts +0 -1
- package/dist/src/wiring/wiring.edits.js +0 -1
- package/dist/src/wiring/wiring.markers.d.ts +7 -5
- package/dist/src/wiring/wiring.markers.js +8 -7
- package/package.json +6 -6
- package/dist/src/generators/controller/controller.generator.d.ts +0 -11
- package/dist/src/generators/controller/controller.generator.js +0 -47
- package/dist/src/generators/dto/dto.generator.d.ts +0 -12
- package/dist/src/generators/dto/dto.generator.js +0 -27
- package/dist/src/generators/dto/index.d.ts +0 -5
- package/dist/src/generators/dto/index.js +0 -5
- package/dist/src/generators/repository/repository.generator.d.ts +0 -10
- package/dist/src/generators/repository/repository.generator.js +0 -80
- package/dist/src/generators/route/index.d.ts +0 -5
- package/dist/src/generators/route/index.js +0 -5
- package/dist/src/generators/route/route.generator.d.ts +0 -12
- package/dist/src/generators/route/route.generator.js +0 -31
- package/dist/src/templates/resource/layers/resourceRoutes.template.d.ts +0 -13
- package/dist/src/templates/resource/layers/resourceRoutes.template.js +0 -129
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zudojs-cli — A resource's controller.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* `controllers/<slug>.controller.ts`: validates input with the DTO schemas
|
|
6
|
+
* and maps service results to responses. Handlers are arrow properties so
|
|
7
|
+
* they can be passed to the router unbound.
|
|
8
|
+
*/
|
|
9
|
+
export function renderResourceController(n, appSrcFromControllers) {
|
|
10
|
+
const schemas = `Create${n.entity}Schema, List${n.pascal}QuerySchema, ${n.entity}ParamsSchema, Update${n.entity}Schema`;
|
|
11
|
+
return `import type { HttpResponseContext, HttpRouterContext } from "@zudojs/http";
|
|
12
|
+
|
|
13
|
+
import { ${schemas} } from "../dtos/${n.slug}.dto.js";
|
|
14
|
+
import type { ${n.pascal}Service } from "../services/${n.slug}.service.js";
|
|
15
|
+
import { empty, json, readJsonBody, validationFailed } from "${appSrcFromControllers}/utils/http.js";
|
|
16
|
+
|
|
17
|
+
/** HTTP handlers for ${n.routePath}. */
|
|
18
|
+
export class ${n.pascal}Controller {
|
|
19
|
+
public constructor(private readonly service: ${n.pascal}Service) {}
|
|
20
|
+
|
|
21
|
+
public readonly list = async (ctx: HttpRouterContext): Promise<HttpResponseContext> => {
|
|
22
|
+
const query = List${n.pascal}QuerySchema.safeParse(ctx.query);
|
|
23
|
+
if (!query.success) return validationFailed(query.issues);
|
|
24
|
+
return json(200, await this.service.list(query.data));
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
public readonly get = async (ctx: HttpRouterContext): Promise<HttpResponseContext> => {
|
|
28
|
+
const params = ${n.entity}ParamsSchema.safeParse(ctx.params);
|
|
29
|
+
if (!params.success) return validationFailed(params.issues);
|
|
30
|
+
return json(200, await this.service.get(params.data.id));
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
public readonly create = async (ctx: HttpRouterContext): Promise<HttpResponseContext> => {
|
|
34
|
+
const body = Create${n.entity}Schema.safeParse(readJsonBody(ctx));
|
|
35
|
+
if (!body.success) return validationFailed(body.issues);
|
|
36
|
+
return json(201, await this.service.create(body.data));
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
public readonly update = async (ctx: HttpRouterContext): Promise<HttpResponseContext> => {
|
|
40
|
+
const params = ${n.entity}ParamsSchema.safeParse(ctx.params);
|
|
41
|
+
if (!params.success) return validationFailed(params.issues);
|
|
42
|
+
const body = Update${n.entity}Schema.safeParse(readJsonBody(ctx));
|
|
43
|
+
if (!body.success) return validationFailed(body.issues);
|
|
44
|
+
return json(200, await this.service.update(params.data.id, body.data));
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
public readonly remove = async (ctx: HttpRouterContext): Promise<HttpResponseContext> => {
|
|
48
|
+
const params = ${n.entity}ParamsSchema.safeParse(ctx.params);
|
|
49
|
+
if (!params.success) return validationFailed(params.issues);
|
|
50
|
+
await this.service.remove(params.data.id);
|
|
51
|
+
return empty(204);
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
`;
|
|
55
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zudojs-cli — A resource's CRUD routes, with OpenAPI metadata.
|
|
3
|
+
*/
|
|
4
|
+
import { type ResourceNames } from "../../resource.names.js";
|
|
5
|
+
/** `routes/<slug>.routes.ts`: `register<Pascal>Routes(router, controller)`. */
|
|
6
|
+
export declare function renderResourceRoutes(n: ResourceNames): string;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zudojs-cli — A resource's CRUD routes, with OpenAPI metadata.
|
|
3
|
+
*/
|
|
4
|
+
import { withArticle } from "../../resource.names.js";
|
|
5
|
+
/** `routes/<slug>.routes.ts`: `register<Pascal>Routes(router, controller)`. */
|
|
6
|
+
export function renderResourceRoutes(n) {
|
|
7
|
+
const schemas = [
|
|
8
|
+
`Create${n.entity}Schema`,
|
|
9
|
+
`List${n.pascal}QuerySchema`,
|
|
10
|
+
`${n.entity}PageSchema`,
|
|
11
|
+
`${n.entity}ParamsSchema`,
|
|
12
|
+
`${n.entity}Schema`,
|
|
13
|
+
`Update${n.entity}Schema`,
|
|
14
|
+
].join(", ");
|
|
15
|
+
return `import type { HttpRouter } from "@zudojs/http";
|
|
16
|
+
|
|
17
|
+
import type { ${n.pascal}Controller } from "../controllers/${n.slug}.controller.js";
|
|
18
|
+
import { ${schemas} } from "../dtos/${n.slug}.dto.js";
|
|
19
|
+
|
|
20
|
+
const BASE_PATH = "${n.routePath}";
|
|
21
|
+
const TAGS = ["${n.slug}"];
|
|
22
|
+
const invalid = { description: "The request failed validation" };
|
|
23
|
+
const missing = { description: "No ${n.label} has this id" };
|
|
24
|
+
|
|
25
|
+
/** Registers the ${n.slug} CRUD routes. */
|
|
26
|
+
export function register${n.pascal}Routes(
|
|
27
|
+
router: HttpRouter,
|
|
28
|
+
controller: ${n.pascal}Controller,
|
|
29
|
+
): void {
|
|
30
|
+
router.get(BASE_PATH, controller.list, {
|
|
31
|
+
openapi: {
|
|
32
|
+
summary: "List ${n.slug}",
|
|
33
|
+
tags: TAGS,
|
|
34
|
+
query: List${n.pascal}QuerySchema,
|
|
35
|
+
responses: { "200": { description: "A page of ${n.label} records", schema: ${n.entity}PageSchema }, "400": invalid },
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
router.get(\`\${BASE_PATH}/:id\`, controller.get, {
|
|
40
|
+
openapi: {
|
|
41
|
+
summary: "Get ${withArticle(n.label)}",
|
|
42
|
+
tags: TAGS,
|
|
43
|
+
params: ${n.entity}ParamsSchema,
|
|
44
|
+
responses: { "200": { description: "The ${n.label}", schema: ${n.entity}Schema }, "400": invalid, "404": missing },
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
router.post(BASE_PATH, controller.create, {
|
|
49
|
+
openapi: {
|
|
50
|
+
summary: "Create ${withArticle(n.label)}",
|
|
51
|
+
tags: TAGS,
|
|
52
|
+
body: Create${n.entity}Schema,
|
|
53
|
+
responses: { "201": { description: "Created", schema: ${n.entity}Schema }, "400": invalid },
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
router.patch(\`\${BASE_PATH}/:id\`, controller.update, {
|
|
58
|
+
openapi: {
|
|
59
|
+
summary: "Update ${withArticle(n.label)}",
|
|
60
|
+
tags: TAGS,
|
|
61
|
+
params: ${n.entity}ParamsSchema,
|
|
62
|
+
body: Update${n.entity}Schema,
|
|
63
|
+
responses: { "200": { description: "Updated", schema: ${n.entity}Schema }, "400": invalid, "404": missing },
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
router.delete(\`\${BASE_PATH}/:id\`, controller.remove, {
|
|
68
|
+
openapi: {
|
|
69
|
+
summary: "Delete ${withArticle(n.label)}",
|
|
70
|
+
tags: TAGS,
|
|
71
|
+
params: ${n.entity}ParamsSchema,
|
|
72
|
+
responses: { "204": { description: "Deleted" }, "400": invalid, "404": missing },
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
`;
|
|
77
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zudojs-cli — A resource's HTTP test.
|
|
3
|
+
*/
|
|
4
|
+
import { type ResourceNames } from "../../resource.names.js";
|
|
5
|
+
/**
|
|
6
|
+
* `tests/<slug>.test.ts` (or `tests/modules/<module>/<slug>.test.ts` for a
|
|
7
|
+
* module resource): drives the routes over real HTTP with
|
|
8
|
+
* `createHttpTestClient`, backed by the in-memory repository.
|
|
9
|
+
* `baseFromTests` is the import prefix from the test's folder to the layers.
|
|
10
|
+
*/
|
|
11
|
+
export declare function renderResourceTest(n: ResourceNames, baseFromTests: string): string;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zudojs-cli — A resource's HTTP test.
|
|
3
|
+
*/
|
|
4
|
+
import { withArticle } from "../../resource.names.js";
|
|
5
|
+
/**
|
|
6
|
+
* `tests/<slug>.test.ts` (or `tests/modules/<module>/<slug>.test.ts` for a
|
|
7
|
+
* module resource): drives the routes over real HTTP with
|
|
8
|
+
* `createHttpTestClient`, backed by the in-memory repository.
|
|
9
|
+
* `baseFromTests` is the import prefix from the test's folder to the layers.
|
|
10
|
+
*/
|
|
11
|
+
export function renderResourceTest(n, baseFromTests) {
|
|
12
|
+
const b = baseFromTests;
|
|
13
|
+
return `import { afterAll, describe, expect, it } from "vitest";
|
|
14
|
+
import { createRouter } from "@zudojs/http";
|
|
15
|
+
import { createHttpTestClient } from "@zudojs/testing";
|
|
16
|
+
|
|
17
|
+
import { ${n.pascal}Controller } from "${b}/controllers/${n.slug}.controller.js";
|
|
18
|
+
import type { ${n.entity}Page } from "${b}/dtos/${n.slug}.dto.js";
|
|
19
|
+
import { InMemory${n.pascal}Repository } from "${b}/repositories/${n.slug}.repository.js";
|
|
20
|
+
import { register${n.pascal}Routes } from "${b}/routes/${n.slug}.routes.js";
|
|
21
|
+
import { ${n.pascal}Service } from "${b}/services/${n.slug}.service.js";
|
|
22
|
+
|
|
23
|
+
const router = createRouter();
|
|
24
|
+
register${n.pascal}Routes(
|
|
25
|
+
router,
|
|
26
|
+
new ${n.pascal}Controller(new ${n.pascal}Service(new InMemory${n.pascal}Repository())),
|
|
27
|
+
);
|
|
28
|
+
const client = createHttpTestClient(router);
|
|
29
|
+
afterAll(() => client.close());
|
|
30
|
+
|
|
31
|
+
describe("${n.routePath}", () => {
|
|
32
|
+
it("creates, reads, updates and deletes ${withArticle(n.label)}", async () => {
|
|
33
|
+
const created = await client
|
|
34
|
+
.post("${n.routePath}")
|
|
35
|
+
.send({ name: "Ada" })
|
|
36
|
+
.expect(201)
|
|
37
|
+
.expectJson({ name: "Ada" });
|
|
38
|
+
const { id } = created.json<{ id: string }>();
|
|
39
|
+
|
|
40
|
+
await client.get(\`${n.routePath}/\${id}\`).expect(200).expectJson({ id, name: "Ada" });
|
|
41
|
+
await client
|
|
42
|
+
.patch(\`${n.routePath}/\${id}\`)
|
|
43
|
+
.send({ name: "Grace" })
|
|
44
|
+
.expect(200)
|
|
45
|
+
.expectJson({ name: "Grace" });
|
|
46
|
+
await client.delete(\`${n.routePath}/\${id}\`).expect(204);
|
|
47
|
+
await client.get(\`${n.routePath}/\${id}\`).expect(404);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it("lists ${n.label} records a page at a time", async () => {
|
|
51
|
+
const ids: string[] = [];
|
|
52
|
+
for (const name of ["Ada", "Grace", "Linus"]) {
|
|
53
|
+
const created = await client.post("${n.routePath}").send({ name }).expect(201);
|
|
54
|
+
ids.push(created.json<{ id: string }>().id);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const seen: string[] = [];
|
|
58
|
+
let cursor: string | null = null;
|
|
59
|
+
do {
|
|
60
|
+
const query: string = cursor === null ? "?limit=2" : \`?limit=2&cursor=\${cursor}\`;
|
|
61
|
+
const page: ${n.entity}Page = (await client.get(\`${n.routePath}\${query}\`).expect(200)).json<${n.entity}Page>();
|
|
62
|
+
expect(page.items.length).toBeLessThanOrEqual(2);
|
|
63
|
+
seen.push(...page.items.map((item) => item.id));
|
|
64
|
+
cursor = page.nextCursor;
|
|
65
|
+
} while (cursor !== null);
|
|
66
|
+
expect(seen).toEqual(expect.arrayContaining(ids));
|
|
67
|
+
|
|
68
|
+
await client.get("${n.routePath}?limit=0").expect(400);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it("rejects an invalid body with 400", async () => {
|
|
72
|
+
await client
|
|
73
|
+
.post("${n.routePath}")
|
|
74
|
+
.send({ name: "" })
|
|
75
|
+
.expect(400)
|
|
76
|
+
.expectJson({ error: "Validation failed" });
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it("rejects an id that is not a UUID with 400", async () => {
|
|
80
|
+
await client.get("${n.routePath}/not-a-uuid").expect(400);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
`;
|
|
84
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zudojs-cli — A resource's repository contract and in-memory store.
|
|
3
|
+
*/
|
|
4
|
+
import type { ResourceNames } from "../resource.names.js";
|
|
5
|
+
/** `repositories/<slug>.repository.ts`: the contract and a memory store. */
|
|
6
|
+
export declare function renderResourceRepository(n: ResourceNames): string;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zudojs-cli — A resource's repository contract and in-memory store.
|
|
3
|
+
*/
|
|
4
|
+
/** `repositories/<slug>.repository.ts`: the contract and a memory store. */
|
|
5
|
+
export function renderResourceRepository(n) {
|
|
6
|
+
const types = `Create${n.entity}Input, ${n.entity}, ${n.entity}Page, ${n.entity}PageRequest, Update${n.entity}Input`;
|
|
7
|
+
return `import { randomUUID } from "node:crypto";
|
|
8
|
+
|
|
9
|
+
import { ConflictError } from "@zudojs/errors";
|
|
10
|
+
|
|
11
|
+
import type { ${types} } from "../dtos/${n.slug}.dto.js";
|
|
12
|
+
|
|
13
|
+
/** Storage contract for ${n.label} records; the service depends on this only. */
|
|
14
|
+
export interface ${n.pascal}Repository {
|
|
15
|
+
/** One page in creation order, continuing after \`cursor\` when given. */
|
|
16
|
+
list(page: ${n.entity}PageRequest): Promise<${n.entity}Page>;
|
|
17
|
+
findById(id: string): Promise<${n.entity} | undefined>;
|
|
18
|
+
create(input: Create${n.entity}Input): Promise<${n.entity}>;
|
|
19
|
+
update(id: string, input: Update${n.entity}Input): Promise<${n.entity} | undefined>;
|
|
20
|
+
delete(id: string): Promise<boolean>;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** Most records the in-memory store keeps, so it cannot exhaust memory. */
|
|
24
|
+
const MAX_RECORDS = 10_000;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Keeps ${n.label} records in process memory: for development and tests.
|
|
28
|
+
* Data is lost on restart. Swap the implementation in container.ts.
|
|
29
|
+
*/
|
|
30
|
+
export class InMemory${n.pascal}Repository implements ${n.pascal}Repository {
|
|
31
|
+
private readonly records = new Map<string, ${n.entity}>();
|
|
32
|
+
|
|
33
|
+
public async list(page: ${n.entity}PageRequest): Promise<${n.entity}Page> {
|
|
34
|
+
// A Map iterates in insertion order, which is creation order here.
|
|
35
|
+
const all = [...this.records.values()];
|
|
36
|
+
let start = 0;
|
|
37
|
+
if (page.cursor !== undefined) {
|
|
38
|
+
const at = all.findIndex((record) => record.id === page.cursor);
|
|
39
|
+
if (at === -1) return { items: [], nextCursor: null };
|
|
40
|
+
start = at + 1;
|
|
41
|
+
}
|
|
42
|
+
const items = all.slice(start, start + page.limit);
|
|
43
|
+
const last = items.at(-1);
|
|
44
|
+
const nextCursor = last !== undefined && start + page.limit < all.length ? last.id : null;
|
|
45
|
+
return { items, nextCursor };
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public async findById(id: string): Promise<${n.entity} | undefined> {
|
|
49
|
+
return this.records.get(id);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public async create(input: Create${n.entity}Input): Promise<${n.entity}> {
|
|
53
|
+
if (this.records.size >= MAX_RECORDS) {
|
|
54
|
+
throw new ConflictError("The in-memory ${n.label} store is full.");
|
|
55
|
+
}
|
|
56
|
+
const now = new Date().toISOString();
|
|
57
|
+
const record: ${n.entity} = {
|
|
58
|
+
id: randomUUID(),
|
|
59
|
+
name: input.name,
|
|
60
|
+
createdAt: now,
|
|
61
|
+
updatedAt: now,
|
|
62
|
+
};
|
|
63
|
+
this.records.set(record.id, record);
|
|
64
|
+
return record;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public async update(
|
|
68
|
+
id: string,
|
|
69
|
+
input: Update${n.entity}Input,
|
|
70
|
+
): Promise<${n.entity} | undefined> {
|
|
71
|
+
const existing = this.records.get(id);
|
|
72
|
+
if (existing === undefined) return undefined;
|
|
73
|
+
const updated: ${n.entity} = {
|
|
74
|
+
...existing,
|
|
75
|
+
name: input.name ?? existing.name,
|
|
76
|
+
updatedAt: new Date().toISOString(),
|
|
77
|
+
};
|
|
78
|
+
this.records.set(id, updated);
|
|
79
|
+
return updated;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
public async delete(id: string): Promise<boolean> {
|
|
83
|
+
return this.records.delete(id);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
`;
|
|
87
|
+
}
|
|
@@ -12,4 +12,3 @@ export declare function renderPrismaRepository(n: ResourceNames, appSrcFromRepos
|
|
|
12
12
|
export declare function renderPrismaModel(n: ResourceNames): string;
|
|
13
13
|
/** Whether `schema` already declares a model named `entity`. */
|
|
14
14
|
export declare function hasPrismaModel(schema: string, entity: string): boolean;
|
|
15
|
-
//# sourceMappingURL=resourcePrisma.template.d.ts.map
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
/** `repositories/<slug>.prisma.repository.ts`. */
|
|
9
9
|
export function renderPrismaRepository(n, appSrcFromRepositories) {
|
|
10
|
-
const types = `Create${n.entity}Input, ${n.entity}, Update${n.entity}Input`;
|
|
10
|
+
const types = `Create${n.entity}Input, ${n.entity}, ${n.entity}Page, ${n.entity}PageRequest, Update${n.entity}Input`;
|
|
11
11
|
const delegate = `prisma().${n.entityCamel}`;
|
|
12
12
|
return `import { prisma } from "${appSrcFromRepositories}/integrations/database.js";
|
|
13
13
|
import type { ${types} } from "../dtos/${n.slug}.dto.js";
|
|
@@ -29,17 +29,19 @@ function to${n.entity}(row: ${n.entity}Row): ${n.entity} {
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
/** Most rows \`findAll\` returns; add pagination before raising it. */
|
|
33
|
-
const LIST_LIMIT = 1000;
|
|
34
|
-
|
|
35
32
|
/** Stores ${n.label} records in the \`${n.slug.replace(/-/g, "_")}\` table through Prisma. */
|
|
36
33
|
export class Prisma${n.pascal}Repository implements ${n.pascal}Repository {
|
|
37
|
-
public async
|
|
34
|
+
public async list(page: ${n.entity}PageRequest): Promise<${n.entity}Page> {
|
|
35
|
+
// Keyset pagination: one row more than asked tells whether a next page
|
|
36
|
+
// exists; \`cursor\` names the last row seen and \`skip: 1\` steps past it.
|
|
38
37
|
const rows = await ${delegate}.findMany({
|
|
39
|
-
orderBy: { createdAt: "asc" },
|
|
40
|
-
take:
|
|
38
|
+
orderBy: [{ createdAt: "asc" }, { id: "asc" }],
|
|
39
|
+
take: page.limit + 1,
|
|
40
|
+
...(page.cursor === undefined ? {} : { cursor: { id: page.cursor }, skip: 1 }),
|
|
41
41
|
});
|
|
42
|
-
|
|
42
|
+
const items = rows.slice(0, page.limit).map(to${n.entity});
|
|
43
|
+
const last = items.at(-1);
|
|
44
|
+
return { items, nextCursor: rows.length > page.limit && last !== undefined ? last.id : null };
|
|
43
45
|
}
|
|
44
46
|
|
|
45
47
|
public async findById(id: string): Promise<${n.entity} | undefined> {
|
|
@@ -86,4 +88,3 @@ model ${n.entity} {
|
|
|
86
88
|
export function hasPrismaModel(schema, entity) {
|
|
87
89
|
return new RegExp(`^model\\s+${entity}\\s*\\{`, "m").test(schema);
|
|
88
90
|
}
|
|
89
|
-
//# sourceMappingURL=resourcePrisma.template.js.map
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* zudojs-cli — A resource's service
|
|
2
|
+
* zudojs-cli — A resource's service.
|
|
3
3
|
*/
|
|
4
4
|
import type { ResourceNames } from "../resource.names.js";
|
|
5
5
|
/** `services/<slug>.service.ts`: CRUD with NotFoundError for missing ids. */
|
|
6
6
|
export declare function renderResourceService(n: ResourceNames): string;
|
|
7
|
-
/**
|
|
8
|
-
* `controllers/<slug>.controller.ts`: validates input with the DTO schemas
|
|
9
|
-
* and maps service results to responses. Handlers are arrow properties so
|
|
10
|
-
* they can be passed to the router unbound.
|
|
11
|
-
*/
|
|
12
|
-
export declare function renderResourceController(n: ResourceNames, appSrcFromControllers: string): string;
|
|
13
|
-
//# sourceMappingURL=resourceService.template.d.ts.map
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* zudojs-cli — A resource's service
|
|
2
|
+
* zudojs-cli — A resource's service.
|
|
3
3
|
*/
|
|
4
4
|
/** `services/<slug>.service.ts`: CRUD with NotFoundError for missing ids. */
|
|
5
5
|
export function renderResourceService(n) {
|
|
6
|
-
const types = `Create${n.entity}Input, ${n.entity}, Update${n.entity}Input`;
|
|
6
|
+
const types = `Create${n.entity}Input, ${n.entity}, ${n.entity}Page, List${n.pascal}Query, Update${n.entity}Input`;
|
|
7
7
|
return `import { NotFoundError } from "@zudojs/errors";
|
|
8
8
|
|
|
9
|
+
import { DEFAULT_PAGE_SIZE } from "../dtos/${n.slug}.dto.js";
|
|
9
10
|
import type { ${types} } from "../dtos/${n.slug}.dto.js";
|
|
10
11
|
import type { ${n.pascal}Repository } from "../repositories/${n.slug}.repository.js";
|
|
11
12
|
|
|
@@ -13,8 +14,12 @@ import type { ${n.pascal}Repository } from "../repositories/${n.slug}.repository
|
|
|
13
14
|
export class ${n.pascal}Service {
|
|
14
15
|
public constructor(private readonly repository: ${n.pascal}Repository) {}
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
/** One page of ${n.label} records (\`limit\` defaults to DEFAULT_PAGE_SIZE). */
|
|
18
|
+
public list(query: List${n.pascal}Query): Promise<${n.entity}Page> {
|
|
19
|
+
return this.repository.list({
|
|
20
|
+
limit: query.limit ?? DEFAULT_PAGE_SIZE,
|
|
21
|
+
...(query.cursor === undefined ? {} : { cursor: query.cursor }),
|
|
22
|
+
});
|
|
18
23
|
}
|
|
19
24
|
|
|
20
25
|
public async get(id: string): Promise<${n.entity}> {
|
|
@@ -43,53 +48,3 @@ function notFound(id: string): NotFoundError {
|
|
|
43
48
|
}
|
|
44
49
|
`;
|
|
45
50
|
}
|
|
46
|
-
/**
|
|
47
|
-
* `controllers/<slug>.controller.ts`: validates input with the DTO schemas
|
|
48
|
-
* and maps service results to responses. Handlers are arrow properties so
|
|
49
|
-
* they can be passed to the router unbound.
|
|
50
|
-
*/
|
|
51
|
-
export function renderResourceController(n, appSrcFromControllers) {
|
|
52
|
-
const schemas = `Create${n.entity}Schema, ${n.entity}ParamsSchema, Update${n.entity}Schema`;
|
|
53
|
-
return `import type { HttpResponseContext, HttpRouterContext } from "@zudojs/http";
|
|
54
|
-
|
|
55
|
-
import { ${schemas} } from "../dtos/${n.slug}.dto.js";
|
|
56
|
-
import type { ${n.pascal}Service } from "../services/${n.slug}.service.js";
|
|
57
|
-
import { empty, json, readJsonBody, validationFailed } from "${appSrcFromControllers}/utils/http.js";
|
|
58
|
-
|
|
59
|
-
/** HTTP handlers for ${n.routePath}. */
|
|
60
|
-
export class ${n.pascal}Controller {
|
|
61
|
-
public constructor(private readonly service: ${n.pascal}Service) {}
|
|
62
|
-
|
|
63
|
-
public readonly list = async (): Promise<HttpResponseContext> =>
|
|
64
|
-
json(200, await this.service.list());
|
|
65
|
-
|
|
66
|
-
public readonly get = async (ctx: HttpRouterContext): Promise<HttpResponseContext> => {
|
|
67
|
-
const params = ${n.entity}ParamsSchema.safeParse(ctx.params);
|
|
68
|
-
if (!params.success) return validationFailed(params.issues);
|
|
69
|
-
return json(200, await this.service.get(params.data.id));
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
public readonly create = async (ctx: HttpRouterContext): Promise<HttpResponseContext> => {
|
|
73
|
-
const body = Create${n.entity}Schema.safeParse(readJsonBody(ctx));
|
|
74
|
-
if (!body.success) return validationFailed(body.issues);
|
|
75
|
-
return json(201, await this.service.create(body.data));
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
public readonly update = async (ctx: HttpRouterContext): Promise<HttpResponseContext> => {
|
|
79
|
-
const params = ${n.entity}ParamsSchema.safeParse(ctx.params);
|
|
80
|
-
if (!params.success) return validationFailed(params.issues);
|
|
81
|
-
const body = Update${n.entity}Schema.safeParse(readJsonBody(ctx));
|
|
82
|
-
if (!body.success) return validationFailed(body.issues);
|
|
83
|
-
return json(200, await this.service.update(params.data.id, body.data));
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
public readonly remove = async (ctx: HttpRouterContext): Promise<HttpResponseContext> => {
|
|
87
|
-
const params = ${n.entity}ParamsSchema.safeParse(ctx.params);
|
|
88
|
-
if (!params.success) return validationFailed(params.issues);
|
|
89
|
-
await this.service.remove(params.data.id);
|
|
90
|
-
return empty(204);
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
`;
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=resourceService.template.js.map
|
|
@@ -36,7 +36,11 @@ export function resourceLayerPaths(n, layout, layer) {
|
|
|
36
36
|
case "routes":
|
|
37
37
|
return [joinPath(layout.base, "routes", `${n.slug}.routes.ts`)];
|
|
38
38
|
case "test":
|
|
39
|
-
|
|
39
|
+
// A module resource's test sits under tests/modules/<module>/, so two
|
|
40
|
+
// modules can each have a resource of the same name.
|
|
41
|
+
return [
|
|
42
|
+
joinPath(layout.appRoot, "tests", posix.relative(layout.appSrc, layout.base), `${n.slug}.test.ts`),
|
|
43
|
+
];
|
|
40
44
|
}
|
|
41
45
|
}
|
|
42
46
|
/** Renders `layers` of a resource as `{ path: content }`. */
|
|
@@ -65,11 +69,9 @@ export function renderResourceLayers(n, layout, layers) {
|
|
|
65
69
|
case "routes":
|
|
66
70
|
files[path] = renderResourceRoutes(n);
|
|
67
71
|
break;
|
|
68
|
-
case "test":
|
|
69
|
-
|
|
70
|
-
files[path] = renderResourceTest(n, posix.relative(tests, layout.base));
|
|
72
|
+
case "test":
|
|
73
|
+
files[path] = renderResourceTest(n, posix.relative(posix.dirname(path), layout.base));
|
|
71
74
|
break;
|
|
72
|
-
}
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
77
|
return files;
|
|
@@ -96,4 +98,3 @@ export function resourceWiring(n, layout) {
|
|
|
96
98
|
containerKey: key,
|
|
97
99
|
};
|
|
98
100
|
}
|
|
99
|
-
//# sourceMappingURL=resource.files.js.map
|
|
@@ -41,4 +41,3 @@ export declare function resourceNames(raw: string): ResourceNames;
|
|
|
41
41
|
* Pass `capitalize` for the start of a sentence ("An example").
|
|
42
42
|
*/
|
|
43
43
|
export declare function withArticle(noun: string, capitalize?: boolean): string;
|
|
44
|
-
//# sourceMappingURL=resource.names.d.ts.map
|
|
@@ -16,4 +16,3 @@ export interface ResourceLayout {
|
|
|
16
16
|
export declare function toAppSrc(layout: ResourceLayout, layerDir: string): string;
|
|
17
17
|
/** Joins path segments, dropping empty ones. */
|
|
18
18
|
export declare function joinPath(...parts: readonly string[]): string;
|
|
19
|
-
//# sourceMappingURL=resource.type.d.ts.map
|
|
@@ -54,7 +54,6 @@ ${options.modules.map((m) => ` new ${m.className}(),`).join("\n")}${options.m
|
|
|
54
54
|
: `\n metadata: { port: ${options.port} },`;
|
|
55
55
|
return `import type { Server } from "node:http";
|
|
56
56
|
|
|
57
|
-
import { resolveEnvironment } from "@zudojs/constants";
|
|
58
57
|
import { createContainer } from "@zudojs/container";
|
|
59
58
|
import type { Module } from "@zudojs/core";
|
|
60
59
|
import { createEventBus } from "@zudojs/events";
|
|
@@ -79,6 +78,10 @@ export interface AppOptions {
|
|
|
79
78
|
* modules share, and the options describing this application. Integrations
|
|
80
79
|
* (\`src/integrations\`) are registered first so they start before, and stop
|
|
81
80
|
* after, every other module.
|
|
81
|
+
*
|
|
82
|
+
* The runtime's container is the one modules see as
|
|
83
|
+
* \`context.application.container\`; server.ts registers the composition
|
|
84
|
+
* root (\`container.ts\`) in it under \`APP_DEPENDENCIES\`.
|
|
82
85
|
*/
|
|
83
86
|
export function createApp(options: AppOptions): Runtime {
|
|
84
87
|
const logger = createLogger({ name: ${literal(options.applicationName)} });
|
|
@@ -97,9 +100,8 @@ ${registration}
|
|
|
97
100
|
{
|
|
98
101
|
applicationName: ${literal(options.applicationName)},
|
|
99
102
|
applicationVersion: "0.1.0",
|
|
100
|
-
//
|
|
101
|
-
|
|
102
|
-
environment: resolveEnvironment(),
|
|
103
|
+
// Resolved once by loadConfig (configs/index.ts) from NODE_ENV.
|
|
104
|
+
environment: options.config.nodeEnv,
|
|
103
105
|
// Signals are handled explicitly in server.ts.
|
|
104
106
|
handleSignals: false,${metadata}
|
|
105
107
|
},
|
|
@@ -166,4 +168,3 @@ export class ${className} {
|
|
|
166
168
|
}
|
|
167
169
|
`;
|
|
168
170
|
}
|
|
169
|
-
//# sourceMappingURL=appRuntime.template.js.map
|
|
@@ -31,4 +31,3 @@ export declare function resolveProjectCapabilities(options: ScaffoldOptions): re
|
|
|
31
31
|
* `zudojs add` and `zudojs doctor` use.
|
|
32
32
|
*/
|
|
33
33
|
export declare function capabilityPackages(capabilities: readonly string[]): readonly string[];
|
|
34
|
-
//# sourceMappingURL=capability.template.d.ts.map
|
|
@@ -32,4 +32,3 @@ export declare function lockedInstallSteps(packageManager: string): DockerInstal
|
|
|
32
32
|
* package, so it cannot pin this app's isolated install.
|
|
33
33
|
*/
|
|
34
34
|
export declare function workspaceMemberInstallSteps(packageManager: string): DockerInstallSteps;
|
|
35
|
-
//# sourceMappingURL=dockerfile.install.d.ts.map
|