@akanjs/cli 3.0.0-beta.9 → 3.0.1
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/.build-stamp +1 -1
- package/CodeAgent-zfab7pkn.js +9 -0
- package/CodeAgentRpcHost-p7h6n2hp.js +7 -0
- package/CodeAgentRpcListener-7p7z5dd7.js +97 -0
- package/CodeTui-0zhnr0pw.js +1457 -0
- package/README.ko.md +83 -28
- package/README.md +70 -27
- package/TunnelShare-cwh9ezsm.js +9 -0
- package/{agent.command-0q17pnrs.js → agent.command-aja6z9mn.js} +8 -9
- package/akanCode.js +102 -0
- package/application.command-049ehgx3.js +246 -0
- package/{applicationBuildRunner-kxwbssgn.js → applicationBuildRunner-75n5rpwp.js} +121 -77
- package/buildBatch.proc.js +120 -32
- package/cloud.command-gw4kqxt8.js +95 -0
- package/cloud.script-c723cpcb.js +20 -0
- package/code.command-x9t6z5nw.js +154 -0
- package/commandManifest.json +1 -1
- package/consoleToStderr-h5bryj94.js +7 -0
- package/context.command-yfbe1rtd.js +48 -0
- package/context.runner-erfe68j5.js +21 -0
- package/{dependencyScanner-shs82ynp.js → dependencyScanner-06z2dmrr.js} +2 -2
- package/{devTui-m1atgkc9.js → devTui-q7k7bakd.js} +122 -40
- package/fileSys-wzzrntkw.js +9 -0
- package/guideline.command-kq9gp690.js +42 -0
- package/guidelines/agentRule/agentRule.instruction.md +154 -26
- package/guidelines/conventions/conventions.instruction.md +138 -48
- package/guidelines/mcpRule/mcpRule.instruction.md +7 -5
- package/guidelines/queryRule/queryRule.instruction.md +21 -7
- package/guidelines/runtimeRule/runtimeRule.instruction.md +291 -6
- package/guidelines/ssrRule/ssrRule.instruction.md +4 -2
- package/guidelines/transportRule/transportRule.instruction.md +10 -8
- package/guidelines/workspaceOnboarding/workspaceOnboarding.instruction.md +20 -0
- package/guidelines/workspaceRecipes/workspaceRecipes.instruction.md +66 -3
- package/incrementalBuilder.proc.js +564 -109
- package/{index-2tv3fdx4.js → index-150s07n8.js} +1230 -1459
- package/{index-vyvre9en.js → index-25fvrxmy.js} +6 -2
- package/{index-kcxmv48c.js → index-2ahj896a.js} +45 -79
- package/index-2wc41k5w.js +49 -0
- package/index-3hx1z96c.js +87 -0
- package/{index-q0y2jq9j.js → index-52w0fvh8.js} +21 -4
- package/{index-04bk599g.js → index-5g4rkrvt.js} +10 -17
- package/index-5pvxf7z0.js +53 -0
- package/index-5q14pwzd.js +69 -0
- package/{index-vxtad5bd.js → index-66yspb67.js} +5 -8
- package/index-7md2g9vw.js +6 -0
- package/index-7p4c0yer.js +1058 -0
- package/{index-d43r08tf.js → index-8b639zes.js} +77 -150
- package/{index-ktb5njgy.js → index-8kvy8qb4.js} +49 -99
- package/index-94s080qm.js +266 -0
- package/index-9dp031by.js +12 -0
- package/{index-0g7r8xz3.js → index-a37by9hn.js} +114 -232
- package/{index-k2j1hc4r.js → index-b95yhqjr.js} +12 -12
- package/{index-3d9y066c.js → index-bjwxs904.js} +9 -8
- package/{index-2xp0kfkt.js → index-br8pkrk1.js} +37 -25
- package/index-c14nsvnv.js +700 -0
- package/index-c6eggbee.js +123 -0
- package/index-d2242ksy.js +99 -0
- package/{index-92zztqy1.js → index-dy0jx9ay.js} +2 -17
- package/{index-a64esmtb.js → index-fkvb79qe.js} +523 -1022
- package/index-h54yj9wr.js +1119 -0
- package/{index-by5gpp8x.js → index-hj6w4ka1.js} +2 -1
- package/{index-y6n8nmny.js → index-kn5d4jmg.js} +75 -203
- package/index-m3xsb1ms.js +4300 -0
- package/{index-gyd220p2.js → index-mb59b8x0.js} +554 -577
- package/{index-j9yhg404.js → index-mzjb6zp4.js} +4 -7
- package/index-p6pbz9n5.js +25 -0
- package/{index-sj5vxr8f.js → index-qe71g4ze.js} +983 -898
- package/index-rfcz04w9.js +187 -0
- package/{index-hwkygn9s.js → index-senscydg.js} +331 -36
- package/{index-ffvk10zz.js → index-vs8mefhy.js} +107 -241
- package/index-wa5jbxj1.js +760 -0
- package/index-y5ga5w9t.js +2729 -0
- package/{index-9077wzd2.js → index-y7hx1ygz.js} +43 -26
- package/{index-h7yw2z9n.js → index-zzvvc845.js} +8 -14
- package/index.js +23 -22
- package/{library.command-qzzbj6d8.js → library.command-keqjevpp.js} +4 -5
- package/{localRegistry.command-vyrgg4xw.js → localRegistry.command-pydeq5zf.js} +23 -43
- package/{module.command-rq5hq3ax.js → module.command-dkrnqx3v.js} +8 -12
- package/{package.command-d9hd6v9n.js → package.command-wmc0ys5y.js} +6 -7
- package/package.json +15 -7
- package/{page.command-126d56te.js → page.command-tf3erhrv.js} +4 -5
- package/{primitive.command-taxd1538.js → primitive.command-7hqpegj4.js} +9 -23
- package/prompter-76k56b37.js +8 -0
- package/{quality.command-6gsna0a3.js → quality.command-8122axq3.js} +205 -377
- package/{recipeScanner-fpagtgc1.js → recipeScanner-4b69ybe0.js} +1 -1
- package/{repair.command-tq2dgy72.js → repair.command-mcy12h0n.js} +11 -35
- package/{routeSourceValidator-apyqw7wk.js → routeSourceValidator-7ycnfz0e.js} +0 -6
- package/{scalar.command-3bcmrrkv.js → scalar.command-vvvbzttc.js} +7 -11
- package/skills/akan-code/SKILL.md +130 -0
- package/skills/akan-debug/SKILL.md +42 -0
- package/skills/akan-deps/SKILL.md +50 -0
- package/skills/akan-err/SKILL.md +39 -0
- package/skills/akan-module/SKILL.md +45 -0
- package/skills/akan-scaffold/SKILL.md +76 -0
- package/skills/akan-scalar/SKILL.md +52 -0
- package/skills/akan-service/SKILL.md +34 -0
- package/skills/akan-store/SKILL.md +67 -0
- package/skills/akan-ui/SKILL.md +63 -0
- package/skills/akan-validate/SKILL.md +44 -0
- package/{subspace.command-eddzqpx3.js → subspace.command-pzvqfy5h.js} +53 -62
- package/templates/__scalar/__model__/__model__.abstract.md.template +8 -0
- package/templates/app/page/_index.tsx +257 -258
- package/templates/app/page/_layout.tsx +5 -1
- package/templates/app/page/_overrides.tsx +12 -0
- package/templates/app/page/styles.css.template +316 -14
- package/templates/app/public/apple-touch-icon.png +0 -0
- package/templates/app/public/favicon.ico +0 -0
- package/templates/app/public/jelly/cloud.webp +0 -0
- package/templates/app/public/jelly/comet.webp +0 -0
- package/templates/app/public/jelly/moon.webp +0 -0
- package/templates/app/public/jelly/planet.webp +0 -0
- package/templates/app/public/jelly/rocket.webp +0 -0
- package/templates/app/public/jelly/star.webp +0 -0
- package/templates/app/public/jelly/sugar.webp +0 -0
- package/templates/app/public/logo.png +0 -0
- package/templates/app/ui/Recipe/index.ts +9 -0
- package/templates/app/ui/Recipe/jellyButton.ts +63 -0
- package/templates/appSample/lib/__scalar/workHistory/workHistory.abstract.ts +8 -39
- package/templates/appSample/lib/_noti/noti.abstract.ts +6 -29
- package/templates/appSample/lib/task/Task.Unit.tsx +1 -1
- package/templates/appSample/lib/task/Task.Util.tsx +10 -13
- package/templates/appSample/lib/task/Task.View.tsx +2 -2
- package/templates/appSample/lib/task/Task.Zone.tsx +5 -2
- package/templates/appSample/lib/task/task.abstract.ts +12 -32
- package/templates/appSample/lib/task/task.signal.spec.ts +1 -15
- package/templates/appSample/lib/task/task.signal.test.ts +15 -1
- package/templates/appSample/lib/task/task.signal.ts +10 -8
- package/templates/appSample/page/task/[taskId]/_index.tsx +6 -6
- package/templates/appSample/page/task/[taskId]/edit.tsx +5 -4
- package/templates/appSample/page/task/_index.tsx +4 -3
- package/templates/appSample/page/task/_layout.tsx +1 -1
- package/templates/appSample/page/task/new.tsx +5 -4
- package/templates/appSample/srvkit/{AuthGuard.ts → guards.ts} +7 -4
- package/templates/appSample/srvkit/{SessionInternalArg.ts → internalArgs.ts} +6 -4
- package/templates/appSample/ui/GlobalLoading.tsx +2 -1
- package/templates/appSample/ui/QuantityControl.tsx +3 -3
- package/templates/client.ts +7 -30
- package/templates/crudPages/[__model__Id]/edit/page.tsx +2 -1
- package/templates/crudPages/[__model__Id]/page.tsx +2 -1
- package/templates/crudPages/new/page.tsx +2 -1
- package/templates/crudPages/page.tsx +2 -1
- package/templates/crudSinglePage/page.tsx +2 -1
- package/templates/lib/__lib/lib.dictionary.ts +0 -2
- package/templates/lib/__lib/lib.document.ts +0 -2
- package/templates/lib/sig.ts +8 -30
- package/templates/localDev/docker-compose.yaml.template +3 -14
- package/templates/module/__model__.signal.ts +12 -4
- package/templates/pkgRoot/tsconfig.json.template +2 -7
- package/templates/server.ts +1 -3
- package/templates/service/__model__.abstract.md.template +8 -0
- package/templates/workspaceRoot/.gitignore.template +0 -1
- package/templates/workspaceRoot/AGENTS.md.template +6 -0
- package/templates/workspaceRoot/package.json.template +1 -3
- package/tunnel.command-82zz5xnq.js +129 -0
- package/{typeChecker-3xgrzc2v.js → typeChecker-px49mezc.js} +1 -1
- package/typecheck.proc.js +1 -1
- package/workflow.command-y8x3kgjv.js +79 -0
- package/{workspace.command-06wvstgr.js → workspace.command-jvsb7brc.js} +79 -109
- package/abstractCompactor-gmkc0z8j.js +0 -102
- package/application.command-18y0s485.js +0 -204
- package/applicationReleasePackager-4yasxwv9.js +0 -244
- package/capacitorApp-36rbr858.js +0 -12
- package/cloud.command-av97ndh6.js +0 -94
- package/cloud.script-cm11xjdz.js +0 -20
- package/context.command-5v37ef3n.js +0 -81
- package/devTuiView-0hc2emhe.js +0 -9
- package/getDirname-dr3jz1xg.js +0 -7
- package/guideline.command-4pz9g1rt.js +0 -360
- package/guidelines/agentRule/agentRule.generate.json +0 -31
- package/guidelines/componentRule/componentRule.generate.json +0 -31
- package/guidelines/conventions/conventions.generate.json +0 -25
- package/guidelines/cssRule/cssRule.generate.json +0 -31
- package/guidelines/docPageRule/docPageRule.generate.json +0 -31
- package/guidelines/docPageRule/docPageRule.instruction.md +0 -25
- package/guidelines/docSyncRule/docSyncRule.generate.json +0 -31
- package/guidelines/docSyncRule/docSyncRule.instruction.md +0 -25
- package/guidelines/enumConstant/enumConstant.generate.json +0 -31
- package/guidelines/enumConstant/enumConstant.instruction.md +0 -28
- package/guidelines/fieldRule/fieldRule.generate.json +0 -31
- package/guidelines/framework/framework.generate.json +0 -32
- package/guidelines/mcpRule/mcpRule.generate.json +0 -35
- package/guidelines/modelConstant/modelConstant.generate.json +0 -32
- package/guidelines/modelDictionary/modelDictionary.generate.json +0 -32
- package/guidelines/modelDocument/modelDocument.generate.json +0 -31
- package/guidelines/modelService/modelService.generate.json +0 -31
- package/guidelines/modelSignal/modelSignal.generate.json +0 -31
- package/guidelines/modelStore/modelStore.generate.json +0 -31
- package/guidelines/modelTemplate/modelTemplate.generate.json +0 -31
- package/guidelines/modelUnit/modelUnit.generate.json +0 -31
- package/guidelines/modelUtil/modelUtil.generate.json +0 -31
- package/guidelines/modelView/modelView.generate.json +0 -31
- package/guidelines/modelZone/modelZone.generate.json +0 -31
- package/guidelines/moduleCodegen/moduleCodegen.generate.json +0 -31
- package/guidelines/moduleCodegen/moduleCodegen.instruction.md +0 -28
- package/guidelines/moduleOverview/moduleOverview.generate.json +0 -31
- package/guidelines/queryRule/queryRule.generate.json +0 -31
- package/guidelines/recipeRule/recipeRule.generate.json +0 -31
- package/guidelines/runtimeRule/runtimeRule.generate.json +0 -25
- package/guidelines/scalarConstant/scalarConstant.generate.json +0 -32
- package/guidelines/scalarDictionary/scalarDictionary.generate.json +0 -32
- package/guidelines/scalarModule/scalarModule.generate.json +0 -31
- package/guidelines/sharedUiUsage/sharedUiUsage.generate.json +0 -31
- package/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +0 -25
- package/guidelines/ssrRule/ssrRule.generate.json +0 -31
- package/guidelines/transportRule/transportRule.generate.json +0 -31
- package/guidelines/utilUiUsage/utilUiUsage.generate.json +0 -31
- package/guidelines/utilUiUsage/utilUiUsage.instruction.md +0 -25
- package/guidelines/workspaceOnboarding/workspaceOnboarding.generate.json +0 -24
- package/guidelines/workspaceRecipes/workspaceRecipes.generate.json +0 -33
- package/index-47pj3aee.js +0 -76
- package/index-5ystnsd5.js +0 -841
- package/index-6wwzs1bc.js +0 -7
- package/index-a17x49vg.js +0 -229
- package/index-m0xccmmm.js +0 -228
- package/index-meh558jy.js +0 -65
- package/index-rtxxan88.js +0 -471
- package/index-te54x9zm.js +0 -338
- package/index-w8kmx1b6.js +0 -2176
- package/index-wt7qrtd4.js +0 -1516
- package/templates/__scalar/__model__/__model__.abstract.md +0 -28
- package/templates/module/__model__.abstract.md +0 -28
- package/templates/service/__model__.abstract.md +0 -28
- package/templates/workspaceRoot/patches/react-dom@19.2.7.patch.template +0 -62
- package/workflow.command-gtdnzvbz.js +0 -108
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
runner,
|
|
4
|
+
script
|
|
5
|
+
} from "./index-a37by9hn.js";
|
|
6
|
+
import {
|
|
7
|
+
ModuleExecutor
|
|
8
|
+
} from "./index-150s07n8.js";
|
|
9
|
+
import {
|
|
10
|
+
sourceFile,
|
|
11
|
+
moduleSourcePaths,
|
|
12
|
+
generatedFilesForSync,
|
|
13
|
+
createPassedPrimitiveReport,
|
|
14
|
+
bilingualLabelForField,
|
|
15
|
+
bilingualDescriptionForField
|
|
16
|
+
} from "./index-mb59b8x0.js";
|
|
17
|
+
import {
|
|
18
|
+
PageScript
|
|
19
|
+
} from "./index-25fvrxmy.js";
|
|
20
|
+
import {
|
|
21
|
+
pluralizeName
|
|
22
|
+
} from "./index-nz8prx9g.js";
|
|
23
|
+
|
|
24
|
+
// pkgs/@akanjs/cli/module/module.script.ts
|
|
25
|
+
import { capitalize as capitalize2 } from "akanjs/common";
|
|
26
|
+
|
|
27
|
+
// pkgs/@akanjs/cli/module/module.runner.ts
|
|
28
|
+
import { capitalize } from "akanjs/common";
|
|
29
|
+
var purposeByModule = {
|
|
30
|
+
budget: "Budget represents planned or actual money allocated inside the app.",
|
|
31
|
+
project: "Project represents a project workspace or business initiative managed by the app.",
|
|
32
|
+
task: "Task represents work items that move through the app workflow."
|
|
33
|
+
};
|
|
34
|
+
var moduleAbstractContent = (moduleName, sharedGuards) => {
|
|
35
|
+
const title = capitalize(moduleName);
|
|
36
|
+
const noun = bilingualLabelForField(moduleName).en.toLowerCase();
|
|
37
|
+
const purpose = purposeByModule[moduleName] ?? `${title} represents ${noun} records managed by the app.`;
|
|
38
|
+
const writeRule = sharedGuards ? `Anyone may read a ${noun}; only an admin creates, updates or removes one.` : `Anyone may read a ${noun}; nobody creates, updates or removes one until the slice names a guard.`;
|
|
39
|
+
return `# ${moduleName} Abstract
|
|
40
|
+
${purpose}
|
|
41
|
+
|
|
42
|
+
## Rules
|
|
43
|
+
- ${writeRule}
|
|
44
|
+
- Removal is soft: a removed ${noun} keeps its row with \`removedAt\` set.
|
|
45
|
+
`;
|
|
46
|
+
};
|
|
47
|
+
var moduleFileKeys = [
|
|
48
|
+
"abstract",
|
|
49
|
+
"constant",
|
|
50
|
+
"dictionary",
|
|
51
|
+
"service",
|
|
52
|
+
"store",
|
|
53
|
+
"signal",
|
|
54
|
+
"unit",
|
|
55
|
+
"view",
|
|
56
|
+
"template",
|
|
57
|
+
"zone",
|
|
58
|
+
"util"
|
|
59
|
+
];
|
|
60
|
+
|
|
61
|
+
class ModuleRunner extends runner("module") {
|
|
62
|
+
async createService(module) {
|
|
63
|
+
const serviceName = module.name.replace(/^_+/, "");
|
|
64
|
+
await module.applyTemplate({
|
|
65
|
+
basePath: `.`,
|
|
66
|
+
template: "service",
|
|
67
|
+
dict: { model: serviceName, sysName: module.sys.name }
|
|
68
|
+
});
|
|
69
|
+
return await this.#readFiles(module, {
|
|
70
|
+
abstract: `${serviceName}.abstract.md`,
|
|
71
|
+
dictionary: `${serviceName}.dictionary.ts`,
|
|
72
|
+
service: `${serviceName}.service.ts`,
|
|
73
|
+
signal: `${serviceName}.signal.ts`,
|
|
74
|
+
store: `${serviceName}.store.ts`
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
async#readFiles(module, filenames) {
|
|
78
|
+
const files = await Promise.all(Object.entries(filenames).map(async ([key, filename]) => [
|
|
79
|
+
key,
|
|
80
|
+
{ filename, content: await module.readFile(filename) }
|
|
81
|
+
]));
|
|
82
|
+
return Object.fromEntries(files);
|
|
83
|
+
}
|
|
84
|
+
async removeModule(module) {
|
|
85
|
+
await module.sys.removeDir(`lib/${module.name}`);
|
|
86
|
+
}
|
|
87
|
+
async#hasSharedGuards(module) {
|
|
88
|
+
const { sys } = module;
|
|
89
|
+
if (sys.type === "lib" && sys.name === "shared")
|
|
90
|
+
return true;
|
|
91
|
+
if (!await sys.exists("lib/srv.ts"))
|
|
92
|
+
return false;
|
|
93
|
+
return (await sys.readFile("lib/srv.ts")).includes('"@libs/shared/lib/srv"');
|
|
94
|
+
}
|
|
95
|
+
async createComponentTemplate(module, type) {
|
|
96
|
+
await module.sys.applyTemplate({
|
|
97
|
+
basePath: `./lib/${module.name}`,
|
|
98
|
+
template: `module/__Model__.${capitalize(type)}.tsx`,
|
|
99
|
+
dict: { model: module.name, sysName: module.sys.name, sysType: module.sys.type }
|
|
100
|
+
});
|
|
101
|
+
return {
|
|
102
|
+
component: {
|
|
103
|
+
filename: `${capitalize(module.name)}.${capitalize(type)}.tsx`,
|
|
104
|
+
content: await module.sys.readFile(`lib/${module.name}/${capitalize(module.name)}.${capitalize(type)}.tsx`)
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
async createModuleTemplate(module) {
|
|
109
|
+
const names = pluralizeName(module.name);
|
|
110
|
+
const modelLabel = bilingualLabelForField(module.name);
|
|
111
|
+
const modelDescription = bilingualDescriptionForField(module.name);
|
|
112
|
+
const paths = moduleSourcePaths(module.name);
|
|
113
|
+
const filenames = Object.fromEntries(moduleFileKeys.map((key) => [key, paths[key].replace(`lib/${module.name}/`, "")]));
|
|
114
|
+
const sharedGuards = await this.#hasSharedGuards(module);
|
|
115
|
+
await module.applyTemplate({
|
|
116
|
+
basePath: `.`,
|
|
117
|
+
template: "module",
|
|
118
|
+
options: { sharedGuards },
|
|
119
|
+
dict: {
|
|
120
|
+
model: module.name,
|
|
121
|
+
models: names,
|
|
122
|
+
sysName: module.sys.name,
|
|
123
|
+
sysType: module.sys.type,
|
|
124
|
+
modelLabelEn: modelLabel.en,
|
|
125
|
+
modelLabelKo: modelLabel.ko,
|
|
126
|
+
modelDescEn: modelDescription.en,
|
|
127
|
+
modelDescKo: modelDescription.ko
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
await module.writeFile(filenames.abstract, moduleAbstractContent(module.name, sharedGuards));
|
|
131
|
+
return await this.#readFiles(module, filenames);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// pkgs/@akanjs/cli/module/module.script.ts
|
|
136
|
+
var moduleChangedFiles = (sys, moduleName, files) => Object.values(files).map((file) => sourceFile(sys, `lib/${moduleName}/${file.filename}`, "create", "Module source file was created."));
|
|
137
|
+
|
|
138
|
+
class ModuleScript extends script("module", [ModuleRunner, PageScript]) {
|
|
139
|
+
async createModuleTemplate(sys, name, { page = false } = {}) {
|
|
140
|
+
const mod = ModuleExecutor.from(sys, name);
|
|
141
|
+
const files = await this.moduleRunner.createModuleTemplate(mod);
|
|
142
|
+
if (page && sys.type === "app")
|
|
143
|
+
await this.pageScript.createCrudPage(mod, { app: sys, basePath: null, single: false });
|
|
144
|
+
await sys.scan();
|
|
145
|
+
return createPassedPrimitiveReport({
|
|
146
|
+
command: "create-module",
|
|
147
|
+
changedFiles: moduleChangedFiles(sys, name, files),
|
|
148
|
+
generatedFiles: generatedFilesForSync(sys, "Generated files were refreshed after module creation."),
|
|
149
|
+
target: sys.name
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
async removeModule(mod) {
|
|
153
|
+
await this.moduleRunner.removeModule(mod);
|
|
154
|
+
}
|
|
155
|
+
async createService(sys, name) {
|
|
156
|
+
const service = ModuleExecutor.from(sys, `_${name}`);
|
|
157
|
+
const files = await this.moduleRunner.createService(service);
|
|
158
|
+
await sys.scan();
|
|
159
|
+
return createPassedPrimitiveReport({
|
|
160
|
+
command: "create-service",
|
|
161
|
+
changedFiles: moduleChangedFiles(sys, `_${name}`, files),
|
|
162
|
+
generatedFiles: generatedFilesForSync(sys, "Generated files were refreshed after service creation."),
|
|
163
|
+
target: sys.name
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
async createTemplate(mod) {
|
|
167
|
+
return await this.#createComponent(mod, "template");
|
|
168
|
+
}
|
|
169
|
+
async createUnit(mod) {
|
|
170
|
+
return await this.#createComponent(mod, "unit");
|
|
171
|
+
}
|
|
172
|
+
async createView(mod) {
|
|
173
|
+
return await this.#createComponent(mod, "view");
|
|
174
|
+
}
|
|
175
|
+
async#createComponent(mod, type) {
|
|
176
|
+
const { component } = await this.moduleRunner.createComponentTemplate(mod, type);
|
|
177
|
+
return createPassedPrimitiveReport({
|
|
178
|
+
command: `create-${type}`,
|
|
179
|
+
changedFiles: [
|
|
180
|
+
sourceFile(mod.sys, `lib/${mod.name}/${component.filename}`, "create", `${capitalize2(type)} UI source was created.`)
|
|
181
|
+
],
|
|
182
|
+
target: mod.sys.name
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export { ModuleScript };
|