zudojs-cli 2.1.3 → 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 +19 -8
- 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 +0 -1
- package/dist/src/generators/middleware/index.js +0 -1
- package/dist/src/generators/middleware/middleware.generator.d.ts +0 -1
- package/dist/src/generators/middleware/middleware.generator.js +0 -1
- package/dist/src/generators/middleware/middleware.template.d.ts +0 -1
- package/dist/src/generators/middleware/middleware.template.js +0 -1
- 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 -23
- package/dist/src/templates/shared/server.template.js +42 -69
- 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,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
|
|
@@ -12,15 +12,26 @@ import { lockedInstallSteps, workspaceMemberInstallSteps, } from "./dockerfile.i
|
|
|
12
12
|
function runnerFor(packageManager) {
|
|
13
13
|
return packageManager === "npm" || packageManager === "bun" ? "npm" : packageManager;
|
|
14
14
|
}
|
|
15
|
-
/**
|
|
16
|
-
|
|
15
|
+
/**
|
|
16
|
+
* The runtime stage of a single-package image. With Prisma, the schema,
|
|
17
|
+
* migrations and `prisma.config.ts` come along (the CLI is a runtime
|
|
18
|
+
* dependency), so the same image applies migrations.
|
|
19
|
+
*/
|
|
20
|
+
function runtimeStage(port, dist, from, prisma = false) {
|
|
21
|
+
const migrations = prisma
|
|
22
|
+
? `COPY --from=build --chown=node:node ${from}/prisma ./prisma
|
|
23
|
+
COPY --from=build --chown=node:node ${from}/prisma.config.ts ./
|
|
24
|
+
# Apply migrations with this image before starting a new version:
|
|
25
|
+
# docker run --rm --env-file .env <image> npx prisma migrate deploy
|
|
26
|
+
`
|
|
27
|
+
: "";
|
|
17
28
|
return `FROM node:24-alpine AS runtime
|
|
18
29
|
ENV NODE_ENV=production
|
|
19
30
|
WORKDIR /app
|
|
20
31
|
COPY --from=build --chown=node:node ${from}/package.json ./
|
|
21
32
|
COPY --from=build --chown=node:node ${from}/node_modules ./node_modules
|
|
22
33
|
COPY --from=build --chown=node:node ${from}/${dist} ./${dist}
|
|
23
|
-
USER node
|
|
34
|
+
${migrations}USER node
|
|
24
35
|
EXPOSE ${port}
|
|
25
36
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=15s CMD ["node", "-e", "fetch('http://127.0.0.1:${port}/health').then((r) => process.exit(r.ok ? 0 : 1), () => process.exit(1))"]
|
|
26
37
|
CMD ["node", "${dist}/server.js"]
|
|
@@ -58,7 +69,7 @@ export function renderAppPackageDockerfile(options) {
|
|
|
58
69
|
...(steps.prune === undefined ? [] : [`RUN ${steps.prune}`]),
|
|
59
70
|
"",
|
|
60
71
|
];
|
|
61
|
-
return `${lines.join("\n")}\n${runtimeStage(options.port, "dist", "/app")}`;
|
|
72
|
+
return `${lines.join("\n")}\n${runtimeStage(options.port, "dist", "/app", options.prisma === true)}`;
|
|
62
73
|
}
|
|
63
74
|
/**
|
|
64
75
|
* A Dockerfile for a workspace whose server lives in `appDirectory`. The whole
|
|
@@ -92,4 +103,3 @@ HEALTHCHECK --interval=30s --timeout=5s --start-period=15s CMD ["node", "-e", "f
|
|
|
92
103
|
CMD ["node", "${dist}/server.js"]
|
|
93
104
|
`;
|
|
94
105
|
}
|
|
95
|
-
//# sourceMappingURL=dockerfile.template.js.map
|
|
@@ -5,5 +5,5 @@ export * from "./appRuntime.template.js";
|
|
|
5
5
|
export * from "./capability.template.js";
|
|
6
6
|
export * from "./dockerfile/index.js";
|
|
7
7
|
export * from "./pnpm.template.js";
|
|
8
|
+
export { renderShutdownBlock } from "./server.parts.js";
|
|
8
9
|
export * from "./server.template.js";
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -5,5 +5,5 @@ export * from "./appRuntime.template.js";
|
|
|
5
5
|
export * from "./capability.template.js";
|
|
6
6
|
export * from "./dockerfile/index.js";
|
|
7
7
|
export * from "./pnpm.template.js";
|
|
8
|
+
export { renderShutdownBlock } from "./server.parts.js";
|
|
8
9
|
export * from "./server.template.js";
|
|
9
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zudojs-cli — Fragments of the generated `src/server.ts`.
|
|
3
|
+
*
|
|
4
|
+
* The OpenAPI lines (also inserted by `zudojs add openapi`) and the
|
|
5
|
+
* shutdown block. `server.template.ts` assembles them.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* The lines `zudojs add openapi` (or `create`) puts in server.ts.
|
|
9
|
+
*
|
|
10
|
+
* The documentation page is served in every environment but production:
|
|
11
|
+
* it lists every route and its schemas, which a public deployment should
|
|
12
|
+
* not hand out by default. `/openapi.json` stays, for clients and tooling.
|
|
13
|
+
*/
|
|
14
|
+
export declare function openApiServerLines(title: string): {
|
|
15
|
+
readonly importLine: string;
|
|
16
|
+
readonly mountLine: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* The SIGINT/SIGTERM handlers and the "Listening on" line.
|
|
20
|
+
*
|
|
21
|
+
* The signal listeners stay registered (`process.on`, not `once`) for the
|
|
22
|
+
* whole shutdown. Under `tsx watch`, Ctrl+C delivers SIGINT twice (from the
|
|
23
|
+
* terminal and forwarded by the watcher); with `once` the second signal
|
|
24
|
+
* found no listener and Node's default action killed the process before
|
|
25
|
+
* the runtime had stopped or logged anything. "Listening on" is logged once
|
|
26
|
+
* the listeners are in place, so a signal sent after it is always handled.
|
|
27
|
+
*/
|
|
28
|
+
export declare function renderShutdownBlock(): string;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zudojs-cli — Fragments of the generated `src/server.ts`.
|
|
3
|
+
*
|
|
4
|
+
* The OpenAPI lines (also inserted by `zudojs add openapi`) and the
|
|
5
|
+
* shutdown block. `server.template.ts` assembles them.
|
|
6
|
+
*/
|
|
7
|
+
/** Emits a string as a TypeScript string literal that cannot break out. */
|
|
8
|
+
function literal(value) {
|
|
9
|
+
return JSON.stringify(value);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The lines `zudojs add openapi` (or `create`) puts in server.ts.
|
|
13
|
+
*
|
|
14
|
+
* The documentation page is served in every environment but production:
|
|
15
|
+
* it lists every route and its schemas, which a public deployment should
|
|
16
|
+
* not hand out by default. `/openapi.json` stays, for clients and tooling.
|
|
17
|
+
*/
|
|
18
|
+
export function openApiServerLines(title) {
|
|
19
|
+
return {
|
|
20
|
+
importLine: `import { mountOpenAPI } from "@zudojs/http";`,
|
|
21
|
+
mountLine: `mountOpenAPI(router, { info: { title: ${literal(title)}, version: "0.1.0" }, docsPath: config.nodeEnv === "production" ? false : "/docs" });`,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The SIGINT/SIGTERM handlers and the "Listening on" line.
|
|
26
|
+
*
|
|
27
|
+
* The signal listeners stay registered (`process.on`, not `once`) for the
|
|
28
|
+
* whole shutdown. Under `tsx watch`, Ctrl+C delivers SIGINT twice (from the
|
|
29
|
+
* terminal and forwarded by the watcher); with `once` the second signal
|
|
30
|
+
* found no listener and Node's default action killed the process before
|
|
31
|
+
* the runtime had stopped or logged anything. "Listening on" is logged once
|
|
32
|
+
* the listeners are in place, so a signal sent after it is always handled.
|
|
33
|
+
*/
|
|
34
|
+
export function renderShutdownBlock() {
|
|
35
|
+
return `let stopping = false;
|
|
36
|
+
for (const signal of ["SIGINT", "SIGTERM"] as const) {
|
|
37
|
+
process.on(signal, () => {
|
|
38
|
+
if (stopping) {
|
|
39
|
+
console.log(\`Received \${signal} again: already shutting down.\`);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
stopping = true;
|
|
43
|
+
console.log(\`Received \${signal}: shutting down.\`);
|
|
44
|
+
void drainIntegrations(integrations)
|
|
45
|
+
.then(() => server.stop())
|
|
46
|
+
.then(() => runtime.stop())
|
|
47
|
+
.then(() => {
|
|
48
|
+
process.exit(0);
|
|
49
|
+
})
|
|
50
|
+
.catch((error: unknown) => {
|
|
51
|
+
console.error(error);
|
|
52
|
+
process.exit(1);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
console.log(\`Listening on http://\${config.host}:\${server.address?.port ?? config.port}\`);
|
|
58
|
+
`;
|
|
59
|
+
}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* zudojs-cli — Generated `src/server.ts`
|
|
3
3
|
*
|
|
4
|
-
* The entry point loads the configuration, builds
|
|
5
|
-
* `
|
|
6
|
-
* the
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* The entry point loads the configuration, builds the runtime with
|
|
5
|
+
* `createApp()`, constructs the composition root (`container.ts`) and
|
|
6
|
+
* registers it in the runtime's DI container, builds a router with
|
|
7
|
+
* `createRouter()`, registers every route through `registerRoutes`, mounts
|
|
8
|
+
* the OpenAPI document (and, outside production, the `/docs` page) when the
|
|
9
|
+
* `openapi` capability is on, and serves the router with `createHttpServer`
|
|
10
|
+
* + `createNodeHttpAdapter`.
|
|
9
11
|
*
|
|
10
12
|
* Every response passes through the @zudojs/security default headers, a
|
|
11
13
|
* CORS policy that allows only `CORS_ORIGINS` (none by default) and a
|
|
12
|
-
* per-client rate limit (`RATE_LIMIT_MAX` per `RATE_LIMIT_WINDOW_MS
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* found no listener and Node's default action killed the process before
|
|
22
|
-
* the runtime had stopped or logged anything. "Listening on" is logged once
|
|
23
|
-
* the listeners are in place, so a signal sent after it is always handled.
|
|
14
|
+
* per-client rate limit (`RATE_LIMIT_MAX` per `RATE_LIMIT_WINDOW_MS`; 0
|
|
15
|
+
* turns it off). Exposed errors are answered with their status; anything
|
|
16
|
+
* else is logged with the runtime's logger and answered with a generic 500
|
|
17
|
+
* built inside the pipeline, so it carries the security headers too. It
|
|
18
|
+
* used to rethrow, which left the adapter to answer a bare 500 that nothing
|
|
19
|
+
* logged. On SIGINT/SIGTERM integrations drain, HTTP stops, then the
|
|
20
|
+
* runtime stops (see `server.parts.ts`).
|
|
21
|
+
* `tests/generatedProject.typecheck.test.ts` type-checks the output against
|
|
22
|
+
* the current `@zudojs/*` sources; `tests/cli.round12.server.test.ts` runs it.
|
|
24
23
|
*/
|
|
24
|
+
export { openApiServerLines } from "./server.parts.js";
|
|
25
25
|
/** Options for {@link renderServerFile}. */
|
|
26
26
|
export interface ServerFileOptions {
|
|
27
27
|
/** Title of the OpenAPI document. */
|
|
@@ -29,11 +29,5 @@ export interface ServerFileOptions {
|
|
|
29
29
|
/** Whether `/openapi.json` and `/docs` are mounted. */
|
|
30
30
|
readonly openapi: boolean;
|
|
31
31
|
}
|
|
32
|
-
/** The lines `zudojs add openapi` (or `create`) puts in server.ts. */
|
|
33
|
-
export declare function openApiServerLines(title: string): {
|
|
34
|
-
readonly importLine: string;
|
|
35
|
-
readonly mountLine: string;
|
|
36
|
-
};
|
|
37
32
|
/** Renders `src/server.ts`. */
|
|
38
33
|
export declare function renderServerFile(options: ServerFileOptions): string;
|
|
39
|
-
//# sourceMappingURL=server.template.d.ts.map
|