@decohere/create 0.0.1-dev.18 → 0.0.1-dev.19
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/commonjs/src/cli.js +10 -6
- package/commonjs/src/domain/prompt.js +55 -0
- package/commonjs/src/models/package-json.model.js +2 -2
- package/commonjs/src/runner.js +56 -0
- package/commonjs/src/version.js +32 -0
- package/commonjs/src/webapi/features/auth.feature.js +2 -2
- package/commonjs/src/webapi/features/database.feature.js +3 -3
- package/commonjs/src/webapi/features/finalize.feature.js +11 -6
- package/commonjs/src/webapi/features/postman.feature.js +4 -4
- package/commonjs/src/webapi/models/api-package-json.model.js +2 -2
- package/es6/src/cli.js +10 -6
- package/es6/src/domain/prompt.js +37 -0
- package/es6/src/models/package-json.model.js +2 -2
- package/es6/src/runner.js +55 -0
- package/es6/src/version.js +22 -0
- package/es6/src/webapi/features/auth.feature.js +2 -2
- package/es6/src/webapi/features/database.feature.js +3 -3
- package/es6/src/webapi/features/finalize.feature.js +11 -6
- package/es6/src/webapi/features/postman.feature.js +4 -4
- package/es6/src/webapi/models/api-package-json.model.js +2 -2
- package/package.json +2 -2
- package/types/src/runner.d.ts +13 -0
- package/commonjs/v1/cli.js +0 -15
- package/commonjs/v1/domain/class-model.js +0 -106
- package/commonjs/v1/domain/compose.model.js +0 -74
- package/commonjs/v1/domain/context.js +0 -53
- package/commonjs/v1/domain/devcontainer.model.js +0 -116
- package/commonjs/v1/domain/dockerfile.model.js +0 -62
- package/commonjs/v1/domain/feature.js +0 -19
- package/commonjs/v1/domain/import-map.js +0 -74
- package/commonjs/v1/domain/index.js +0 -68
- package/commonjs/v1/domain/prompt.js +0 -45
- package/commonjs/v1/domain/workflow.js +0 -37
- package/commonjs/v1/features/api-core/feature.js +0 -103
- package/commonjs/v1/features/api-core/hello-controller.model.js +0 -100
- package/commonjs/v1/features/api-core/main-ts.model.js +0 -85
- package/commonjs/v1/features/api-core/scaffold-files.template.js +0 -158
- package/commonjs/v1/features/auth0/auth0-cli.js +0 -151
- package/commonjs/v1/features/auth0/feature.js +0 -187
- package/commonjs/v1/features/auth0/models.js +0 -14
- package/commonjs/v1/features/auth0/prod-config.template.js +0 -19
- package/commonjs/v1/features/cli-core/feature.js +0 -37
- package/commonjs/v1/features/cli-core/scaffold-files.template.js +0 -103
- package/commonjs/v1/features/devcontainer/feature.js +0 -38
- package/commonjs/v1/features/finalize/feature.js +0 -48
- package/commonjs/v1/features/postgresql/feature.js +0 -81
- package/commonjs/v1/features/postgresql/models.js +0 -14
- package/commonjs/v1/features/postman/collection.template.js +0 -80
- package/commonjs/v1/features/postman/environment.template.js +0 -24
- package/commonjs/v1/features/postman/feature.js +0 -192
- package/commonjs/v1/features/typeorm/feature.js +0 -66
- package/commonjs/v1/features/typeorm/scaffold-files.template.js +0 -80
- package/commonjs/v1/scaffold.js +0 -50
- package/commonjs/v1/version.js +0 -32
- package/commonjs/v1/workflows/api.js +0 -29
- package/commonjs/v1/workflows/cli.js +0 -19
- package/es6/v1/cli.js +0 -11
- package/es6/v1/domain/class-model.js +0 -104
- package/es6/v1/domain/compose.model.js +0 -61
- package/es6/v1/domain/context.js +0 -37
- package/es6/v1/domain/devcontainer.model.js +0 -104
- package/es6/v1/domain/dockerfile.model.js +0 -52
- package/es6/v1/domain/feature.js +0 -9
- package/es6/v1/domain/import-map.js +0 -64
- package/es6/v1/domain/index.js +0 -11
- package/es6/v1/domain/prompt.js +0 -27
- package/es6/v1/domain/workflow.js +0 -24
- package/es6/v1/features/api-core/feature.js +0 -93
- package/es6/v1/features/api-core/hello-controller.model.js +0 -96
- package/es6/v1/features/api-core/main-ts.model.js +0 -74
- package/es6/v1/features/api-core/scaffold-files.template.js +0 -116
- package/es6/v1/features/auth0/auth0-cli.js +0 -116
- package/es6/v1/features/auth0/feature.js +0 -136
- package/es6/v1/features/auth0/models.js +0 -4
- package/es6/v1/features/auth0/prod-config.template.js +0 -9
- package/es6/v1/features/cli-core/feature.js +0 -27
- package/es6/v1/features/cli-core/scaffold-files.template.js +0 -73
- package/es6/v1/features/devcontainer/feature.js +0 -28
- package/es6/v1/features/finalize/feature.js +0 -38
- package/es6/v1/features/postgresql/feature.js +0 -71
- package/es6/v1/features/postgresql/models.js +0 -4
- package/es6/v1/features/postman/collection.template.js +0 -70
- package/es6/v1/features/postman/environment.template.js +0 -14
- package/es6/v1/features/postman/feature.js +0 -141
- package/es6/v1/features/typeorm/feature.js +0 -56
- package/es6/v1/features/typeorm/scaffold-files.template.js +0 -56
- package/es6/v1/scaffold.js +0 -40
- package/es6/v1/version.js +0 -22
- package/es6/v1/workflows/api.js +0 -25
- package/es6/v1/workflows/cli.js +0 -9
- package/types/v1/cli.d.ts +0 -2
- package/types/v1/domain/class-model.d.ts +0 -70
- package/types/v1/domain/compose.model.d.ts +0 -25
- package/types/v1/domain/context.d.ts +0 -36
- package/types/v1/domain/devcontainer.model.d.ts +0 -35
- package/types/v1/domain/dockerfile.model.d.ts +0 -11
- package/types/v1/domain/feature.d.ts +0 -29
- package/types/v1/domain/import-map.d.ts +0 -24
- package/types/v1/domain/index.d.ts +0 -12
- package/types/v1/domain/workflow.d.ts +0 -14
- package/types/v1/features/api-core/feature.d.ts +0 -2
- package/types/v1/features/api-core/hello-controller.model.d.ts +0 -9
- package/types/v1/features/api-core/main-ts.model.d.ts +0 -31
- package/types/v1/features/api-core/scaffold-files.template.d.ts +0 -10
- package/types/v1/features/auth0/auth0-cli.d.ts +0 -22
- package/types/v1/features/auth0/feature.d.ts +0 -2
- package/types/v1/features/auth0/models.d.ts +0 -5
- package/types/v1/features/auth0/prod-config.template.d.ts +0 -1
- package/types/v1/features/cli-core/feature.d.ts +0 -2
- package/types/v1/features/cli-core/scaffold-files.template.d.ts +0 -6
- package/types/v1/features/devcontainer/feature.d.ts +0 -2
- package/types/v1/features/finalize/feature.d.ts +0 -2
- package/types/v1/features/postgresql/feature.d.ts +0 -2
- package/types/v1/features/postgresql/models.d.ts +0 -6
- package/types/v1/features/postman/collection.template.d.ts +0 -1
- package/types/v1/features/postman/environment.template.d.ts +0 -6
- package/types/v1/features/postman/feature.d.ts +0 -2
- package/types/v1/features/typeorm/feature.d.ts +0 -2
- package/types/v1/features/typeorm/scaffold-files.template.d.ts +0 -9
- package/types/v1/scaffold.d.ts +0 -3
- package/types/v1/workflows/api.d.ts +0 -8
- package/types/v1/workflows/cli.d.ts +0 -1
- /package/types/{v1 → src}/domain/prompt.d.ts +0 -0
- /package/types/{v1 → src}/version.d.ts +0 -0
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "typeormFeature", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return typeormFeature;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _promises = require("node:fs/promises");
|
|
12
|
-
const _nodepath = require("node:path");
|
|
13
|
-
const _devcontainermodel = require("../../domain/devcontainer.model.js");
|
|
14
|
-
const _version = require("../../version.js");
|
|
15
|
-
const _maintsmodel = require("../api-core/main-ts.model.js");
|
|
16
|
-
const _models = require("../postgresql/models.js");
|
|
17
|
-
const _scaffoldfilestemplate = require("./scaffold-files.template.js");
|
|
18
|
-
const enabled = (ctx)=>ctx.opts.database === "typeorm";
|
|
19
|
-
async function configure(ctx) {
|
|
20
|
-
const mainTs = ctx.models.get(_maintsmodel.MAIN_TS_KEY);
|
|
21
|
-
if (!mainTs) return ctx;
|
|
22
|
-
mainTs.addImport("@decohere/codex-typeorm").addImport("./entities/sample.entity.js", "SampleEntity").addImport("./repositories/sample.repository.js", "SampleEntityRepository").appendBuilderChain(`.withTypeOrm({ entities: [SampleEntity], repositories: [SampleEntityRepository] })`);
|
|
23
|
-
ctx.models.get(_devcontainermodel.DEVCONTAINER_KEY)?.addExtension("mtxr.sqltools");
|
|
24
|
-
return ctx;
|
|
25
|
-
}
|
|
26
|
-
async function render(ctx) {
|
|
27
|
-
const { targetDir, projectName } = ctx;
|
|
28
|
-
await (0, _promises.mkdir)((0, _nodepath.join)(targetDir, "projects", "api", "src", "entities"), {
|
|
29
|
-
recursive: true
|
|
30
|
-
});
|
|
31
|
-
await (0, _promises.mkdir)((0, _nodepath.join)(targetDir, "projects", "api", "src", "repositories"), {
|
|
32
|
-
recursive: true
|
|
33
|
-
});
|
|
34
|
-
await Promise.all([
|
|
35
|
-
(0, _promises.writeFile)((0, _nodepath.join)(targetDir, "projects", "api", "src", "entities", "sample.entity.ts"), _scaffoldfilestemplate.SAMPLE_ENTITY_TS),
|
|
36
|
-
(0, _promises.writeFile)((0, _nodepath.join)(targetDir, "projects", "api", "src", "repositories", "sample.repository.ts"), _scaffoldfilestemplate.SAMPLE_REPOSITORY_TS)
|
|
37
|
-
]);
|
|
38
|
-
// Patch root package.json — add codex dependencies
|
|
39
|
-
const pkgPath = (0, _nodepath.join)(targetDir, "package.json");
|
|
40
|
-
const pkg = JSON.parse(await (0, _promises.readFile)(pkgPath, "utf8"));
|
|
41
|
-
pkg.dependencies["@decohere/codex"] = _version.CREATE_VERSION;
|
|
42
|
-
pkg.dependencies.typeorm = "^0.3.28";
|
|
43
|
-
pkg.dependencies["@decohere/codex-typeorm"] = _version.CREATE_VERSION;
|
|
44
|
-
await (0, _promises.writeFile)(pkgPath, JSON.stringify(pkg, null, 2));
|
|
45
|
-
// Append database base section (env-var refs) to config/config.yaml
|
|
46
|
-
const configPath = (0, _nodepath.join)(targetDir, "config", "config.yaml");
|
|
47
|
-
const existingConfig = await (0, _promises.readFile)(configPath, "utf8");
|
|
48
|
-
await (0, _promises.writeFile)(configPath, existingConfig + _scaffoldfilestemplate.DATABASE_BASE_CONFIG_YAML);
|
|
49
|
-
// Append dev overrides (local creds + synchronize:true) to config/config.dev.yaml
|
|
50
|
-
const devConfigPath = (0, _nodepath.join)(targetDir, "config", "config.dev.yaml");
|
|
51
|
-
let existingDev = "";
|
|
52
|
-
try {
|
|
53
|
-
existingDev = await (0, _promises.readFile)(devConfigPath, "utf8");
|
|
54
|
-
} catch {}
|
|
55
|
-
const devFragment = (0, _scaffoldfilestemplate.databaseDevConfigYaml)(projectName, ctx.models.get(_models.POSTGRES_CREDS_KEY));
|
|
56
|
-
await (0, _promises.writeFile)(devConfigPath, existingDev ? `${existingDev}\n${devFragment}` : devFragment);
|
|
57
|
-
return ctx;
|
|
58
|
-
}
|
|
59
|
-
const typeormFeature = {
|
|
60
|
-
name: "typeorm",
|
|
61
|
-
enabled,
|
|
62
|
-
configure,
|
|
63
|
-
render
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy90eXBlb3JtL2ZlYXR1cmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWtkaXIsIHJlYWRGaWxlLCB3cml0ZUZpbGUgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IERFVkNPTlRBSU5FUl9LRVkgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2RldmNvbnRhaW5lci5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlLCBTY2FmZm9sZENvbnRleHQgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBDUkVBVEVfVkVSU0lPTiB9IGZyb20gXCIuLi8uLi92ZXJzaW9uLmpzXCI7XG5pbXBvcnQgeyBNQUlOX1RTX0tFWSB9IGZyb20gXCIuLi9hcGktY29yZS9tYWluLXRzLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBQT1NUR1JFU19DUkVEU19LRVkgfSBmcm9tIFwiLi4vcG9zdGdyZXNxbC9tb2RlbHMuanNcIjtcbmltcG9ydCB7XG5cdERBVEFCQVNFX0JBU0VfQ09ORklHX1lBTUwsXG5cdGRhdGFiYXNlRGV2Q29uZmlnWWFtbCxcblx0U0FNUExFX0VOVElUWV9UUyxcblx0U0FNUExFX1JFUE9TSVRPUllfVFMsXG59IGZyb20gXCIuL3NjYWZmb2xkLWZpbGVzLnRlbXBsYXRlLmpzXCI7XG5cbmNvbnN0IGVuYWJsZWQgPSAoY3R4OiBTY2FmZm9sZENvbnRleHQpID0+IGN0eC5vcHRzLmRhdGFiYXNlID09PSBcInR5cGVvcm1cIjtcblxuYXN5bmMgZnVuY3Rpb24gY29uZmlndXJlKGN0eDogU2NhZmZvbGRDb250ZXh0KTogUHJvbWlzZTxTY2FmZm9sZENvbnRleHQ+IHtcblx0Y29uc3QgbWFpblRzID0gY3R4Lm1vZGVscy5nZXQoTUFJTl9UU19LRVkpO1xuXHRpZiAoIW1haW5UcykgcmV0dXJuIGN0eDtcblx0bWFpblRzXG5cdFx0LmFkZEltcG9ydChcIkBkZWNvaGVyZS9jb2RleC10eXBlb3JtXCIpXG5cdFx0LmFkZEltcG9ydChcIi4vZW50aXRpZXMvc2FtcGxlLmVudGl0eS5qc1wiLCBcIlNhbXBsZUVudGl0eVwiKVxuXHRcdC5hZGRJbXBvcnQoXCIuL3JlcG9zaXRvcmllcy9zYW1wbGUucmVwb3NpdG9yeS5qc1wiLCBcIlNhbXBsZUVudGl0eVJlcG9zaXRvcnlcIilcblx0XHQuYXBwZW5kQnVpbGRlckNoYWluKFxuXHRcdFx0YC53aXRoVHlwZU9ybSh7IGVudGl0aWVzOiBbU2FtcGxlRW50aXR5XSwgcmVwb3NpdG9yaWVzOiBbU2FtcGxlRW50aXR5UmVwb3NpdG9yeV0gfSlgLFxuXHRcdCk7XG5cdGN0eC5tb2RlbHMuZ2V0KERFVkNPTlRBSU5FUl9LRVkpPy5hZGRFeHRlbnNpb24oXCJtdHhyLnNxbHRvb2xzXCIpO1xuXHRyZXR1cm4gY3R4O1xufVxuXG5hc3luYyBmdW5jdGlvbiByZW5kZXIoY3R4OiBTY2FmZm9sZENvbnRleHQpOiBQcm9taXNlPFNjYWZmb2xkQ29udGV4dD4ge1xuXHRjb25zdCB7IHRhcmdldERpciwgcHJvamVjdE5hbWUgfSA9IGN0eDtcblxuXHRhd2FpdCBta2Rpcihqb2luKHRhcmdldERpciwgXCJwcm9qZWN0c1wiLCBcImFwaVwiLCBcInNyY1wiLCBcImVudGl0aWVzXCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0YXdhaXQgbWtkaXIoam9pbih0YXJnZXREaXIsIFwicHJvamVjdHNcIiwgXCJhcGlcIiwgXCJzcmNcIiwgXCJyZXBvc2l0b3JpZXNcIiksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG5cdGF3YWl0IFByb21pc2UuYWxsKFtcblx0XHR3cml0ZUZpbGUoXG5cdFx0XHRqb2luKHRhcmdldERpciwgXCJwcm9qZWN0c1wiLCBcImFwaVwiLCBcInNyY1wiLCBcImVudGl0aWVzXCIsIFwic2FtcGxlLmVudGl0eS50c1wiKSxcblx0XHRcdFNBTVBMRV9FTlRJVFlfVFMsXG5cdFx0KSxcblx0XHR3cml0ZUZpbGUoXG5cdFx0XHRqb2luKHRhcmdldERpciwgXCJwcm9qZWN0c1wiLCBcImFwaVwiLCBcInNyY1wiLCBcInJlcG9zaXRvcmllc1wiLCBcInNhbXBsZS5yZXBvc2l0b3J5LnRzXCIpLFxuXHRcdFx0U0FNUExFX1JFUE9TSVRPUllfVFMsXG5cdFx0KSxcblx0XSk7XG5cblx0Ly8gUGF0Y2ggcm9vdCBwYWNrYWdlLmpzb24g4oCUIGFkZCBjb2RleCBkZXBlbmRlbmNpZXNcblx0Y29uc3QgcGtnUGF0aCA9IGpvaW4odGFyZ2V0RGlyLCBcInBhY2thZ2UuanNvblwiKTtcblx0Y29uc3QgcGtnID0gSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZShwa2dQYXRoLCBcInV0ZjhcIikpIGFzIHtcblx0XHRkZXBlbmRlbmNpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cdH07XG5cdHBrZy5kZXBlbmRlbmNpZXNbXCJAZGVjb2hlcmUvY29kZXhcIl0gPSBDUkVBVEVfVkVSU0lPTjtcblx0cGtnLmRlcGVuZGVuY2llcy50eXBlb3JtID0gXCJeMC4zLjI4XCI7XG5cdHBrZy5kZXBlbmRlbmNpZXNbXCJAZGVjb2hlcmUvY29kZXgtdHlwZW9ybVwiXSA9IENSRUFURV9WRVJTSU9OO1xuXHRhd2FpdCB3cml0ZUZpbGUocGtnUGF0aCwgSlNPTi5zdHJpbmdpZnkocGtnLCBudWxsLCAyKSk7XG5cblx0Ly8gQXBwZW5kIGRhdGFiYXNlIGJhc2Ugc2VjdGlvbiAoZW52LXZhciByZWZzKSB0byBjb25maWcvY29uZmlnLnlhbWxcblx0Y29uc3QgY29uZmlnUGF0aCA9IGpvaW4odGFyZ2V0RGlyLCBcImNvbmZpZ1wiLCBcImNvbmZpZy55YW1sXCIpO1xuXHRjb25zdCBleGlzdGluZ0NvbmZpZyA9IGF3YWl0IHJlYWRGaWxlKGNvbmZpZ1BhdGgsIFwidXRmOFwiKTtcblx0YXdhaXQgd3JpdGVGaWxlKGNvbmZpZ1BhdGgsIGV4aXN0aW5nQ29uZmlnICsgREFUQUJBU0VfQkFTRV9DT05GSUdfWUFNTCk7XG5cblx0Ly8gQXBwZW5kIGRldiBvdmVycmlkZXMgKGxvY2FsIGNyZWRzICsgc3luY2hyb25pemU6dHJ1ZSkgdG8gY29uZmlnL2NvbmZpZy5kZXYueWFtbFxuXHRjb25zdCBkZXZDb25maWdQYXRoID0gam9pbih0YXJnZXREaXIsIFwiY29uZmlnXCIsIFwiY29uZmlnLmRldi55YW1sXCIpO1xuXHRsZXQgZXhpc3RpbmdEZXYgPSBcIlwiO1xuXHR0cnkge1xuXHRcdGV4aXN0aW5nRGV2ID0gYXdhaXQgcmVhZEZpbGUoZGV2Q29uZmlnUGF0aCwgXCJ1dGY4XCIpO1xuXHR9IGNhdGNoIHt9XG5cdGNvbnN0IGRldkZyYWdtZW50ID0gZGF0YWJhc2VEZXZDb25maWdZYW1sKHByb2plY3ROYW1lLCBjdHgubW9kZWxzLmdldChQT1NUR1JFU19DUkVEU19LRVkpKTtcblx0YXdhaXQgd3JpdGVGaWxlKGRldkNvbmZpZ1BhdGgsIGV4aXN0aW5nRGV2ID8gYCR7ZXhpc3RpbmdEZXZ9XFxuJHtkZXZGcmFnbWVudH1gIDogZGV2RnJhZ21lbnQpO1xuXG5cdHJldHVybiBjdHg7XG59XG5cbmV4cG9ydCBjb25zdCB0eXBlb3JtRmVhdHVyZTogRmVhdHVyZSA9IHtcblx0bmFtZTogXCJ0eXBlb3JtXCIsXG5cdGVuYWJsZWQsXG5cdGNvbmZpZ3VyZSxcblx0cmVuZGVyLFxufTtcbiJdLCJuYW1lcyI6WyJ0eXBlb3JtRmVhdHVyZSIsImVuYWJsZWQiLCJjdHgiLCJvcHRzIiwiZGF0YWJhc2UiLCJjb25maWd1cmUiLCJtYWluVHMiLCJtb2RlbHMiLCJnZXQiLCJNQUlOX1RTX0tFWSIsImFkZEltcG9ydCIsImFwcGVuZEJ1aWxkZXJDaGFpbiIsIkRFVkNPTlRBSU5FUl9LRVkiLCJhZGRFeHRlbnNpb24iLCJyZW5kZXIiLCJ0YXJnZXREaXIiLCJwcm9qZWN0TmFtZSIsIm1rZGlyIiwiam9pbiIsInJlY3Vyc2l2ZSIsIlByb21pc2UiLCJhbGwiLCJ3cml0ZUZpbGUiLCJTQU1QTEVfRU5USVRZX1RTIiwiU0FNUExFX1JFUE9TSVRPUllfVFMiLCJwa2dQYXRoIiwicGtnIiwiSlNPTiIsInBhcnNlIiwicmVhZEZpbGUiLCJkZXBlbmRlbmNpZXMiLCJDUkVBVEVfVkVSU0lPTiIsInR5cGVvcm0iLCJzdHJpbmdpZnkiLCJjb25maWdQYXRoIiwiZXhpc3RpbmdDb25maWciLCJEQVRBQkFTRV9CQVNFX0NPTkZJR19ZQU1MIiwiZGV2Q29uZmlnUGF0aCIsImV4aXN0aW5nRGV2IiwiZGV2RnJhZ21lbnQiLCJkYXRhYmFzZURldkNvbmZpZ1lhbWwiLCJQT1NUR1JFU19DUkVEU19LRVkiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7OytCQTBFYUE7OztlQUFBQTs7OzBCQTFFOEI7MEJBQ3RCO21DQUNZO3lCQUVGOzZCQUNIO3dCQUNPO3VDQU01QjtBQUVQLE1BQU1DLFVBQVUsQ0FBQ0MsTUFBeUJBLElBQUlDLElBQUksQ0FBQ0MsUUFBUSxLQUFLO0FBRWhFLGVBQWVDLFVBQVVILEdBQW9CO0lBQzVDLE1BQU1JLFNBQVNKLElBQUlLLE1BQU0sQ0FBQ0MsR0FBRyxDQUFDQyx3QkFBVztJQUN6QyxJQUFJLENBQUNILFFBQVEsT0FBT0o7SUFDcEJJLE9BQ0VJLFNBQVMsQ0FBQywyQkFDVkEsU0FBUyxDQUFDLCtCQUErQixnQkFDekNBLFNBQVMsQ0FBQyx1Q0FBdUMsMEJBQ2pEQyxrQkFBa0IsQ0FDbEIsQ0FBQyxrRkFBa0YsQ0FBQztJQUV0RlQsSUFBSUssTUFBTSxDQUFDQyxHQUFHLENBQUNJLG1DQUFnQixHQUFHQyxhQUFhO0lBQy9DLE9BQU9YO0FBQ1I7QUFFQSxlQUFlWSxPQUFPWixHQUFvQjtJQUN6QyxNQUFNLEVBQUVhLFNBQVMsRUFBRUMsV0FBVyxFQUFFLEdBQUdkO0lBRW5DLE1BQU1lLElBQUFBLGVBQUssRUFBQ0MsSUFBQUEsY0FBSSxFQUFDSCxXQUFXLFlBQVksT0FBTyxPQUFPLGFBQWE7UUFBRUksV0FBVztJQUFLO0lBQ3JGLE1BQU1GLElBQUFBLGVBQUssRUFBQ0MsSUFBQUEsY0FBSSxFQUFDSCxXQUFXLFlBQVksT0FBTyxPQUFPLGlCQUFpQjtRQUFFSSxXQUFXO0lBQUs7SUFFekYsTUFBTUMsUUFBUUMsR0FBRyxDQUFDO1FBQ2pCQyxJQUFBQSxtQkFBUyxFQUNSSixJQUFBQSxjQUFJLEVBQUNILFdBQVcsWUFBWSxPQUFPLE9BQU8sWUFBWSxxQkFDdERRLHVDQUFnQjtRQUVqQkQsSUFBQUEsbUJBQVMsRUFDUkosSUFBQUEsY0FBSSxFQUFDSCxXQUFXLFlBQVksT0FBTyxPQUFPLGdCQUFnQix5QkFDMURTLDJDQUFvQjtLQUVyQjtJQUVELG1EQUFtRDtJQUNuRCxNQUFNQyxVQUFVUCxJQUFBQSxjQUFJLEVBQUNILFdBQVc7SUFDaEMsTUFBTVcsTUFBTUMsS0FBS0MsS0FBSyxDQUFDLE1BQU1DLElBQUFBLGtCQUFRLEVBQUNKLFNBQVM7SUFHL0NDLElBQUlJLFlBQVksQ0FBQyxrQkFBa0IsR0FBR0MsdUJBQWM7SUFDcERMLElBQUlJLFlBQVksQ0FBQ0UsT0FBTyxHQUFHO0lBQzNCTixJQUFJSSxZQUFZLENBQUMsMEJBQTBCLEdBQUdDLHVCQUFjO0lBQzVELE1BQU1ULElBQUFBLG1CQUFTLEVBQUNHLFNBQVNFLEtBQUtNLFNBQVMsQ0FBQ1AsS0FBSyxNQUFNO0lBRW5ELG9FQUFvRTtJQUNwRSxNQUFNUSxhQUFhaEIsSUFBQUEsY0FBSSxFQUFDSCxXQUFXLFVBQVU7SUFDN0MsTUFBTW9CLGlCQUFpQixNQUFNTixJQUFBQSxrQkFBUSxFQUFDSyxZQUFZO0lBQ2xELE1BQU1aLElBQUFBLG1CQUFTLEVBQUNZLFlBQVlDLGlCQUFpQkMsZ0RBQXlCO0lBRXRFLGtGQUFrRjtJQUNsRixNQUFNQyxnQkFBZ0JuQixJQUFBQSxjQUFJLEVBQUNILFdBQVcsVUFBVTtJQUNoRCxJQUFJdUIsY0FBYztJQUNsQixJQUFJO1FBQ0hBLGNBQWMsTUFBTVQsSUFBQUEsa0JBQVEsRUFBQ1EsZUFBZTtJQUM3QyxFQUFFLE9BQU0sQ0FBQztJQUNULE1BQU1FLGNBQWNDLElBQUFBLDRDQUFxQixFQUFDeEIsYUFBYWQsSUFBSUssTUFBTSxDQUFDQyxHQUFHLENBQUNpQywwQkFBa0I7SUFDeEYsTUFBTW5CLElBQUFBLG1CQUFTLEVBQUNlLGVBQWVDLGNBQWMsR0FBR0EsWUFBWSxFQUFFLEVBQUVDLGFBQWEsR0FBR0E7SUFFaEYsT0FBT3JDO0FBQ1I7QUFFTyxNQUFNRixpQkFBMEI7SUFDdEMwQyxNQUFNO0lBQ056QztJQUNBSTtJQUNBUztBQUNEIn0=
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
get DATABASE_BASE_CONFIG_YAML () {
|
|
13
|
-
return DATABASE_BASE_CONFIG_YAML;
|
|
14
|
-
},
|
|
15
|
-
get SAMPLE_ENTITY_TS () {
|
|
16
|
-
return SAMPLE_ENTITY_TS;
|
|
17
|
-
},
|
|
18
|
-
get SAMPLE_REPOSITORY_TS () {
|
|
19
|
-
return SAMPLE_REPOSITORY_TS;
|
|
20
|
-
},
|
|
21
|
-
get databaseDevConfigYaml () {
|
|
22
|
-
return databaseDevConfigYaml;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
const SAMPLE_ENTITY_TS = `import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";
|
|
26
|
-
import type { Entity as IEntity } from "@decohere/codex";
|
|
27
|
-
|
|
28
|
-
@Entity()
|
|
29
|
-
export class SampleEntity implements IEntity {
|
|
30
|
-
\t@PrimaryGeneratedColumn()
|
|
31
|
-
\tpublic id!: number;
|
|
32
|
-
|
|
33
|
-
\t@Column()
|
|
34
|
-
\tpublic name!: string;
|
|
35
|
-
}
|
|
36
|
-
`;
|
|
37
|
-
const SAMPLE_REPOSITORY_TS = `import { injectable } from "@decohere/crucible/decorators";
|
|
38
|
-
import { injectUnitOfWork } from "@decohere/codex";
|
|
39
|
-
import { TypeOrmRepository, TypeOrmUnitOfWork } from "@decohere/codex-typeorm";
|
|
40
|
-
import { SampleEntity } from "../entities/sample.entity.js";
|
|
41
|
-
|
|
42
|
-
@injectable()
|
|
43
|
-
export class SampleEntityRepository extends TypeOrmRepository<SampleEntity> {
|
|
44
|
-
\tpublic constructor(@injectUnitOfWork() unitOfWork: TypeOrmUnitOfWork) {
|
|
45
|
-
\t\tsuper(unitOfWork, SampleEntity);
|
|
46
|
-
\t}
|
|
47
|
-
}
|
|
48
|
-
`;
|
|
49
|
-
function databaseDevConfigYaml(name, creds) {
|
|
50
|
-
const db = creds?.db ?? `${name}_dev`;
|
|
51
|
-
const user = creds?.user ?? "postgres";
|
|
52
|
-
const password = creds?.password ?? "postgres";
|
|
53
|
-
return `database:
|
|
54
|
-
dataSources:
|
|
55
|
-
- host: localhost
|
|
56
|
-
port: 5432
|
|
57
|
-
database: ${db}
|
|
58
|
-
username: ${user}
|
|
59
|
-
password: ${password}
|
|
60
|
-
synchronize: true
|
|
61
|
-
adminUser: ${user}
|
|
62
|
-
adminPassword: ${password}
|
|
63
|
-
`;
|
|
64
|
-
}
|
|
65
|
-
const DATABASE_BASE_CONFIG_YAML = `database:
|
|
66
|
-
dataSources:
|
|
67
|
-
- name: default
|
|
68
|
-
provider: postgres
|
|
69
|
-
host: \${DB_HOST}
|
|
70
|
-
port: \${DB_PORT}
|
|
71
|
-
database: \${DB_NAME}
|
|
72
|
-
username: \${DB_USER}
|
|
73
|
-
password: \${DB_PASSWORD}
|
|
74
|
-
synchronize: false
|
|
75
|
-
seed: false
|
|
76
|
-
adminUser: \${DB_ADMIN_USER}
|
|
77
|
-
adminPassword: \${DB_ADMIN_PASSWORD}
|
|
78
|
-
`;
|
|
79
|
-
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy90eXBlb3JtL3NjYWZmb2xkLWZpbGVzLnRlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTQU1QTEVfRU5USVRZX1RTID0gYGltcG9ydCB7IENvbHVtbiwgRW50aXR5LCBQcmltYXJ5R2VuZXJhdGVkQ29sdW1uIH0gZnJvbSBcInR5cGVvcm1cIjtcbmltcG9ydCB0eXBlIHsgRW50aXR5IGFzIElFbnRpdHkgfSBmcm9tIFwiQGRlY29oZXJlL2NvZGV4XCI7XG5cbkBFbnRpdHkoKVxuZXhwb3J0IGNsYXNzIFNhbXBsZUVudGl0eSBpbXBsZW1lbnRzIElFbnRpdHkge1xuXFx0QFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4oKVxuXFx0cHVibGljIGlkITogbnVtYmVyO1xuXG5cXHRAQ29sdW1uKClcblxcdHB1YmxpYyBuYW1lITogc3RyaW5nO1xufVxuYDtcblxuZXhwb3J0IGNvbnN0IFNBTVBMRV9SRVBPU0lUT1JZX1RTID0gYGltcG9ydCB7IGluamVjdGFibGUgfSBmcm9tIFwiQGRlY29oZXJlL2NydWNpYmxlL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IGluamVjdFVuaXRPZldvcmsgfSBmcm9tIFwiQGRlY29oZXJlL2NvZGV4XCI7XG5pbXBvcnQgeyBUeXBlT3JtUmVwb3NpdG9yeSwgVHlwZU9ybVVuaXRPZldvcmsgfSBmcm9tIFwiQGRlY29oZXJlL2NvZGV4LXR5cGVvcm1cIjtcbmltcG9ydCB7IFNhbXBsZUVudGl0eSB9IGZyb20gXCIuLi9lbnRpdGllcy9zYW1wbGUuZW50aXR5LmpzXCI7XG5cbkBpbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTYW1wbGVFbnRpdHlSZXBvc2l0b3J5IGV4dGVuZHMgVHlwZU9ybVJlcG9zaXRvcnk8U2FtcGxlRW50aXR5PiB7XG5cXHRwdWJsaWMgY29uc3RydWN0b3IoQGluamVjdFVuaXRPZldvcmsoKSB1bml0T2ZXb3JrOiBUeXBlT3JtVW5pdE9mV29yaykge1xuXFx0XFx0c3VwZXIodW5pdE9mV29yaywgU2FtcGxlRW50aXR5KTtcblxcdH1cbn1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJEZXZDcmVkcyB7XG5cdGRiPzogc3RyaW5nO1xuXHR1c2VyPzogc3RyaW5nO1xuXHRwYXNzd29yZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFiYXNlRGV2Q29uZmlnWWFtbChuYW1lOiBzdHJpbmcsIGNyZWRzPzogRGJEZXZDcmVkcyk6IHN0cmluZyB7XG5cdGNvbnN0IGRiID0gY3JlZHM/LmRiID8/IGAke25hbWV9X2RldmA7XG5cdGNvbnN0IHVzZXIgPSBjcmVkcz8udXNlciA/PyBcInBvc3RncmVzXCI7XG5cdGNvbnN0IHBhc3N3b3JkID0gY3JlZHM/LnBhc3N3b3JkID8/IFwicG9zdGdyZXNcIjtcblx0cmV0dXJuIGBkYXRhYmFzZTpcbiAgZGF0YVNvdXJjZXM6XG4gICAgLSBob3N0OiBsb2NhbGhvc3RcbiAgICAgIHBvcnQ6IDU0MzJcbiAgICAgIGRhdGFiYXNlOiAke2RifVxuICAgICAgdXNlcm5hbWU6ICR7dXNlcn1cbiAgICAgIHBhc3N3b3JkOiAke3Bhc3N3b3JkfVxuICAgICAgc3luY2hyb25pemU6IHRydWVcbiAgICAgIGFkbWluVXNlcjogJHt1c2VyfVxuICAgICAgYWRtaW5QYXNzd29yZDogJHtwYXNzd29yZH1cbmA7XG59XG5cbmV4cG9ydCBjb25zdCBEQVRBQkFTRV9CQVNFX0NPTkZJR19ZQU1MID0gYGRhdGFiYXNlOlxuICBkYXRhU291cmNlczpcbiAgICAtIG5hbWU6IGRlZmF1bHRcbiAgICAgIHByb3ZpZGVyOiBwb3N0Z3Jlc1xuICAgICAgaG9zdDogXFwke0RCX0hPU1R9XG4gICAgICBwb3J0OiBcXCR7REJfUE9SVH1cbiAgICAgIGRhdGFiYXNlOiBcXCR7REJfTkFNRX1cbiAgICAgIHVzZXJuYW1lOiBcXCR7REJfVVNFUn1cbiAgICAgIHBhc3N3b3JkOiBcXCR7REJfUEFTU1dPUkR9XG4gICAgICBzeW5jaHJvbml6ZTogZmFsc2VcbiAgICAgIHNlZWQ6IGZhbHNlXG4gICAgICBhZG1pblVzZXI6IFxcJHtEQl9BRE1JTl9VU0VSfVxuICAgICAgYWRtaW5QYXNzd29yZDogXFwke0RCX0FETUlOX1BBU1NXT1JEfVxuYDtcbiJdLCJuYW1lcyI6WyJEQVRBQkFTRV9CQVNFX0NPTkZJR19ZQU1MIiwiU0FNUExFX0VOVElUWV9UUyIsIlNBTVBMRV9SRVBPU0lUT1JZX1RTIiwiZGF0YWJhc2VEZXZDb25maWdZYW1sIiwibmFtZSIsImNyZWRzIiwiZGIiLCJ1c2VyIiwicGFzc3dvcmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBaURhQTtlQUFBQTs7UUFqREFDO2VBQUFBOztRQWFBQztlQUFBQTs7UUFtQkdDO2VBQUFBOzs7QUFoQ1QsTUFBTUYsbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7O0FBV2pDLENBQUM7QUFFTSxNQUFNQyx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFXckMsQ0FBQztBQVFNLFNBQVNDLHNCQUFzQkMsSUFBWSxFQUFFQyxLQUFrQjtJQUNyRSxNQUFNQyxLQUFLRCxPQUFPQyxNQUFNLEdBQUdGLEtBQUssSUFBSSxDQUFDO0lBQ3JDLE1BQU1HLE9BQU9GLE9BQU9FLFFBQVE7SUFDNUIsTUFBTUMsV0FBV0gsT0FBT0csWUFBWTtJQUNwQyxPQUFPLENBQUM7Ozs7Z0JBSU8sRUFBRUYsR0FBRztnQkFDTCxFQUFFQyxLQUFLO2dCQUNQLEVBQUVDLFNBQVM7O2lCQUVWLEVBQUVELEtBQUs7cUJBQ0gsRUFBRUMsU0FBUztBQUNoQyxDQUFDO0FBQ0Q7QUFFTyxNQUFNUiw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWExQyxDQUFDIn0=
|
package/commonjs/v1/scaffold.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "scaffold", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return scaffold;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _nodefs = require("node:fs");
|
|
12
|
-
const _nodepath = require("node:path");
|
|
13
|
-
const _index = require("./domain/index.js");
|
|
14
|
-
const _api = require("./workflows/api.js");
|
|
15
|
-
const _cli = require("./workflows/cli.js");
|
|
16
|
-
const WORKFLOWS = {
|
|
17
|
-
api: _api.apiWorkflow,
|
|
18
|
-
cli: _cli.cliWorkflow
|
|
19
|
-
};
|
|
20
|
-
const TEMPLATE_ALIASES = {
|
|
21
|
-
webapi: "api"
|
|
22
|
-
};
|
|
23
|
-
async function resolveTemplate(_targetDir, opts) {
|
|
24
|
-
if (opts.yes || opts.template != null) {
|
|
25
|
-
const raw = opts.template ?? "api";
|
|
26
|
-
const key = TEMPLATE_ALIASES[raw] ?? raw;
|
|
27
|
-
if (!(key in WORKFLOWS)) {
|
|
28
|
-
console.error(`Unknown template "${raw}". Valid options: ${Object.keys(WORKFLOWS).join(", ")}.`);
|
|
29
|
-
process.exit(1);
|
|
30
|
-
}
|
|
31
|
-
return key;
|
|
32
|
-
}
|
|
33
|
-
const answer = await (0, _index.ask)("Template? [api/cli] (api): ", "api");
|
|
34
|
-
return answer.toLowerCase() === "cli" ? "cli" : "api";
|
|
35
|
-
}
|
|
36
|
-
async function scaffold(targetDir, opts) {
|
|
37
|
-
if (!opts.yes && (0, _nodefs.existsSync)(targetDir) && (0, _nodefs.readdirSync)(targetDir).length > 0) {
|
|
38
|
-
const name = (0, _nodepath.basename)(targetDir);
|
|
39
|
-
const answer = await (0, _index.ask)(`Directory "${name}" is not empty. Continue? [y/N] `);
|
|
40
|
-
if (!answer.toLowerCase().startsWith("y")) {
|
|
41
|
-
console.log("Aborted.");
|
|
42
|
-
process.exit(0);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
const template = await resolveTemplate(targetDir, opts);
|
|
46
|
-
const ctx = (0, _index.createContext)(targetDir, opts, template);
|
|
47
|
-
await (0, _index.runWorkflow)(WORKFLOWS[template], ctx);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9zY2FmZm9sZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkZGlyU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBiYXNlbmFtZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGFzaywgY3JlYXRlQ29udGV4dCwgcnVuV29ya2Zsb3csIHR5cGUgU2NhZmZvbGRPcHRpb25zIH0gZnJvbSBcIi4vZG9tYWluL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBhcGlXb3JrZmxvdyB9IGZyb20gXCIuL3dvcmtmbG93cy9hcGkuanNcIjtcbmltcG9ydCB7IGNsaVdvcmtmbG93IH0gZnJvbSBcIi4vd29ya2Zsb3dzL2NsaS5qc1wiO1xuXG5leHBvcnQgdHlwZSB7IFNjYWZmb2xkT3B0aW9ucyB9O1xuXG5jb25zdCBXT1JLRkxPV1MgPSB7XG5cdGFwaTogYXBpV29ya2Zsb3csXG5cdGNsaTogY2xpV29ya2Zsb3csXG59IGFzIGNvbnN0O1xuXG50eXBlIFRlbXBsYXRlS2V5ID0ga2V5b2YgdHlwZW9mIFdPUktGTE9XUztcblxuY29uc3QgVEVNUExBVEVfQUxJQVNFUzogUmVjb3JkPHN0cmluZywgVGVtcGxhdGVLZXk+ID0ge1xuXHR3ZWJhcGk6IFwiYXBpXCIsXG59O1xuXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlVGVtcGxhdGUoXG5cdF90YXJnZXREaXI6IHN0cmluZyxcblx0b3B0czogU2NhZmZvbGRPcHRpb25zLFxuKTogUHJvbWlzZTxUZW1wbGF0ZUtleT4ge1xuXHRpZiAob3B0cy55ZXMgfHwgb3B0cy50ZW1wbGF0ZSAhPSBudWxsKSB7XG5cdFx0Y29uc3QgcmF3ID0gb3B0cy50ZW1wbGF0ZSA/PyBcImFwaVwiO1xuXHRcdGNvbnN0IGtleSA9IChURU1QTEFURV9BTElBU0VTW3Jhd10gPz8gcmF3KSBhcyBUZW1wbGF0ZUtleTtcblx0XHRpZiAoIShrZXkgaW4gV09SS0ZMT1dTKSkge1xuXHRcdFx0Y29uc29sZS5lcnJvcihcblx0XHRcdFx0YFVua25vd24gdGVtcGxhdGUgXCIke3Jhd31cIi4gVmFsaWQgb3B0aW9uczogJHtPYmplY3Qua2V5cyhXT1JLRkxPV1MpLmpvaW4oXCIsIFwiKX0uYCxcblx0XHRcdCk7XG5cdFx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdFx0fVxuXHRcdHJldHVybiBrZXk7XG5cdH1cblxuXHRjb25zdCBhbnN3ZXIgPSBhd2FpdCBhc2soXCJUZW1wbGF0ZT8gW2FwaS9jbGldIChhcGkpOiBcIiwgXCJhcGlcIik7XG5cdHJldHVybiBhbnN3ZXIudG9Mb3dlckNhc2UoKSA9PT0gXCJjbGlcIiA/IFwiY2xpXCIgOiBcImFwaVwiO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2NhZmZvbGQodGFyZ2V0RGlyOiBzdHJpbmcsIG9wdHM6IFNjYWZmb2xkT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuXHRpZiAoIW9wdHMueWVzICYmIGV4aXN0c1N5bmModGFyZ2V0RGlyKSAmJiByZWFkZGlyU3luYyh0YXJnZXREaXIpLmxlbmd0aCA+IDApIHtcblx0XHRjb25zdCBuYW1lID0gYmFzZW5hbWUodGFyZ2V0RGlyKTtcblx0XHRjb25zdCBhbnN3ZXIgPSBhd2FpdCBhc2soYERpcmVjdG9yeSBcIiR7bmFtZX1cIiBpcyBub3QgZW1wdHkuIENvbnRpbnVlPyBbeS9OXSBgKTtcblx0XHRpZiAoIWFuc3dlci50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJ5XCIpKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhcIkFib3J0ZWQuXCIpO1xuXHRcdFx0cHJvY2Vzcy5leGl0KDApO1xuXHRcdH1cblx0fVxuXG5cdGNvbnN0IHRlbXBsYXRlID0gYXdhaXQgcmVzb2x2ZVRlbXBsYXRlKHRhcmdldERpciwgb3B0cyk7XG5cdGNvbnN0IGN0eCA9IGNyZWF0ZUNvbnRleHQodGFyZ2V0RGlyLCBvcHRzLCB0ZW1wbGF0ZSk7XG5cdGF3YWl0IHJ1bldvcmtmbG93KFdPUktGTE9XU1t0ZW1wbGF0ZV0sIGN0eCk7XG59XG4iXSwibmFtZXMiOlsic2NhZmZvbGQiLCJXT1JLRkxPV1MiLCJhcGkiLCJhcGlXb3JrZmxvdyIsImNsaSIsImNsaVdvcmtmbG93IiwiVEVNUExBVEVfQUxJQVNFUyIsIndlYmFwaSIsInJlc29sdmVUZW1wbGF0ZSIsIl90YXJnZXREaXIiLCJvcHRzIiwieWVzIiwidGVtcGxhdGUiLCJyYXciLCJrZXkiLCJjb25zb2xlIiwiZXJyb3IiLCJPYmplY3QiLCJrZXlzIiwiam9pbiIsInByb2Nlc3MiLCJleGl0IiwiYW5zd2VyIiwiYXNrIiwidG9Mb3dlckNhc2UiLCJ0YXJnZXREaXIiLCJleGlzdHNTeW5jIiwicmVhZGRpclN5bmMiLCJsZW5ndGgiLCJuYW1lIiwiYmFzZW5hbWUiLCJzdGFydHNXaXRoIiwibG9nIiwiY3R4IiwiY3JlYXRlQ29udGV4dCIsInJ1bldvcmtmbG93Il0sIm1hcHBpbmdzIjoiOzs7OytCQXVDc0JBOzs7ZUFBQUE7Ozt3QkF2Q2tCOzBCQUNmO3VCQUM2QztxQkFDMUM7cUJBQ0E7QUFJNUIsTUFBTUMsWUFBWTtJQUNqQkMsS0FBS0MsZ0JBQVc7SUFDaEJDLEtBQUtDLGdCQUFXO0FBQ2pCO0FBSUEsTUFBTUMsbUJBQWdEO0lBQ3JEQyxRQUFRO0FBQ1Q7QUFFQSxlQUFlQyxnQkFDZEMsVUFBa0IsRUFDbEJDLElBQXFCO0lBRXJCLElBQUlBLEtBQUtDLEdBQUcsSUFBSUQsS0FBS0UsUUFBUSxJQUFJLE1BQU07UUFDdEMsTUFBTUMsTUFBTUgsS0FBS0UsUUFBUSxJQUFJO1FBQzdCLE1BQU1FLE1BQU9SLGdCQUFnQixDQUFDTyxJQUFJLElBQUlBO1FBQ3RDLElBQUksQ0FBRUMsQ0FBQUEsT0FBT2IsU0FBUSxHQUFJO1lBQ3hCYyxRQUFRQyxLQUFLLENBQ1osQ0FBQyxrQkFBa0IsRUFBRUgsSUFBSSxrQkFBa0IsRUFBRUksT0FBT0MsSUFBSSxDQUFDakIsV0FBV2tCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVsRkMsUUFBUUMsSUFBSSxDQUFDO1FBQ2Q7UUFDQSxPQUFPUDtJQUNSO0lBRUEsTUFBTVEsU0FBUyxNQUFNQyxJQUFBQSxVQUFHLEVBQUMsK0JBQStCO0lBQ3hELE9BQU9ELE9BQU9FLFdBQVcsT0FBTyxRQUFRLFFBQVE7QUFDakQ7QUFFTyxlQUFleEIsU0FBU3lCLFNBQWlCLEVBQUVmLElBQXFCO0lBQ3RFLElBQUksQ0FBQ0EsS0FBS0MsR0FBRyxJQUFJZSxJQUFBQSxrQkFBVSxFQUFDRCxjQUFjRSxJQUFBQSxtQkFBVyxFQUFDRixXQUFXRyxNQUFNLEdBQUcsR0FBRztRQUM1RSxNQUFNQyxPQUFPQyxJQUFBQSxrQkFBUSxFQUFDTDtRQUN0QixNQUFNSCxTQUFTLE1BQU1DLElBQUFBLFVBQUcsRUFBQyxDQUFDLFdBQVcsRUFBRU0sS0FBSyxnQ0FBZ0MsQ0FBQztRQUM3RSxJQUFJLENBQUNQLE9BQU9FLFdBQVcsR0FBR08sVUFBVSxDQUFDLE1BQU07WUFDMUNoQixRQUFRaUIsR0FBRyxDQUFDO1lBQ1paLFFBQVFDLElBQUksQ0FBQztRQUNkO0lBQ0Q7SUFFQSxNQUFNVCxXQUFXLE1BQU1KLGdCQUFnQmlCLFdBQVdmO0lBQ2xELE1BQU11QixNQUFNQyxJQUFBQSxvQkFBYSxFQUFDVCxXQUFXZixNQUFNRTtJQUMzQyxNQUFNdUIsSUFBQUEsa0JBQVcsRUFBQ2xDLFNBQVMsQ0FBQ1csU0FBUyxFQUFFcUI7QUFDeEMifQ==
|
package/commonjs/v1/version.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "CREATE_VERSION", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return CREATE_VERSION;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _nodemodule = require("node:module");
|
|
12
|
-
const _nodepath = require("node:path");
|
|
13
|
-
const _nodeurl = require("node:url");
|
|
14
|
-
const _require = (0, _nodemodule.createRequire)(require("url").pathToFileURL(__filename).toString());
|
|
15
|
-
function resolveCreateVersion() {
|
|
16
|
-
let dir = (0, _nodepath.dirname)((0, _nodeurl.fileURLToPath)(require("url").pathToFileURL(__filename).toString()));
|
|
17
|
-
for(let i = 0; i < 5; i++){
|
|
18
|
-
try {
|
|
19
|
-
const pkg = _require((0, _nodepath.join)(dir, "package.json"));
|
|
20
|
-
if (pkg.name === "@decohere/create") {
|
|
21
|
-
return pkg.version ?? "0.0.1-dev";
|
|
22
|
-
}
|
|
23
|
-
} catch {}
|
|
24
|
-
const parent = (0, _nodepath.dirname)(dir);
|
|
25
|
-
if (parent === dir) break;
|
|
26
|
-
dir = parent;
|
|
27
|
-
}
|
|
28
|
-
return "0.0.1-dev";
|
|
29
|
-
}
|
|
30
|
-
const CREATE_VERSION = resolveCreateVersion();
|
|
31
|
-
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS92ZXJzaW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5cbmNvbnN0IF9yZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuXG5mdW5jdGlvbiByZXNvbHZlQ3JlYXRlVmVyc2lvbigpOiBzdHJpbmcge1xuXHRsZXQgZGlyID0gZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBwa2cgPSBfcmVxdWlyZShqb2luKGRpciwgXCJwYWNrYWdlLmpzb25cIikpIGFzIHtcblx0XHRcdFx0bmFtZT86IHN0cmluZztcblx0XHRcdFx0dmVyc2lvbj86IHN0cmluZztcblx0XHRcdH07XG5cdFx0XHRpZiAocGtnLm5hbWUgPT09IFwiQGRlY29oZXJlL2NyZWF0ZVwiKSB7XG5cdFx0XHRcdHJldHVybiBwa2cudmVyc2lvbiA/PyBcIjAuMC4xLWRldlwiO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2gge31cblx0XHRjb25zdCBwYXJlbnQgPSBkaXJuYW1lKGRpcik7XG5cdFx0aWYgKHBhcmVudCA9PT0gZGlyKSBicmVhaztcblx0XHRkaXIgPSBwYXJlbnQ7XG5cdH1cblx0cmV0dXJuIFwiMC4wLjEtZGV2XCI7XG59XG5cbi8qKiBWZXJzaW9uIG9mIEBkZWNvaGVyZS9jcmVhdGUsIHVzZWQgdG8gcGluIHNjYWZmb2xkZWQgQGRlY29oZXJlLyogZGVwZW5kZW5jaWVzLiAqL1xuZXhwb3J0IGNvbnN0IENSRUFURV9WRVJTSU9OID0gcmVzb2x2ZUNyZWF0ZVZlcnNpb24oKTtcbiJdLCJuYW1lcyI6WyJDUkVBVEVfVkVSU0lPTiIsIl9yZXF1aXJlIiwiY3JlYXRlUmVxdWlyZSIsInJlc29sdmVDcmVhdGVWZXJzaW9uIiwiZGlyIiwiZGlybmFtZSIsImZpbGVVUkxUb1BhdGgiLCJpIiwicGtnIiwiam9pbiIsIm5hbWUiLCJ2ZXJzaW9uIiwicGFyZW50Il0sIm1hcHBpbmdzIjoiOzs7OytCQTBCYUE7OztlQUFBQTs7OzRCQTFCaUI7MEJBQ0E7eUJBQ0E7QUFFOUIsTUFBTUMsV0FBV0MsSUFBQUEseUJBQWEsRUFBQztBQUUvQixTQUFTQztJQUNSLElBQUlDLE1BQU1DLElBQUFBLGlCQUFPLEVBQUNDLElBQUFBLHNCQUFhLEVBQUM7SUFDaEMsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUksR0FBR0EsSUFBSztRQUMzQixJQUFJO1lBQ0gsTUFBTUMsTUFBTVAsU0FBU1EsSUFBQUEsY0FBSSxFQUFDTCxLQUFLO1lBSS9CLElBQUlJLElBQUlFLElBQUksS0FBSyxvQkFBb0I7Z0JBQ3BDLE9BQU9GLElBQUlHLE9BQU8sSUFBSTtZQUN2QjtRQUNELEVBQUUsT0FBTSxDQUFDO1FBQ1QsTUFBTUMsU0FBU1AsSUFBQUEsaUJBQU8sRUFBQ0Q7UUFDdkIsSUFBSVEsV0FBV1IsS0FBSztRQUNwQkEsTUFBTVE7SUFDUDtJQUNBLE9BQU87QUFDUjtBQUdPLE1BQU1aLGlCQUFpQkcifQ==
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "apiWorkflow", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return apiWorkflow;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _index = require("../domain/index.js");
|
|
12
|
-
const _feature = require("../features/api-core/feature.js");
|
|
13
|
-
const _feature1 = require("../features/auth0/feature.js");
|
|
14
|
-
const _feature2 = require("../features/devcontainer/feature.js");
|
|
15
|
-
const _feature3 = require("../features/finalize/feature.js");
|
|
16
|
-
const _feature4 = require("../features/postgresql/feature.js");
|
|
17
|
-
const _feature5 = require("../features/postman/feature.js");
|
|
18
|
-
const _feature6 = require("../features/typeorm/feature.js");
|
|
19
|
-
const apiWorkflow = (0, _index.defineWorkflow)("api", [
|
|
20
|
-
_feature.apiCoreFeature,
|
|
21
|
-
_feature6.typeormFeature,
|
|
22
|
-
_feature4.postgresqlFeature,
|
|
23
|
-
_feature1.auth0Feature,
|
|
24
|
-
_feature5.postmanFeature,
|
|
25
|
-
_feature2.devcontainerFeature,
|
|
26
|
-
_feature3.finalizeFeature
|
|
27
|
-
]);
|
|
28
|
-
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS93b3JrZmxvd3MvYXBpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVdvcmtmbG93IH0gZnJvbSBcIi4uL2RvbWFpbi9pbmRleC5qc1wiO1xuaW1wb3J0IHsgYXBpQ29yZUZlYXR1cmUgfSBmcm9tIFwiLi4vZmVhdHVyZXMvYXBpLWNvcmUvZmVhdHVyZS5qc1wiO1xuaW1wb3J0IHsgYXV0aDBGZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL2F1dGgwL2ZlYXR1cmUuanNcIjtcbmltcG9ydCB7IGRldmNvbnRhaW5lckZlYXR1cmUgfSBmcm9tIFwiLi4vZmVhdHVyZXMvZGV2Y29udGFpbmVyL2ZlYXR1cmUuanNcIjtcbmltcG9ydCB7IGZpbmFsaXplRmVhdHVyZSB9IGZyb20gXCIuLi9mZWF0dXJlcy9maW5hbGl6ZS9mZWF0dXJlLmpzXCI7XG5pbXBvcnQgeyBwb3N0Z3Jlc3FsRmVhdHVyZSB9IGZyb20gXCIuLi9mZWF0dXJlcy9wb3N0Z3Jlc3FsL2ZlYXR1cmUuanNcIjtcbmltcG9ydCB7IHBvc3RtYW5GZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL3Bvc3RtYW4vZmVhdHVyZS5qc1wiO1xuaW1wb3J0IHsgdHlwZW9ybUZlYXR1cmUgfSBmcm9tIFwiLi4vZmVhdHVyZXMvdHlwZW9ybS9mZWF0dXJlLmpzXCI7XG5cbi8qKlxuICogT3JkZXIgbWF0dGVycyB3aXRoaW4gZWFjaCBwaGFzZTpcbiAqICAgLSBhcGlDb3JlIG11c3QgcmVuZGVyIGJlZm9yZSB0eXBlb3JtICh0eXBlb3JtIHJlYWRzIHRoZSBjb25maWcueWFtbCB0aGF0XG4gKiAgICAgYXBpQ29yZSB3cml0ZXMpLlxuICogICAtIHR5cGVvcm0gbXVzdCByZW5kZXIgYmVmb3JlIGF1dGgwIChib3RoIGFwcGVuZCB0byBjb25maWcucHJvZC55YW1sOyB0aGVcbiAqICAgICBleGlzdGluZyBiZWhhdmlvdXIgd3JpdGVzIHRoZSBkYXRhYmFzZSBzZWN0aW9uIGZpcnN0LCB0aGVuIGF1dGgpLlxuICovXG5leHBvcnQgY29uc3QgYXBpV29ya2Zsb3cgPSBkZWZpbmVXb3JrZmxvdyhcImFwaVwiLCBbXG5cdGFwaUNvcmVGZWF0dXJlLFxuXHR0eXBlb3JtRmVhdHVyZSxcblx0cG9zdGdyZXNxbEZlYXR1cmUsXG5cdGF1dGgwRmVhdHVyZSxcblx0cG9zdG1hbkZlYXR1cmUsXG5cdGRldmNvbnRhaW5lckZlYXR1cmUsXG5cdGZpbmFsaXplRmVhdHVyZSxcbl0pO1xuIl0sIm5hbWVzIjpbImFwaVdvcmtmbG93IiwiZGVmaW5lV29ya2Zsb3ciLCJhcGlDb3JlRmVhdHVyZSIsInR5cGVvcm1GZWF0dXJlIiwicG9zdGdyZXNxbEZlYXR1cmUiLCJhdXRoMEZlYXR1cmUiLCJwb3N0bWFuRmVhdHVyZSIsImRldmNvbnRhaW5lckZlYXR1cmUiLCJmaW5hbGl6ZUZlYXR1cmUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBZ0JhQTs7O2VBQUFBOzs7dUJBaEJrQjt5QkFDQTswQkFDRjswQkFDTzswQkFDSjswQkFDRTswQkFDSDswQkFDQTtBQVN4QixNQUFNQSxjQUFjQyxJQUFBQSxxQkFBYyxFQUFDLE9BQU87SUFDaERDLHVCQUFjO0lBQ2RDLHdCQUFjO0lBQ2RDLDJCQUFpQjtJQUNqQkMsc0JBQVk7SUFDWkMsd0JBQWM7SUFDZEMsNkJBQW1CO0lBQ25CQyx5QkFBZTtDQUNmIn0=
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "cliWorkflow", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return cliWorkflow;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _index = require("../domain/index.js");
|
|
12
|
-
const _feature = require("../features/cli-core/feature.js");
|
|
13
|
-
const _feature1 = require("../features/finalize/feature.js");
|
|
14
|
-
const cliWorkflow = (0, _index.defineWorkflow)("cli", [
|
|
15
|
-
_feature.cliCoreFeature,
|
|
16
|
-
_feature1.finalizeFeature
|
|
17
|
-
]);
|
|
18
|
-
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS93b3JrZmxvd3MvY2xpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVdvcmtmbG93IH0gZnJvbSBcIi4uL2RvbWFpbi9pbmRleC5qc1wiO1xuaW1wb3J0IHsgY2xpQ29yZUZlYXR1cmUgfSBmcm9tIFwiLi4vZmVhdHVyZXMvY2xpLWNvcmUvZmVhdHVyZS5qc1wiO1xuaW1wb3J0IHsgZmluYWxpemVGZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL2ZpbmFsaXplL2ZlYXR1cmUuanNcIjtcblxuZXhwb3J0IGNvbnN0IGNsaVdvcmtmbG93ID0gZGVmaW5lV29ya2Zsb3coXCJjbGlcIiwgW2NsaUNvcmVGZWF0dXJlLCBmaW5hbGl6ZUZlYXR1cmVdKTtcbiJdLCJuYW1lcyI6WyJjbGlXb3JrZmxvdyIsImRlZmluZVdvcmtmbG93IiwiY2xpQ29yZUZlYXR1cmUiLCJmaW5hbGl6ZUZlYXR1cmUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBSWFBOzs7ZUFBQUE7Ozt1QkFKa0I7eUJBQ0E7MEJBQ0M7QUFFekIsTUFBTUEsY0FBY0MsSUFBQUEscUJBQWMsRUFBQyxPQUFPO0lBQUNDLHVCQUFjO0lBQUVDLHlCQUFlO0NBQUMifQ==
|
package/es6/v1/cli.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { Command } from "commander";
|
|
4
|
-
import { scaffold } from "./scaffold.js";
|
|
5
|
-
const program = new Command();
|
|
6
|
-
program.name("decohere").description("Scaffold a new Decohere project").argument("[directory]", "Target directory (default: current directory)", ".").option("-y, --yes", "Skip confirmation prompts").option("-t, --template <template>", "Project template: api (default) or cli").option("-d, --database <provider>", "Database provider to include (api only): typeorm").option("-i, --idp <provider>", "Identity provider to configure (api only): auth0").option("-p, --postman", "Configure a Postman workspace, collection, and environment").action(async (directory, opts)=>{
|
|
7
|
-
await scaffold(resolve(directory), opts);
|
|
8
|
-
});
|
|
9
|
-
program.parse();
|
|
10
|
-
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9jbGkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgeyBzY2FmZm9sZCB9IGZyb20gXCIuL3NjYWZmb2xkLmpzXCI7XG5cbmNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpO1xuXG5wcm9ncmFtXG5cdC5uYW1lKFwiZGVjb2hlcmVcIilcblx0LmRlc2NyaXB0aW9uKFwiU2NhZmZvbGQgYSBuZXcgRGVjb2hlcmUgcHJvamVjdFwiKVxuXHQuYXJndW1lbnQoXCJbZGlyZWN0b3J5XVwiLCBcIlRhcmdldCBkaXJlY3RvcnkgKGRlZmF1bHQ6IGN1cnJlbnQgZGlyZWN0b3J5KVwiLCBcIi5cIilcblx0Lm9wdGlvbihcIi15LCAtLXllc1wiLCBcIlNraXAgY29uZmlybWF0aW9uIHByb21wdHNcIilcblx0Lm9wdGlvbihcIi10LCAtLXRlbXBsYXRlIDx0ZW1wbGF0ZT5cIiwgXCJQcm9qZWN0IHRlbXBsYXRlOiBhcGkgKGRlZmF1bHQpIG9yIGNsaVwiKVxuXHQub3B0aW9uKFwiLWQsIC0tZGF0YWJhc2UgPHByb3ZpZGVyPlwiLCBcIkRhdGFiYXNlIHByb3ZpZGVyIHRvIGluY2x1ZGUgKGFwaSBvbmx5KTogdHlwZW9ybVwiKVxuXHQub3B0aW9uKFwiLWksIC0taWRwIDxwcm92aWRlcj5cIiwgXCJJZGVudGl0eSBwcm92aWRlciB0byBjb25maWd1cmUgKGFwaSBvbmx5KTogYXV0aDBcIilcblx0Lm9wdGlvbihcIi1wLCAtLXBvc3RtYW5cIiwgXCJDb25maWd1cmUgYSBQb3N0bWFuIHdvcmtzcGFjZSwgY29sbGVjdGlvbiwgYW5kIGVudmlyb25tZW50XCIpXG5cdC5hY3Rpb24oXG5cdFx0YXN5bmMgKFxuXHRcdFx0ZGlyZWN0b3J5OiBzdHJpbmcsXG5cdFx0XHRvcHRzOiB7XG5cdFx0XHRcdHllcz86IGJvb2xlYW47XG5cdFx0XHRcdHRlbXBsYXRlPzogXCJhcGlcIiB8IFwiY2xpXCI7XG5cdFx0XHRcdGRhdGFiYXNlPzogXCJ0eXBlb3JtXCI7XG5cdFx0XHRcdGlkcD86IFwiYXV0aDBcIjtcblx0XHRcdFx0cG9zdG1hbj86IGJvb2xlYW47XG5cdFx0XHR9LFxuXHRcdCkgPT4ge1xuXHRcdFx0YXdhaXQgc2NhZmZvbGQocmVzb2x2ZShkaXJlY3RvcnkpLCBvcHRzKTtcblx0XHR9LFxuXHQpO1xuXG5wcm9ncmFtLnBhcnNlKCk7XG4iXSwibmFtZXMiOlsicmVzb2x2ZSIsIkNvbW1hbmQiLCJzY2FmZm9sZCIsInByb2dyYW0iLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJhcmd1bWVudCIsIm9wdGlvbiIsImFjdGlvbiIsImRpcmVjdG9yeSIsIm9wdHMiLCJwYXJzZSJdLCJtYXBwaW5ncyI6IjtBQUNBLFNBQVNBLE9BQU8sUUFBUSxZQUFZO0FBQ3BDLFNBQVNDLE9BQU8sUUFBUSxZQUFZO0FBQ3BDLFNBQVNDLFFBQVEsUUFBUSxnQkFBZ0I7QUFFekMsTUFBTUMsVUFBVSxJQUFJRjtBQUVwQkUsUUFDRUMsSUFBSSxDQUFDLFlBQ0xDLFdBQVcsQ0FBQyxtQ0FDWkMsUUFBUSxDQUFDLGVBQWUsaURBQWlELEtBQ3pFQyxNQUFNLENBQUMsYUFBYSw2QkFDcEJBLE1BQU0sQ0FBQyw2QkFBNkIsMENBQ3BDQSxNQUFNLENBQUMsNkJBQTZCLG9EQUNwQ0EsTUFBTSxDQUFDLHdCQUF3QixvREFDL0JBLE1BQU0sQ0FBQyxpQkFBaUIsOERBQ3hCQyxNQUFNLENBQ04sT0FDQ0MsV0FDQUM7SUFRQSxNQUFNUixTQUFTRixRQUFRUyxZQUFZQztBQUNwQztBQUdGUCxRQUFRUSxLQUFLIn0=
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { ImportMap } from "./import-map.js";
|
|
2
|
-
/**
|
|
3
|
-
* A live, mutable model of a generated TypeScript class.
|
|
4
|
-
*
|
|
5
|
-
* Features call the fluent API to contribute imports, decorators, constructor
|
|
6
|
-
* params, and method decorators. When all configure phases are done, `render()`
|
|
7
|
-
* produces the final TypeScript source.
|
|
8
|
-
*
|
|
9
|
-
* Subclass to model controllers, services, repositories, etc.
|
|
10
|
-
*/ export class ClassModel {
|
|
11
|
-
className;
|
|
12
|
-
fileName;
|
|
13
|
-
_imports = new ImportMap();
|
|
14
|
-
_classDecorators = [];
|
|
15
|
-
_constructorParams = [];
|
|
16
|
-
_bodyClasses = [];
|
|
17
|
-
_methods = [];
|
|
18
|
-
constructor(className, fileName){
|
|
19
|
-
this.className = className;
|
|
20
|
-
this.fileName = fileName;
|
|
21
|
-
}
|
|
22
|
-
// ── imports ──────────────────────────────────────────────────────────────
|
|
23
|
-
/**
|
|
24
|
-
* Add named value imports from `pkg`.
|
|
25
|
-
* Called with no names, registers a side-effect `import "pkg"`.
|
|
26
|
-
*/ addImport(pkg, ...names) {
|
|
27
|
-
this._imports.add(pkg, ...names);
|
|
28
|
-
return this;
|
|
29
|
-
}
|
|
30
|
-
/** Add named type-only imports from `pkg`. */ addTypeImport(pkg, ...names) {
|
|
31
|
-
this._imports.addType(pkg, ...names);
|
|
32
|
-
return this;
|
|
33
|
-
}
|
|
34
|
-
// ── class-level ──────────────────────────────────────────────────────────
|
|
35
|
-
/** Prepend a class-level decorator (goes above any already-registered ones). */ decorateClass(decorator) {
|
|
36
|
-
if (!this._classDecorators.includes(decorator)) {
|
|
37
|
-
this._classDecorators.unshift(decorator);
|
|
38
|
-
}
|
|
39
|
-
return this;
|
|
40
|
-
}
|
|
41
|
-
addBodyClass(def) {
|
|
42
|
-
this._bodyClasses.push(def);
|
|
43
|
-
return this;
|
|
44
|
-
}
|
|
45
|
-
addConstructorParam(param) {
|
|
46
|
-
this._constructorParams.push(param);
|
|
47
|
-
return this;
|
|
48
|
-
}
|
|
49
|
-
// ── methods ──────────────────────────────────────────────────────────────
|
|
50
|
-
defineMethod(def) {
|
|
51
|
-
this._methods.push({
|
|
52
|
-
name: def.name,
|
|
53
|
-
decorators: [
|
|
54
|
-
...def.decorators
|
|
55
|
-
],
|
|
56
|
-
isAsync: def.isAsync ?? false,
|
|
57
|
-
params: def.params ?? [],
|
|
58
|
-
body: def.body
|
|
59
|
-
});
|
|
60
|
-
return this;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Prepend a decorator onto an existing method.
|
|
64
|
-
* Silently ignored if `methodName` is not found, so features are
|
|
65
|
-
* resilient to controllers that don't expose a particular method.
|
|
66
|
-
*/ decorateMethod(methodName, ...decorators) {
|
|
67
|
-
const method = this._methods.find((m)=>m.name === methodName);
|
|
68
|
-
if (method) method.decorators.unshift(...decorators);
|
|
69
|
-
return this;
|
|
70
|
-
}
|
|
71
|
-
// ── rendering ─────────────────────────────────────────────────────────────
|
|
72
|
-
render() {
|
|
73
|
-
const importLines = this._imports.render();
|
|
74
|
-
const bodyClassBlocks = this._bodyClasses.map((bc)=>{
|
|
75
|
-
const fields = bc.fields.map((f)=>`\t${f.decorator}\n\tpublic ${f.name}!: ${f.typeName};`).join("\n");
|
|
76
|
-
return `class ${bc.name} {\n${fields}\n}`;
|
|
77
|
-
});
|
|
78
|
-
const constructorParams = this._constructorParams.map((p)=>{
|
|
79
|
-
const prefix = p.paramDecorators.length > 0 ? `${p.paramDecorators.join(" ")} ` : "";
|
|
80
|
-
const access = `${p.isPrivate ? "private " : ""}${p.isReadonly ? "readonly " : ""}`;
|
|
81
|
-
return `\t\t${prefix}${access}${p.name}: ${p.typeName},`;
|
|
82
|
-
}).join("\n");
|
|
83
|
-
const methodBlocks = this._methods.map((m)=>{
|
|
84
|
-
const decorators = m.decorators.map((d)=>`\t${d}`).join("\n");
|
|
85
|
-
const params = m.params.map((p)=>p.decorator ? `${p.decorator} ${p.name}: ${p.typeName}` : `${p.name}: ${p.typeName}`).join(", ");
|
|
86
|
-
const asyncKw = m.isAsync ? "async " : "";
|
|
87
|
-
return `${decorators}\n\tpublic ${asyncKw}${m.name}(${params}) {\n\t\t${m.body}\n\t}`;
|
|
88
|
-
});
|
|
89
|
-
const sections = [
|
|
90
|
-
importLines.join("\n"),
|
|
91
|
-
...bodyClassBlocks,
|
|
92
|
-
[
|
|
93
|
-
...this._classDecorators,
|
|
94
|
-
`export class ${this.className} {`
|
|
95
|
-
].join("\n"),
|
|
96
|
-
`\tpublic constructor(\n${constructorParams}\n\t) {}`,
|
|
97
|
-
...methodBlocks,
|
|
98
|
-
"}"
|
|
99
|
-
];
|
|
100
|
-
return `${sections.join("\n\n")}\n`;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9kb21haW4vY2xhc3MtbW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW1wb3J0TWFwIH0gZnJvbSBcIi4vaW1wb3J0LW1hcC5qc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdG9yUGFyYW0ge1xuXHQvKiogZS5nLiBbXCJAaW5qZWN0KElQcmluY2lwYWxQcm92aWRlclRva2VuKVwiXSAqL1xuXHRwYXJhbURlY29yYXRvcnM6IHN0cmluZ1tdO1xuXHRuYW1lOiBzdHJpbmc7XG5cdHR5cGVOYW1lOiBzdHJpbmc7XG5cdGlzUHJpdmF0ZTogYm9vbGVhbjtcblx0aXNSZWFkb25seTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXRob2RQYXJhbSB7XG5cdC8qKiBlLmcuIGBAUXVlcnkoXCJmaWx0ZXJcIilgICovXG5cdGRlY29yYXRvcj86IHN0cmluZztcblx0bmFtZTogc3RyaW5nO1xuXHR0eXBlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGhvZERlZiB7XG5cdC8qKiBCYXNlIEhUVFAgZGVjb3JhdG9yKHMpLCBlLmcuIFtcIkBHZXQoKVwiXS4gUmVuZGVyZWQgYm90dG9tLW1vc3QuICovXG5cdGRlY29yYXRvcnM6IHN0cmluZ1tdO1xuXHRuYW1lOiBzdHJpbmc7XG5cdGlzQXN5bmM/OiBib29sZWFuO1xuXHRwYXJhbXM/OiBNZXRob2RQYXJhbVtdO1xuXHRib2R5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9keUNsYXNzRmllbGQge1xuXHRkZWNvcmF0b3I6IHN0cmluZztcblx0bmFtZTogc3RyaW5nO1xuXHR0eXBlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvZHlDbGFzc0RlZiB7XG5cdG5hbWU6IHN0cmluZztcblx0ZmllbGRzOiBCb2R5Q2xhc3NGaWVsZFtdO1xufVxuXG5pbnRlcmZhY2UgTWV0aG9kIGV4dGVuZHMgUmVxdWlyZWQ8TWV0aG9kRGVmPiB7fVxuXG4vKipcbiAqIEEgbGl2ZSwgbXV0YWJsZSBtb2RlbCBvZiBhIGdlbmVyYXRlZCBUeXBlU2NyaXB0IGNsYXNzLlxuICpcbiAqIEZlYXR1cmVzIGNhbGwgdGhlIGZsdWVudCBBUEkgdG8gY29udHJpYnV0ZSBpbXBvcnRzLCBkZWNvcmF0b3JzLCBjb25zdHJ1Y3RvclxuICogcGFyYW1zLCBhbmQgbWV0aG9kIGRlY29yYXRvcnMuICBXaGVuIGFsbCBjb25maWd1cmUgcGhhc2VzIGFyZSBkb25lLCBgcmVuZGVyKClgXG4gKiBwcm9kdWNlcyB0aGUgZmluYWwgVHlwZVNjcmlwdCBzb3VyY2UuXG4gKlxuICogU3ViY2xhc3MgdG8gbW9kZWwgY29udHJvbGxlcnMsIHNlcnZpY2VzLCByZXBvc2l0b3JpZXMsIGV0Yy5cbiAqL1xuZXhwb3J0IGNsYXNzIENsYXNzTW9kZWwge1xuXHRwdWJsaWMgcmVhZG9ubHkgY2xhc3NOYW1lOiBzdHJpbmc7XG5cdHB1YmxpYyByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG5cdHByb3RlY3RlZCByZWFkb25seSBfaW1wb3J0cyA9IG5ldyBJbXBvcnRNYXAoKTtcblx0cHJpdmF0ZSByZWFkb25seSBfY2xhc3NEZWNvcmF0b3JzOiBzdHJpbmdbXSA9IFtdO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9jb25zdHJ1Y3RvclBhcmFtczogQ29uc3RydWN0b3JQYXJhbVtdID0gW107XG5cdHByaXZhdGUgcmVhZG9ubHkgX2JvZHlDbGFzc2VzOiBCb2R5Q2xhc3NEZWZbXSA9IFtdO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9tZXRob2RzOiBNZXRob2RbXSA9IFtdO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihjbGFzc05hbWU6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZykge1xuXHRcdHRoaXMuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuXHRcdHRoaXMuZmlsZU5hbWUgPSBmaWxlTmFtZTtcblx0fVxuXG5cdC8vIOKUgOKUgCBpbXBvcnRzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5cdC8qKlxuXHQgKiBBZGQgbmFtZWQgdmFsdWUgaW1wb3J0cyBmcm9tIGBwa2dgLlxuXHQgKiBDYWxsZWQgd2l0aCBubyBuYW1lcywgcmVnaXN0ZXJzIGEgc2lkZS1lZmZlY3QgYGltcG9ydCBcInBrZ1wiYC5cblx0ICovXG5cdHB1YmxpYyBhZGRJbXBvcnQocGtnOiBzdHJpbmcsIC4uLm5hbWVzOiBzdHJpbmdbXSk6IHRoaXMge1xuXHRcdHRoaXMuX2ltcG9ydHMuYWRkKHBrZywgLi4ubmFtZXMpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqIEFkZCBuYW1lZCB0eXBlLW9ubHkgaW1wb3J0cyBmcm9tIGBwa2dgLiAqL1xuXHRwdWJsaWMgYWRkVHlwZUltcG9ydChwa2c6IHN0cmluZywgLi4ubmFtZXM6IHN0cmluZ1tdKTogdGhpcyB7XG5cdFx0dGhpcy5faW1wb3J0cy5hZGRUeXBlKHBrZywgLi4ubmFtZXMpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0Ly8g4pSA4pSAIGNsYXNzLWxldmVsIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5cdC8qKiBQcmVwZW5kIGEgY2xhc3MtbGV2ZWwgZGVjb3JhdG9yIChnb2VzIGFib3ZlIGFueSBhbHJlYWR5LXJlZ2lzdGVyZWQgb25lcykuICovXG5cdHB1YmxpYyBkZWNvcmF0ZUNsYXNzKGRlY29yYXRvcjogc3RyaW5nKTogdGhpcyB7XG5cdFx0aWYgKCF0aGlzLl9jbGFzc0RlY29yYXRvcnMuaW5jbHVkZXMoZGVjb3JhdG9yKSkge1xuXHRcdFx0dGhpcy5fY2xhc3NEZWNvcmF0b3JzLnVuc2hpZnQoZGVjb3JhdG9yKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgYWRkQm9keUNsYXNzKGRlZjogQm9keUNsYXNzRGVmKTogdGhpcyB7XG5cdFx0dGhpcy5fYm9keUNsYXNzZXMucHVzaChkZWYpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGFkZENvbnN0cnVjdG9yUGFyYW0ocGFyYW06IENvbnN0cnVjdG9yUGFyYW0pOiB0aGlzIHtcblx0XHR0aGlzLl9jb25zdHJ1Y3RvclBhcmFtcy5wdXNoKHBhcmFtKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8vIOKUgOKUgCBtZXRob2RzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5cdHB1YmxpYyBkZWZpbmVNZXRob2QoZGVmOiBNZXRob2REZWYpOiB0aGlzIHtcblx0XHR0aGlzLl9tZXRob2RzLnB1c2goe1xuXHRcdFx0bmFtZTogZGVmLm5hbWUsXG5cdFx0XHRkZWNvcmF0b3JzOiBbLi4uZGVmLmRlY29yYXRvcnNdLFxuXHRcdFx0aXNBc3luYzogZGVmLmlzQXN5bmMgPz8gZmFsc2UsXG5cdFx0XHRwYXJhbXM6IGRlZi5wYXJhbXMgPz8gW10sXG5cdFx0XHRib2R5OiBkZWYuYm9keSxcblx0XHR9KTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBQcmVwZW5kIGEgZGVjb3JhdG9yIG9udG8gYW4gZXhpc3RpbmcgbWV0aG9kLlxuXHQgKiBTaWxlbnRseSBpZ25vcmVkIGlmIGBtZXRob2ROYW1lYCBpcyBub3QgZm91bmQsIHNvIGZlYXR1cmVzIGFyZVxuXHQgKiByZXNpbGllbnQgdG8gY29udHJvbGxlcnMgdGhhdCBkb24ndCBleHBvc2UgYSBwYXJ0aWN1bGFyIG1ldGhvZC5cblx0ICovXG5cdHB1YmxpYyBkZWNvcmF0ZU1ldGhvZChtZXRob2ROYW1lOiBzdHJpbmcsIC4uLmRlY29yYXRvcnM6IHN0cmluZ1tdKTogdGhpcyB7XG5cdFx0Y29uc3QgbWV0aG9kID0gdGhpcy5fbWV0aG9kcy5maW5kKChtKSA9PiBtLm5hbWUgPT09IG1ldGhvZE5hbWUpO1xuXHRcdGlmIChtZXRob2QpIG1ldGhvZC5kZWNvcmF0b3JzLnVuc2hpZnQoLi4uZGVjb3JhdG9ycyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvLyDilIDilIAgcmVuZGVyaW5nIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5cdHB1YmxpYyByZW5kZXIoKTogc3RyaW5nIHtcblx0XHRjb25zdCBpbXBvcnRMaW5lcyA9IHRoaXMuX2ltcG9ydHMucmVuZGVyKCk7XG5cblx0XHRjb25zdCBib2R5Q2xhc3NCbG9ja3MgPSB0aGlzLl9ib2R5Q2xhc3Nlcy5tYXAoKGJjKSA9PiB7XG5cdFx0XHRjb25zdCBmaWVsZHMgPSBiYy5maWVsZHNcblx0XHRcdFx0Lm1hcCgoZikgPT4gYFxcdCR7Zi5kZWNvcmF0b3J9XFxuXFx0cHVibGljICR7Zi5uYW1lfSE6ICR7Zi50eXBlTmFtZX07YClcblx0XHRcdFx0LmpvaW4oXCJcXG5cIik7XG5cdFx0XHRyZXR1cm4gYGNsYXNzICR7YmMubmFtZX0ge1xcbiR7ZmllbGRzfVxcbn1gO1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgY29uc3RydWN0b3JQYXJhbXMgPSB0aGlzLl9jb25zdHJ1Y3RvclBhcmFtc1xuXHRcdFx0Lm1hcCgocCkgPT4ge1xuXHRcdFx0XHRjb25zdCBwcmVmaXggPSBwLnBhcmFtRGVjb3JhdG9ycy5sZW5ndGggPiAwID8gYCR7cC5wYXJhbURlY29yYXRvcnMuam9pbihcIiBcIil9IGAgOiBcIlwiO1xuXHRcdFx0XHRjb25zdCBhY2Nlc3MgPSBgJHtwLmlzUHJpdmF0ZSA/IFwicHJpdmF0ZSBcIiA6IFwiXCJ9JHtwLmlzUmVhZG9ubHkgPyBcInJlYWRvbmx5IFwiIDogXCJcIn1gO1xuXHRcdFx0XHRyZXR1cm4gYFxcdFxcdCR7cHJlZml4fSR7YWNjZXNzfSR7cC5uYW1lfTogJHtwLnR5cGVOYW1lfSxgO1xuXHRcdFx0fSlcblx0XHRcdC5qb2luKFwiXFxuXCIpO1xuXG5cdFx0Y29uc3QgbWV0aG9kQmxvY2tzID0gdGhpcy5fbWV0aG9kcy5tYXAoKG0pID0+IHtcblx0XHRcdGNvbnN0IGRlY29yYXRvcnMgPSBtLmRlY29yYXRvcnMubWFwKChkKSA9PiBgXFx0JHtkfWApLmpvaW4oXCJcXG5cIik7XG5cdFx0XHRjb25zdCBwYXJhbXMgPSBtLnBhcmFtc1xuXHRcdFx0XHQubWFwKChwKSA9PlxuXHRcdFx0XHRcdHAuZGVjb3JhdG9yID8gYCR7cC5kZWNvcmF0b3J9ICR7cC5uYW1lfTogJHtwLnR5cGVOYW1lfWAgOiBgJHtwLm5hbWV9OiAke3AudHlwZU5hbWV9YCxcblx0XHRcdFx0KVxuXHRcdFx0XHQuam9pbihcIiwgXCIpO1xuXHRcdFx0Y29uc3QgYXN5bmNLdyA9IG0uaXNBc3luYyA/IFwiYXN5bmMgXCIgOiBcIlwiO1xuXHRcdFx0cmV0dXJuIGAke2RlY29yYXRvcnN9XFxuXFx0cHVibGljICR7YXN5bmNLd30ke20ubmFtZX0oJHtwYXJhbXN9KSB7XFxuXFx0XFx0JHttLmJvZHl9XFxuXFx0fWA7XG5cdFx0fSk7XG5cblx0XHRjb25zdCBzZWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XHRpbXBvcnRMaW5lcy5qb2luKFwiXFxuXCIpLFxuXHRcdFx0Li4uYm9keUNsYXNzQmxvY2tzLFxuXHRcdFx0Wy4uLnRoaXMuX2NsYXNzRGVjb3JhdG9ycywgYGV4cG9ydCBjbGFzcyAke3RoaXMuY2xhc3NOYW1lfSB7YF0uam9pbihcIlxcblwiKSxcblx0XHRcdGBcXHRwdWJsaWMgY29uc3RydWN0b3IoXFxuJHtjb25zdHJ1Y3RvclBhcmFtc31cXG5cXHQpIHt9YCxcblx0XHRcdC4uLm1ldGhvZEJsb2Nrcyxcblx0XHRcdFwifVwiLFxuXHRcdF07XG5cblx0XHRyZXR1cm4gYCR7c2VjdGlvbnMuam9pbihcIlxcblxcblwiKX1cXG5gO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiSW1wb3J0TWFwIiwiQ2xhc3NNb2RlbCIsImNsYXNzTmFtZSIsImZpbGVOYW1lIiwiX2ltcG9ydHMiLCJfY2xhc3NEZWNvcmF0b3JzIiwiX2NvbnN0cnVjdG9yUGFyYW1zIiwiX2JvZHlDbGFzc2VzIiwiX21ldGhvZHMiLCJhZGRJbXBvcnQiLCJwa2ciLCJuYW1lcyIsImFkZCIsImFkZFR5cGVJbXBvcnQiLCJhZGRUeXBlIiwiZGVjb3JhdGVDbGFzcyIsImRlY29yYXRvciIsImluY2x1ZGVzIiwidW5zaGlmdCIsImFkZEJvZHlDbGFzcyIsImRlZiIsInB1c2giLCJhZGRDb25zdHJ1Y3RvclBhcmFtIiwicGFyYW0iLCJkZWZpbmVNZXRob2QiLCJuYW1lIiwiZGVjb3JhdG9ycyIsImlzQXN5bmMiLCJwYXJhbXMiLCJib2R5IiwiZGVjb3JhdGVNZXRob2QiLCJtZXRob2ROYW1lIiwibWV0aG9kIiwiZmluZCIsIm0iLCJyZW5kZXIiLCJpbXBvcnRMaW5lcyIsImJvZHlDbGFzc0Jsb2NrcyIsIm1hcCIsImJjIiwiZmllbGRzIiwiZiIsInR5cGVOYW1lIiwiam9pbiIsImNvbnN0cnVjdG9yUGFyYW1zIiwicCIsInByZWZpeCIsInBhcmFtRGVjb3JhdG9ycyIsImxlbmd0aCIsImFjY2VzcyIsImlzUHJpdmF0ZSIsImlzUmVhZG9ubHkiLCJtZXRob2RCbG9ja3MiLCJkIiwiYXN5bmNLdyIsInNlY3Rpb25zIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLFFBQVEsa0JBQWtCO0FBd0M1Qzs7Ozs7Ozs7Q0FRQyxHQUNELE9BQU8sTUFBTUM7SUFDSUMsVUFBa0I7SUFDbEJDLFNBQWlCO0lBRWRDLFdBQVcsSUFBSUosWUFBWTtJQUM3QkssbUJBQTZCLEVBQUUsQ0FBQztJQUNoQ0MscUJBQXlDLEVBQUUsQ0FBQztJQUM1Q0MsZUFBK0IsRUFBRSxDQUFDO0lBQ2xDQyxXQUFxQixFQUFFLENBQUM7SUFFekMsWUFBbUJOLFNBQWlCLEVBQUVDLFFBQWdCLENBQUU7UUFDdkQsSUFBSSxDQUFDRCxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtJQUNqQjtJQUVBLDRFQUE0RTtJQUU1RTs7O0VBR0MsR0FDRCxBQUFPTSxVQUFVQyxHQUFXLEVBQUUsR0FBR0MsS0FBZSxFQUFRO1FBQ3ZELElBQUksQ0FBQ1AsUUFBUSxDQUFDUSxHQUFHLENBQUNGLFFBQVFDO1FBQzFCLE9BQU8sSUFBSTtJQUNaO0lBRUEsNENBQTRDLEdBQzVDLEFBQU9FLGNBQWNILEdBQVcsRUFBRSxHQUFHQyxLQUFlLEVBQVE7UUFDM0QsSUFBSSxDQUFDUCxRQUFRLENBQUNVLE9BQU8sQ0FBQ0osUUFBUUM7UUFDOUIsT0FBTyxJQUFJO0lBQ1o7SUFFQSw0RUFBNEU7SUFFNUUsOEVBQThFLEdBQzlFLEFBQU9JLGNBQWNDLFNBQWlCLEVBQVE7UUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQ1gsZ0JBQWdCLENBQUNZLFFBQVEsQ0FBQ0QsWUFBWTtZQUMvQyxJQUFJLENBQUNYLGdCQUFnQixDQUFDYSxPQUFPLENBQUNGO1FBQy9CO1FBQ0EsT0FBTyxJQUFJO0lBQ1o7SUFFT0csYUFBYUMsR0FBaUIsRUFBUTtRQUM1QyxJQUFJLENBQUNiLFlBQVksQ0FBQ2MsSUFBSSxDQUFDRDtRQUN2QixPQUFPLElBQUk7SUFDWjtJQUVPRSxvQkFBb0JDLEtBQXVCLEVBQVE7UUFDekQsSUFBSSxDQUFDakIsa0JBQWtCLENBQUNlLElBQUksQ0FBQ0U7UUFDN0IsT0FBTyxJQUFJO0lBQ1o7SUFFQSw0RUFBNEU7SUFFckVDLGFBQWFKLEdBQWMsRUFBUTtRQUN6QyxJQUFJLENBQUNaLFFBQVEsQ0FBQ2EsSUFBSSxDQUFDO1lBQ2xCSSxNQUFNTCxJQUFJSyxJQUFJO1lBQ2RDLFlBQVk7bUJBQUlOLElBQUlNLFVBQVU7YUFBQztZQUMvQkMsU0FBU1AsSUFBSU8sT0FBTyxJQUFJO1lBQ3hCQyxRQUFRUixJQUFJUSxNQUFNLElBQUksRUFBRTtZQUN4QkMsTUFBTVQsSUFBSVMsSUFBSTtRQUNmO1FBQ0EsT0FBTyxJQUFJO0lBQ1o7SUFFQTs7OztFQUlDLEdBQ0QsQUFBT0MsZUFBZUMsVUFBa0IsRUFBRSxHQUFHTCxVQUFvQixFQUFRO1FBQ3hFLE1BQU1NLFNBQVMsSUFBSSxDQUFDeEIsUUFBUSxDQUFDeUIsSUFBSSxDQUFDLENBQUNDLElBQU1BLEVBQUVULElBQUksS0FBS007UUFDcEQsSUFBSUMsUUFBUUEsT0FBT04sVUFBVSxDQUFDUixPQUFPLElBQUlRO1FBQ3pDLE9BQU8sSUFBSTtJQUNaO0lBRUEsNkVBQTZFO0lBRXRFUyxTQUFpQjtRQUN2QixNQUFNQyxjQUFjLElBQUksQ0FBQ2hDLFFBQVEsQ0FBQytCLE1BQU07UUFFeEMsTUFBTUUsa0JBQWtCLElBQUksQ0FBQzlCLFlBQVksQ0FBQytCLEdBQUcsQ0FBQyxDQUFDQztZQUM5QyxNQUFNQyxTQUFTRCxHQUFHQyxNQUFNLENBQ3RCRixHQUFHLENBQUMsQ0FBQ0csSUFBTSxDQUFDLEVBQUUsRUFBRUEsRUFBRXpCLFNBQVMsQ0FBQyxXQUFXLEVBQUV5QixFQUFFaEIsSUFBSSxDQUFDLEdBQUcsRUFBRWdCLEVBQUVDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDbEVDLElBQUksQ0FBQztZQUNQLE9BQU8sQ0FBQyxNQUFNLEVBQUVKLEdBQUdkLElBQUksQ0FBQyxJQUFJLEVBQUVlLE9BQU8sR0FBRyxDQUFDO1FBQzFDO1FBRUEsTUFBTUksb0JBQW9CLElBQUksQ0FBQ3RDLGtCQUFrQixDQUMvQ2dDLEdBQUcsQ0FBQyxDQUFDTztZQUNMLE1BQU1DLFNBQVNELEVBQUVFLGVBQWUsQ0FBQ0MsTUFBTSxHQUFHLElBQUksR0FBR0gsRUFBRUUsZUFBZSxDQUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRztZQUNsRixNQUFNTSxTQUFTLEdBQUdKLEVBQUVLLFNBQVMsR0FBRyxhQUFhLEtBQUtMLEVBQUVNLFVBQVUsR0FBRyxjQUFjLElBQUk7WUFDbkYsT0FBTyxDQUFDLElBQUksRUFBRUwsU0FBU0csU0FBU0osRUFBRXBCLElBQUksQ0FBQyxFQUFFLEVBQUVvQixFQUFFSCxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3pELEdBQ0NDLElBQUksQ0FBQztRQUVQLE1BQU1TLGVBQWUsSUFBSSxDQUFDNUMsUUFBUSxDQUFDOEIsR0FBRyxDQUFDLENBQUNKO1lBQ3ZDLE1BQU1SLGFBQWFRLEVBQUVSLFVBQVUsQ0FBQ1ksR0FBRyxDQUFDLENBQUNlLElBQU0sQ0FBQyxFQUFFLEVBQUVBLEdBQUcsRUFBRVYsSUFBSSxDQUFDO1lBQzFELE1BQU1mLFNBQVNNLEVBQUVOLE1BQU0sQ0FDckJVLEdBQUcsQ0FBQyxDQUFDTyxJQUNMQSxFQUFFN0IsU0FBUyxHQUFHLEdBQUc2QixFQUFFN0IsU0FBUyxDQUFDLENBQUMsRUFBRTZCLEVBQUVwQixJQUFJLENBQUMsRUFBRSxFQUFFb0IsRUFBRUgsUUFBUSxFQUFFLEdBQUcsR0FBR0csRUFBRXBCLElBQUksQ0FBQyxFQUFFLEVBQUVvQixFQUFFSCxRQUFRLEVBQUUsRUFFcEZDLElBQUksQ0FBQztZQUNQLE1BQU1XLFVBQVVwQixFQUFFUCxPQUFPLEdBQUcsV0FBVztZQUN2QyxPQUFPLEdBQUdELFdBQVcsV0FBVyxFQUFFNEIsVUFBVXBCLEVBQUVULElBQUksQ0FBQyxDQUFDLEVBQUVHLE9BQU8sU0FBUyxFQUFFTSxFQUFFTCxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RGO1FBRUEsTUFBTTBCLFdBQXFCO1lBQzFCbkIsWUFBWU8sSUFBSSxDQUFDO2VBQ2ROO1lBQ0g7bUJBQUksSUFBSSxDQUFDaEMsZ0JBQWdCO2dCQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQ0gsU0FBUyxDQUFDLEVBQUUsQ0FBQzthQUFDLENBQUN5QyxJQUFJLENBQUM7WUFDcEUsQ0FBQyx1QkFBdUIsRUFBRUMsa0JBQWtCLFFBQVEsQ0FBQztlQUNsRFE7WUFDSDtTQUNBO1FBRUQsT0FBTyxHQUFHRyxTQUFTWixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEM7QUFDRCJ9
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { modelKey } from "./context.js";
|
|
2
|
-
export const COMPOSE_KEY = modelKey("compose");
|
|
3
|
-
/**
|
|
4
|
-
* Live builder for `docker-compose.yml`.
|
|
5
|
-
*
|
|
6
|
-
* Features call `addService` / `addVolume` in their `configure` phases.
|
|
7
|
-
* The devcontainer `render` phase calls `render()` and writes the file.
|
|
8
|
-
*/ export class ComposeModel {
|
|
9
|
-
_services = new Map();
|
|
10
|
-
_volumes = new Set();
|
|
11
|
-
addService(name, config) {
|
|
12
|
-
this._services.set(name, config);
|
|
13
|
-
return this;
|
|
14
|
-
}
|
|
15
|
-
addVolume(name) {
|
|
16
|
-
this._volumes.add(name);
|
|
17
|
-
return this;
|
|
18
|
-
}
|
|
19
|
-
render() {
|
|
20
|
-
const lines = [
|
|
21
|
-
"services:"
|
|
22
|
-
];
|
|
23
|
-
for (const [name, svc] of this._services){
|
|
24
|
-
lines.push(` ${name}:`);
|
|
25
|
-
if (svc.build) lines.push(` build: ${svc.build}`);
|
|
26
|
-
if (svc.image) lines.push(` image: ${svc.image}`);
|
|
27
|
-
if (svc.command) lines.push(` command: ${svc.command}`);
|
|
28
|
-
if (svc.restart) lines.push(` restart: ${svc.restart}`);
|
|
29
|
-
if (svc.env_file && svc.env_file.length > 0) {
|
|
30
|
-
lines.push(" env_file:");
|
|
31
|
-
for (const f of svc.env_file)lines.push(` - ${f}`);
|
|
32
|
-
}
|
|
33
|
-
if (svc.environment && Object.keys(svc.environment).length > 0) {
|
|
34
|
-
lines.push(" environment:");
|
|
35
|
-
for (const [k, v] of Object.entries(svc.environment)){
|
|
36
|
-
lines.push(` ${k}: ${v}`);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
if (svc.ports && svc.ports.length > 0) {
|
|
40
|
-
lines.push(" ports:");
|
|
41
|
-
for (const p of svc.ports)lines.push(` - "${p}"`);
|
|
42
|
-
}
|
|
43
|
-
if (svc.volumes && svc.volumes.length > 0) {
|
|
44
|
-
lines.push(" volumes:");
|
|
45
|
-
for (const v of svc.volumes)lines.push(` - ${v}`);
|
|
46
|
-
}
|
|
47
|
-
if (svc.depends_on && svc.depends_on.length > 0) {
|
|
48
|
-
lines.push(" depends_on:");
|
|
49
|
-
for (const d of svc.depends_on)lines.push(` - ${d}`);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (this._volumes.size > 0) {
|
|
53
|
-
lines.push("");
|
|
54
|
-
lines.push("volumes:");
|
|
55
|
-
for (const v of this._volumes)lines.push(` ${v}:`);
|
|
56
|
-
}
|
|
57
|
-
return `${lines.join("\n")}\n`;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9kb21haW4vY29tcG9zZS5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb2RlbEtleSB9IGZyb20gXCIuL2NvbnRleHQuanNcIjtcblxuZXhwb3J0IGNvbnN0IENPTVBPU0VfS0VZID0gbW9kZWxLZXk8Q29tcG9zZU1vZGVsPihcImNvbXBvc2VcIik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9zZVNlcnZpY2Uge1xuXHRidWlsZD86IHN0cmluZztcblx0aW1hZ2U/OiBzdHJpbmc7XG5cdGVudl9maWxlPzogc3RyaW5nW107XG5cdGVudmlyb25tZW50PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblx0cG9ydHM/OiBzdHJpbmdbXTtcblx0dm9sdW1lcz86IHN0cmluZ1tdO1xuXHRjb21tYW5kPzogc3RyaW5nO1xuXHRyZXN0YXJ0Pzogc3RyaW5nO1xuXHRkZXBlbmRzX29uPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogTGl2ZSBidWlsZGVyIGZvciBgZG9ja2VyLWNvbXBvc2UueW1sYC5cbiAqXG4gKiBGZWF0dXJlcyBjYWxsIGBhZGRTZXJ2aWNlYCAvIGBhZGRWb2x1bWVgIGluIHRoZWlyIGBjb25maWd1cmVgIHBoYXNlcy5cbiAqIFRoZSBkZXZjb250YWluZXIgYHJlbmRlcmAgcGhhc2UgY2FsbHMgYHJlbmRlcigpYCBhbmQgd3JpdGVzIHRoZSBmaWxlLlxuICovXG5leHBvcnQgY2xhc3MgQ29tcG9zZU1vZGVsIHtcblx0cHJpdmF0ZSByZWFkb25seSBfc2VydmljZXM6IE1hcDxzdHJpbmcsIENvbXBvc2VTZXJ2aWNlPiA9IG5ldyBNYXAoKTtcblx0cHJpdmF0ZSByZWFkb25seSBfdm9sdW1lczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cblx0cHVibGljIGFkZFNlcnZpY2UobmFtZTogc3RyaW5nLCBjb25maWc6IENvbXBvc2VTZXJ2aWNlKTogdGhpcyB7XG5cdFx0dGhpcy5fc2VydmljZXMuc2V0KG5hbWUsIGNvbmZpZyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgYWRkVm9sdW1lKG5hbWU6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX3ZvbHVtZXMuYWRkKG5hbWUpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIHJlbmRlcigpOiBzdHJpbmcge1xuXHRcdGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtcInNlcnZpY2VzOlwiXTtcblxuXHRcdGZvciAoY29uc3QgW25hbWUsIHN2Y10gb2YgdGhpcy5fc2VydmljZXMpIHtcblx0XHRcdGxpbmVzLnB1c2goYCAgJHtuYW1lfTpgKTtcblx0XHRcdGlmIChzdmMuYnVpbGQpIGxpbmVzLnB1c2goYCAgICBidWlsZDogJHtzdmMuYnVpbGR9YCk7XG5cdFx0XHRpZiAoc3ZjLmltYWdlKSBsaW5lcy5wdXNoKGAgICAgaW1hZ2U6ICR7c3ZjLmltYWdlfWApO1xuXHRcdFx0aWYgKHN2Yy5jb21tYW5kKSBsaW5lcy5wdXNoKGAgICAgY29tbWFuZDogJHtzdmMuY29tbWFuZH1gKTtcblx0XHRcdGlmIChzdmMucmVzdGFydCkgbGluZXMucHVzaChgICAgIHJlc3RhcnQ6ICR7c3ZjLnJlc3RhcnR9YCk7XG5cblx0XHRcdGlmIChzdmMuZW52X2ZpbGUgJiYgc3ZjLmVudl9maWxlLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0bGluZXMucHVzaChcIiAgICBlbnZfZmlsZTpcIik7XG5cdFx0XHRcdGZvciAoY29uc3QgZiBvZiBzdmMuZW52X2ZpbGUpIGxpbmVzLnB1c2goYCAgICAgIC0gJHtmfWApO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoc3ZjLmVudmlyb25tZW50ICYmIE9iamVjdC5rZXlzKHN2Yy5lbnZpcm9ubWVudCkubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRsaW5lcy5wdXNoKFwiICAgIGVudmlyb25tZW50OlwiKTtcblx0XHRcdFx0Zm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoc3ZjLmVudmlyb25tZW50KSkge1xuXHRcdFx0XHRcdGxpbmVzLnB1c2goYCAgICAgICR7a306ICR7dn1gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoc3ZjLnBvcnRzICYmIHN2Yy5wb3J0cy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGxpbmVzLnB1c2goXCIgICAgcG9ydHM6XCIpO1xuXHRcdFx0XHRmb3IgKGNvbnN0IHAgb2Ygc3ZjLnBvcnRzKSBsaW5lcy5wdXNoKGAgICAgICAtIFwiJHtwfVwiYCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzdmMudm9sdW1lcyAmJiBzdmMudm9sdW1lcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGxpbmVzLnB1c2goXCIgICAgdm9sdW1lczpcIik7XG5cdFx0XHRcdGZvciAoY29uc3QgdiBvZiBzdmMudm9sdW1lcykgbGluZXMucHVzaChgICAgICAgLSAke3Z9YCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzdmMuZGVwZW5kc19vbiAmJiBzdmMuZGVwZW5kc19vbi5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGxpbmVzLnB1c2goXCIgICAgZGVwZW5kc19vbjpcIik7XG5cdFx0XHRcdGZvciAoY29uc3QgZCBvZiBzdmMuZGVwZW5kc19vbikgbGluZXMucHVzaChgICAgICAgLSAke2R9YCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX3ZvbHVtZXMuc2l6ZSA+IDApIHtcblx0XHRcdGxpbmVzLnB1c2goXCJcIik7XG5cdFx0XHRsaW5lcy5wdXNoKFwidm9sdW1lczpcIik7XG5cdFx0XHRmb3IgKGNvbnN0IHYgb2YgdGhpcy5fdm9sdW1lcykgbGluZXMucHVzaChgICAke3Z9OmApO1xuXHRcdH1cblxuXHRcdHJldHVybiBgJHtsaW5lcy5qb2luKFwiXFxuXCIpfVxcbmA7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJtb2RlbEtleSIsIkNPTVBPU0VfS0VZIiwiQ29tcG9zZU1vZGVsIiwiX3NlcnZpY2VzIiwiTWFwIiwiX3ZvbHVtZXMiLCJTZXQiLCJhZGRTZXJ2aWNlIiwibmFtZSIsImNvbmZpZyIsInNldCIsImFkZFZvbHVtZSIsImFkZCIsInJlbmRlciIsImxpbmVzIiwic3ZjIiwicHVzaCIsImJ1aWxkIiwiaW1hZ2UiLCJjb21tYW5kIiwicmVzdGFydCIsImVudl9maWxlIiwibGVuZ3RoIiwiZiIsImVudmlyb25tZW50IiwiT2JqZWN0Iiwia2V5cyIsImsiLCJ2IiwiZW50cmllcyIsInBvcnRzIiwicCIsInZvbHVtZXMiLCJkZXBlbmRzX29uIiwiZCIsInNpemUiLCJqb2luIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxRQUFRLFFBQVEsZUFBZTtBQUV4QyxPQUFPLE1BQU1DLGNBQWNELFNBQXVCLFdBQVc7QUFjN0Q7Ozs7O0NBS0MsR0FDRCxPQUFPLE1BQU1FO0lBQ0tDLFlBQXlDLElBQUlDLE1BQU07SUFDbkRDLFdBQXdCLElBQUlDLE1BQU07SUFFNUNDLFdBQVdDLElBQVksRUFBRUMsTUFBc0IsRUFBUTtRQUM3RCxJQUFJLENBQUNOLFNBQVMsQ0FBQ08sR0FBRyxDQUFDRixNQUFNQztRQUN6QixPQUFPLElBQUk7SUFDWjtJQUVPRSxVQUFVSCxJQUFZLEVBQVE7UUFDcEMsSUFBSSxDQUFDSCxRQUFRLENBQUNPLEdBQUcsQ0FBQ0o7UUFDbEIsT0FBTyxJQUFJO0lBQ1o7SUFFT0ssU0FBaUI7UUFDdkIsTUFBTUMsUUFBa0I7WUFBQztTQUFZO1FBRXJDLEtBQUssTUFBTSxDQUFDTixNQUFNTyxJQUFJLElBQUksSUFBSSxDQUFDWixTQUFTLENBQUU7WUFDekNXLE1BQU1FLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRVIsS0FBSyxDQUFDLENBQUM7WUFDdkIsSUFBSU8sSUFBSUUsS0FBSyxFQUFFSCxNQUFNRSxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUVELElBQUlFLEtBQUssRUFBRTtZQUNuRCxJQUFJRixJQUFJRyxLQUFLLEVBQUVKLE1BQU1FLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRUQsSUFBSUcsS0FBSyxFQUFFO1lBQ25ELElBQUlILElBQUlJLE9BQU8sRUFBRUwsTUFBTUUsSUFBSSxDQUFDLENBQUMsYUFBYSxFQUFFRCxJQUFJSSxPQUFPLEVBQUU7WUFDekQsSUFBSUosSUFBSUssT0FBTyxFQUFFTixNQUFNRSxJQUFJLENBQUMsQ0FBQyxhQUFhLEVBQUVELElBQUlLLE9BQU8sRUFBRTtZQUV6RCxJQUFJTCxJQUFJTSxRQUFRLElBQUlOLElBQUlNLFFBQVEsQ0FBQ0MsTUFBTSxHQUFHLEdBQUc7Z0JBQzVDUixNQUFNRSxJQUFJLENBQUM7Z0JBQ1gsS0FBSyxNQUFNTyxLQUFLUixJQUFJTSxRQUFRLENBQUVQLE1BQU1FLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRU8sR0FBRztZQUN4RDtZQUVBLElBQUlSLElBQUlTLFdBQVcsSUFBSUMsT0FBT0MsSUFBSSxDQUFDWCxJQUFJUyxXQUFXLEVBQUVGLE1BQU0sR0FBRyxHQUFHO2dCQUMvRFIsTUFBTUUsSUFBSSxDQUFDO2dCQUNYLEtBQUssTUFBTSxDQUFDVyxHQUFHQyxFQUFFLElBQUlILE9BQU9JLE9BQU8sQ0FBQ2QsSUFBSVMsV0FBVyxFQUFHO29CQUNyRFYsTUFBTUUsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFVyxFQUFFLEVBQUUsRUFBRUMsR0FBRztnQkFDOUI7WUFDRDtZQUVBLElBQUliLElBQUllLEtBQUssSUFBSWYsSUFBSWUsS0FBSyxDQUFDUixNQUFNLEdBQUcsR0FBRztnQkFDdENSLE1BQU1FLElBQUksQ0FBQztnQkFDWCxLQUFLLE1BQU1lLEtBQUtoQixJQUFJZSxLQUFLLENBQUVoQixNQUFNRSxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUVlLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZEO1lBRUEsSUFBSWhCLElBQUlpQixPQUFPLElBQUlqQixJQUFJaUIsT0FBTyxDQUFDVixNQUFNLEdBQUcsR0FBRztnQkFDMUNSLE1BQU1FLElBQUksQ0FBQztnQkFDWCxLQUFLLE1BQU1ZLEtBQUtiLElBQUlpQixPQUFPLENBQUVsQixNQUFNRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUVZLEdBQUc7WUFDdkQ7WUFFQSxJQUFJYixJQUFJa0IsVUFBVSxJQUFJbEIsSUFBSWtCLFVBQVUsQ0FBQ1gsTUFBTSxHQUFHLEdBQUc7Z0JBQ2hEUixNQUFNRSxJQUFJLENBQUM7Z0JBQ1gsS0FBSyxNQUFNa0IsS0FBS25CLElBQUlrQixVQUFVLENBQUVuQixNQUFNRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUVrQixHQUFHO1lBQzFEO1FBQ0Q7UUFFQSxJQUFJLElBQUksQ0FBQzdCLFFBQVEsQ0FBQzhCLElBQUksR0FBRyxHQUFHO1lBQzNCckIsTUFBTUUsSUFBSSxDQUFDO1lBQ1hGLE1BQU1FLElBQUksQ0FBQztZQUNYLEtBQUssTUFBTVksS0FBSyxJQUFJLENBQUN2QixRQUFRLENBQUVTLE1BQU1FLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRVksRUFBRSxDQUFDLENBQUM7UUFDcEQ7UUFFQSxPQUFPLEdBQUdkLE1BQU1zQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0I7QUFDRCJ9
|
package/es6/v1/domain/context.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { basename } from "node:path";
|
|
2
|
-
export function modelKey(name) {
|
|
3
|
-
return {
|
|
4
|
-
_sym: Symbol(name)
|
|
5
|
-
};
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Immutable typed store of feature models. Each feature defines its own keys
|
|
9
|
-
* (typed via `modelKey<T>()`) and writes to / reads from the store during the
|
|
10
|
-
* `configure` and `render` phases. The store is the only mechanism by which
|
|
11
|
-
* features communicate.
|
|
12
|
-
*/ export class FeatureModelStore {
|
|
13
|
-
_store;
|
|
14
|
-
constructor(store){
|
|
15
|
-
this._store = store ?? new Map();
|
|
16
|
-
}
|
|
17
|
-
get(key) {
|
|
18
|
-
return this._store.get(key._sym);
|
|
19
|
-
}
|
|
20
|
-
set(key, value) {
|
|
21
|
-
const next = new Map(this._store);
|
|
22
|
-
next.set(key._sym, value);
|
|
23
|
-
return new FeatureModelStore(next);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
export function createContext(targetDir, opts, template = "api") {
|
|
27
|
-
return {
|
|
28
|
-
projectName: basename(targetDir),
|
|
29
|
-
targetDir,
|
|
30
|
-
opts,
|
|
31
|
-
template,
|
|
32
|
-
models: new FeatureModelStore(),
|
|
33
|
-
controllers: []
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9kb21haW4vY29udGV4dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiYXNlbmFtZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgQ2xhc3NNb2RlbCB9IGZyb20gXCIuL2NsYXNzLW1vZGVsLmpzXCI7XG5cbi8qKiBUeXBlLXNhZmUga2V5IGZvciBhIHZhbHVlIGluIHRoZSBGZWF0dXJlTW9kZWxTdG9yZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZU1vZGVsS2V5PFQ+IHtcblx0cmVhZG9ubHkgX3N5bTogc3ltYm9sO1xuXHRyZWFkb25seSBfdHlwZT86IFQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbEtleTxUPihuYW1lPzogc3RyaW5nKTogRmVhdHVyZU1vZGVsS2V5PFQ+IHtcblx0cmV0dXJuIHsgX3N5bTogU3ltYm9sKG5hbWUpIH07XG59XG5cbi8qKlxuICogSW1tdXRhYmxlIHR5cGVkIHN0b3JlIG9mIGZlYXR1cmUgbW9kZWxzLiBFYWNoIGZlYXR1cmUgZGVmaW5lcyBpdHMgb3duIGtleXNcbiAqICh0eXBlZCB2aWEgYG1vZGVsS2V5PFQ+KClgKSBhbmQgd3JpdGVzIHRvIC8gcmVhZHMgZnJvbSB0aGUgc3RvcmUgZHVyaW5nIHRoZVxuICogYGNvbmZpZ3VyZWAgYW5kIGByZW5kZXJgIHBoYXNlcy4gVGhlIHN0b3JlIGlzIHRoZSBvbmx5IG1lY2hhbmlzbSBieSB3aGljaFxuICogZmVhdHVyZXMgY29tbXVuaWNhdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBGZWF0dXJlTW9kZWxTdG9yZSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlOiBSZWFkb25seU1hcDxzeW1ib2wsIHVua25vd24+O1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihzdG9yZT86IFJlYWRvbmx5TWFwPHN5bWJvbCwgdW5rbm93bj4pIHtcblx0XHR0aGlzLl9zdG9yZSA9IHN0b3JlID8/IG5ldyBNYXAoKTtcblx0fVxuXG5cdHB1YmxpYyBnZXQ8VD4oa2V5OiBGZWF0dXJlTW9kZWxLZXk8VD4pOiBUIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5fc3RvcmUuZ2V0KGtleS5fc3ltKSBhcyBUIHwgdW5kZWZpbmVkO1xuXHR9XG5cblx0cHVibGljIHNldDxUPihrZXk6IEZlYXR1cmVNb2RlbEtleTxUPiwgdmFsdWU6IFQpOiBGZWF0dXJlTW9kZWxTdG9yZSB7XG5cdFx0Y29uc3QgbmV4dCA9IG5ldyBNYXAodGhpcy5fc3RvcmUpO1xuXHRcdG5leHQuc2V0KGtleS5fc3ltLCB2YWx1ZSk7XG5cdFx0cmV0dXJuIG5ldyBGZWF0dXJlTW9kZWxTdG9yZShuZXh0KTtcblx0fVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjYWZmb2xkT3B0aW9ucyB7XG5cdHllcz86IGJvb2xlYW47XG5cdHRlbXBsYXRlPzogXCJhcGlcIiB8IFwiY2xpXCI7XG5cdGRhdGFiYXNlPzogXCJ0eXBlb3JtXCI7XG5cdGlkcD86IFwiYXV0aDBcIjtcblx0cG9zdG1hbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhZmZvbGRDb250ZXh0IHtcblx0cHJvamVjdE5hbWU6IHN0cmluZztcblx0dGFyZ2V0RGlyOiBzdHJpbmc7XG5cdG9wdHM6IFNjYWZmb2xkT3B0aW9ucztcblx0dGVtcGxhdGU6IFwiYXBpXCIgfCBcImNsaVwiO1xuXHRtb2RlbHM6IEZlYXR1cmVNb2RlbFN0b3JlO1xuXHQvKiogTGl2ZSBjb250cm9sbGVyIG1vZGVscyB0aGF0IGZlYXR1cmVzIGNvbnRyaWJ1dGUgdG8gZHVyaW5nIGNvbmZpZ3VyZS4gKi9cblx0Y29udHJvbGxlcnM6IENsYXNzTW9kZWxbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRleHQoXG5cdHRhcmdldERpcjogc3RyaW5nLFxuXHRvcHRzOiBTY2FmZm9sZE9wdGlvbnMsXG5cdHRlbXBsYXRlOiBcImFwaVwiIHwgXCJjbGlcIiA9IFwiYXBpXCIsXG4pOiBTY2FmZm9sZENvbnRleHQge1xuXHRyZXR1cm4ge1xuXHRcdHByb2plY3ROYW1lOiBiYXNlbmFtZSh0YXJnZXREaXIpLFxuXHRcdHRhcmdldERpcixcblx0XHRvcHRzLFxuXHRcdHRlbXBsYXRlLFxuXHRcdG1vZGVsczogbmV3IEZlYXR1cmVNb2RlbFN0b3JlKCksXG5cdFx0Y29udHJvbGxlcnM6IFtdLFxuXHR9O1xufVxuIl0sIm5hbWVzIjpbImJhc2VuYW1lIiwibW9kZWxLZXkiLCJuYW1lIiwiX3N5bSIsIlN5bWJvbCIsIkZlYXR1cmVNb2RlbFN0b3JlIiwiX3N0b3JlIiwic3RvcmUiLCJNYXAiLCJnZXQiLCJrZXkiLCJzZXQiLCJ2YWx1ZSIsIm5leHQiLCJjcmVhdGVDb250ZXh0IiwidGFyZ2V0RGlyIiwib3B0cyIsInRlbXBsYXRlIiwicHJvamVjdE5hbWUiLCJtb2RlbHMiLCJjb250cm9sbGVycyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsUUFBUSxRQUFRLFlBQVk7QUFTckMsT0FBTyxTQUFTQyxTQUFZQyxJQUFhO0lBQ3hDLE9BQU87UUFBRUMsTUFBTUMsT0FBT0Y7SUFBTTtBQUM3QjtBQUVBOzs7OztDQUtDLEdBQ0QsT0FBTyxNQUFNRztJQUNLQyxPQUFxQztJQUV0RCxZQUFtQkMsS0FBb0MsQ0FBRTtRQUN4RCxJQUFJLENBQUNELE1BQU0sR0FBR0MsU0FBUyxJQUFJQztJQUM1QjtJQUVPQyxJQUFPQyxHQUF1QixFQUFpQjtRQUNyRCxPQUFPLElBQUksQ0FBQ0osTUFBTSxDQUFDRyxHQUFHLENBQUNDLElBQUlQLElBQUk7SUFDaEM7SUFFT1EsSUFBT0QsR0FBdUIsRUFBRUUsS0FBUSxFQUFxQjtRQUNuRSxNQUFNQyxPQUFPLElBQUlMLElBQUksSUFBSSxDQUFDRixNQUFNO1FBQ2hDTyxLQUFLRixHQUFHLENBQUNELElBQUlQLElBQUksRUFBRVM7UUFDbkIsT0FBTyxJQUFJUCxrQkFBa0JRO0lBQzlCO0FBQ0Q7QUFvQkEsT0FBTyxTQUFTQyxjQUNmQyxTQUFpQixFQUNqQkMsSUFBcUIsRUFDckJDLFdBQTBCLEtBQUs7SUFFL0IsT0FBTztRQUNOQyxhQUFhbEIsU0FBU2U7UUFDdEJBO1FBQ0FDO1FBQ0FDO1FBQ0FFLFFBQVEsSUFBSWQ7UUFDWmUsYUFBYSxFQUFFO0lBQ2hCO0FBQ0QifQ==
|