@akanjs/cli 0.0.141 → 0.0.143
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +294 -4
- package/cjs/index.js +171 -147
- package/esm/index.js +171 -147
- package/package.json +1 -1
- package/src/module/module.command.d.ts +7 -8
- package/src/module/module.runner.d.ts +4 -4
- package/src/module/module.script.d.ts +6 -6
package/cjs/index.js
CHANGED
|
@@ -980,6 +980,7 @@ var execEmoji = {
|
|
|
980
980
|
lib: "\u{1F527}",
|
|
981
981
|
pkg: "\u{1F4E6}",
|
|
982
982
|
dist: "\u{1F4BF}",
|
|
983
|
+
module: "\u2699\uFE0F",
|
|
983
984
|
default: "\u2708\uFE0F"
|
|
984
985
|
// for sys executor
|
|
985
986
|
};
|
|
@@ -1754,6 +1755,17 @@ var PkgExecutor = class _PkgExecutor extends Executor {
|
|
|
1754
1755
|
return pkgScanResult;
|
|
1755
1756
|
}
|
|
1756
1757
|
};
|
|
1758
|
+
var ModuleExecutor = class _ModuleExecutor extends Executor {
|
|
1759
|
+
sys;
|
|
1760
|
+
emoji = execEmoji.module;
|
|
1761
|
+
constructor({ sys: sys2, name }) {
|
|
1762
|
+
super(name, `${sys2.workspace.workspaceRoot}/${sys2.type}s/${sys2.name}/lib/${name}`);
|
|
1763
|
+
this.sys = sys2;
|
|
1764
|
+
}
|
|
1765
|
+
static from(sysExecutor, name) {
|
|
1766
|
+
return new _ModuleExecutor({ sys: sysExecutor, name });
|
|
1767
|
+
}
|
|
1768
|
+
};
|
|
1757
1769
|
|
|
1758
1770
|
// pkgs/@akanjs/devkit/src/constants.ts
|
|
1759
1771
|
var import_os = require("os");
|
|
@@ -2104,6 +2116,7 @@ var Lib = createArgMetaDecorator("Lib");
|
|
|
2104
2116
|
var Sys = createArgMetaDecorator("Sys");
|
|
2105
2117
|
var Exec = createArgMetaDecorator("Exec");
|
|
2106
2118
|
var Pkg = createArgMetaDecorator("Pkg");
|
|
2119
|
+
var Module = createArgMetaDecorator("Module");
|
|
2107
2120
|
var Workspace = createArgMetaDecorator("Workspace");
|
|
2108
2121
|
|
|
2109
2122
|
// pkgs/@akanjs/devkit/src/commandDecorators/commandMeta.ts
|
|
@@ -2284,6 +2297,38 @@ var getInternalArgumentValue = async (argMeta, value, workspace) => {
|
|
|
2284
2297
|
return PkgExecutor.from(workspace, value);
|
|
2285
2298
|
const pkgName = await (0, import_prompts3.select)({ message: `Select the ${sysType} name`, choices: pkgs });
|
|
2286
2299
|
return PkgExecutor.from(workspace, pkgName);
|
|
2300
|
+
} else if (sysType === "module") {
|
|
2301
|
+
if (value) {
|
|
2302
|
+
const [sysName, moduleName2] = value.split(":");
|
|
2303
|
+
if (appNames.includes(sysName)) {
|
|
2304
|
+
const app = AppExecutor.from(workspace, sysName);
|
|
2305
|
+
const modules2 = await app.getModules();
|
|
2306
|
+
if (modules2.includes(moduleName2))
|
|
2307
|
+
return ModuleExecutor.from(app, moduleName2);
|
|
2308
|
+
else
|
|
2309
|
+
throw new Error(`Invalid module name: ${moduleName2}`);
|
|
2310
|
+
} else if (libNames.includes(sysName)) {
|
|
2311
|
+
const lib = LibExecutor.from(workspace, sysName);
|
|
2312
|
+
const modules2 = await lib.getModules();
|
|
2313
|
+
if (modules2.includes(moduleName2))
|
|
2314
|
+
return ModuleExecutor.from(lib, moduleName2);
|
|
2315
|
+
} else
|
|
2316
|
+
throw new Error(`Invalid system name: ${sysName}`);
|
|
2317
|
+
}
|
|
2318
|
+
const { type, name } = await (0, import_prompts3.select)({
|
|
2319
|
+
message: `select the App or Lib name`,
|
|
2320
|
+
choices: [
|
|
2321
|
+
...appNames.map((name2) => ({ name: name2, value: { type: "app", name: name2 } })),
|
|
2322
|
+
...libNames.map((name2) => ({ name: name2, value: { type: "lib", name: name2 } }))
|
|
2323
|
+
]
|
|
2324
|
+
});
|
|
2325
|
+
const executor = type === "app" ? AppExecutor.from(workspace, name) : LibExecutor.from(workspace, name);
|
|
2326
|
+
const modules = await executor.getModules();
|
|
2327
|
+
const moduleName = await (0, import_prompts3.select)({
|
|
2328
|
+
message: `Select the module name`,
|
|
2329
|
+
choices: modules.map((name2) => ({ name: `${executor.name}:${name2}`, value: name2 }))
|
|
2330
|
+
});
|
|
2331
|
+
return ModuleExecutor.from(executor, moduleName);
|
|
2287
2332
|
} else
|
|
2288
2333
|
throw new Error(`Invalid system type: ${argMeta.type}`);
|
|
2289
2334
|
};
|
|
@@ -2315,11 +2360,18 @@ var runCommands = async (...commands) => {
|
|
|
2315
2360
|
programCommand = handleArgument(programCommand, argMeta);
|
|
2316
2361
|
else if (argMeta.type === "Workspace")
|
|
2317
2362
|
continue;
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2363
|
+
else if (argMeta.type === "Module") {
|
|
2364
|
+
programCommand = programCommand.argument(
|
|
2365
|
+
`[sys-name:module-name]`,
|
|
2366
|
+
`${argMeta.type} in this workspace (apps|libs)/<sys-name>/lib/<module-name>`
|
|
2367
|
+
);
|
|
2368
|
+
} else {
|
|
2369
|
+
const sysType = argMeta.type.toLowerCase();
|
|
2370
|
+
programCommand = programCommand.argument(
|
|
2371
|
+
`[${sysType}]`,
|
|
2372
|
+
`${sysType} in this workspace ${sysType}s/<${sysType}Name>`
|
|
2373
|
+
);
|
|
2374
|
+
}
|
|
2323
2375
|
}
|
|
2324
2376
|
programCommand = programCommand.option(`-v, --verbose [boolean]`, `verbose output`);
|
|
2325
2377
|
programCommand.action(async (...args) => {
|
|
@@ -2437,8 +2489,10 @@ var AiSession = class _AiSession {
|
|
|
2437
2489
|
Logger.raw(chunk);
|
|
2438
2490
|
}
|
|
2439
2491
|
} = {}) {
|
|
2440
|
-
if (!_AiSession.#chat)
|
|
2492
|
+
if (!_AiSession.#chat) {
|
|
2493
|
+
Logger.rawLog(import_chalk3.default.yellow("\u{1F916}akan-editor is not initialized. LLM configuration should be set first."));
|
|
2441
2494
|
await _AiSession.init();
|
|
2495
|
+
}
|
|
2442
2496
|
if (!_AiSession.#chat)
|
|
2443
2497
|
throw new Error("Failed to initialize the AI session");
|
|
2444
2498
|
const loader = new Spinner(`${_AiSession.#chat.model} is thinking...`, {
|
|
@@ -5524,7 +5578,6 @@ var CloudScript = class {
|
|
|
5524
5578
|
this.#runner.resetLlm();
|
|
5525
5579
|
}
|
|
5526
5580
|
async ask(question, workspace) {
|
|
5527
|
-
await AiSession.init();
|
|
5528
5581
|
const session = new AiSession();
|
|
5529
5582
|
await session.ask(question);
|
|
5530
5583
|
}
|
|
@@ -5656,9 +5709,6 @@ LibraryCommand = __decorateClass([
|
|
|
5656
5709
|
Commands()
|
|
5657
5710
|
], LibraryCommand);
|
|
5658
5711
|
|
|
5659
|
-
// pkgs/@akanjs/cli/src/module/module.command.ts
|
|
5660
|
-
var import_prompts8 = require("@inquirer/prompts");
|
|
5661
|
-
|
|
5662
5712
|
// pkgs/@akanjs/cli/src/module/module.script.ts
|
|
5663
5713
|
var import_fs10 = __toESM(require("fs"));
|
|
5664
5714
|
|
|
@@ -5973,8 +6023,8 @@ var requestUnit = ({
|
|
|
5973
6023
|
var ModuleRunner = class {
|
|
5974
6024
|
async createModule(workspace, sysType, sysName, moduleName, description) {
|
|
5975
6025
|
}
|
|
5976
|
-
removeModule(
|
|
5977
|
-
|
|
6026
|
+
removeModule(module2) {
|
|
6027
|
+
module2.sys.removeDir(`lib/${module2.name}`);
|
|
5978
6028
|
}
|
|
5979
6029
|
async createScalarTemplate(sys2, name) {
|
|
5980
6030
|
const akanConfig = await sys2.getConfig();
|
|
@@ -6016,20 +6066,20 @@ var ModuleRunner = class {
|
|
|
6016
6066
|
dictionary: { filename: `${name}.dictionary.ts`, content: sys2.readFile(`lib/${name}/${name}.dictionary.ts`) }
|
|
6017
6067
|
};
|
|
6018
6068
|
}
|
|
6019
|
-
async createComponentTemplate(
|
|
6020
|
-
const akanConfig = await
|
|
6021
|
-
const scanResult = await
|
|
6022
|
-
await
|
|
6023
|
-
basePath: `./lib/${name}`,
|
|
6024
|
-
template: `module
|
|
6069
|
+
async createComponentTemplate(module2, type) {
|
|
6070
|
+
const akanConfig = await module2.sys.getConfig();
|
|
6071
|
+
const scanResult = await module2.sys.scan({ akanConfig });
|
|
6072
|
+
await module2.sys.applyTemplate({
|
|
6073
|
+
basePath: `./lib/${module2.name}`,
|
|
6074
|
+
template: `module/${capitalize(module2.name)}.${capitalize(type)}.ts`,
|
|
6025
6075
|
scanResult,
|
|
6026
|
-
dict: { model: name, Model: capitalize(name), appName:
|
|
6076
|
+
dict: { model: module2.name, Model: capitalize(module2.name), appName: module2.sys.name }
|
|
6027
6077
|
});
|
|
6028
|
-
await
|
|
6078
|
+
await module2.sys.scan({ akanConfig });
|
|
6029
6079
|
return {
|
|
6030
6080
|
component: {
|
|
6031
|
-
filename: `${name}.${capitalize(type)}.tsx`,
|
|
6032
|
-
content:
|
|
6081
|
+
filename: `${module2.name}.${capitalize(type)}.tsx`,
|
|
6082
|
+
content: module2.sys.readFile(`lib/${module2.name}/${capitalize(module2.name)}.${capitalize(type)}.tsx`)
|
|
6033
6083
|
}
|
|
6034
6084
|
// constant: {
|
|
6035
6085
|
// filename: `${name}.constant.ts`,
|
|
@@ -6041,65 +6091,68 @@ var ModuleRunner = class {
|
|
|
6041
6091
|
// },
|
|
6042
6092
|
};
|
|
6043
6093
|
}
|
|
6044
|
-
async createModuleTemplate(
|
|
6045
|
-
const akanConfig = await
|
|
6046
|
-
const scanResult = await
|
|
6047
|
-
const names = (0, import_pluralize.default)(name);
|
|
6048
|
-
await
|
|
6049
|
-
basePath:
|
|
6094
|
+
async createModuleTemplate(module2) {
|
|
6095
|
+
const akanConfig = await module2.sys.getConfig();
|
|
6096
|
+
const scanResult = await module2.sys.scan({ akanConfig });
|
|
6097
|
+
const names = (0, import_pluralize.default)(module2.name);
|
|
6098
|
+
await module2.applyTemplate({
|
|
6099
|
+
basePath: `.`,
|
|
6050
6100
|
template: "module",
|
|
6051
6101
|
scanResult,
|
|
6052
6102
|
dict: {
|
|
6053
|
-
model: name,
|
|
6054
|
-
Model: capitalize(name),
|
|
6103
|
+
model: module2.name,
|
|
6104
|
+
Model: capitalize(module2.name),
|
|
6055
6105
|
models: names,
|
|
6056
6106
|
Models: capitalize(names),
|
|
6057
|
-
sysName:
|
|
6058
|
-
SysName: capitalize(
|
|
6107
|
+
sysName: module2.sys.name,
|
|
6108
|
+
SysName: capitalize(module2.sys.name)
|
|
6059
6109
|
}
|
|
6060
6110
|
});
|
|
6061
|
-
await
|
|
6111
|
+
await module2.sys.scan({ akanConfig });
|
|
6062
6112
|
return {
|
|
6063
|
-
constant: {
|
|
6113
|
+
constant: {
|
|
6114
|
+
filename: `${module2.name}.constant.ts`,
|
|
6115
|
+
content: module2.readFile(`${module2.name}.constant.ts`)
|
|
6116
|
+
},
|
|
6064
6117
|
dictionary: {
|
|
6065
|
-
filename: `${name}.dictionary.ts`,
|
|
6066
|
-
content:
|
|
6118
|
+
filename: `${module2.name}.dictionary.ts`,
|
|
6119
|
+
content: module2.readFile(`${module2.name}.dictionary.ts`)
|
|
6067
6120
|
},
|
|
6068
6121
|
service: {
|
|
6069
|
-
filename: `${name}.service.ts`,
|
|
6070
|
-
content:
|
|
6122
|
+
filename: `${module2.name}.service.ts`,
|
|
6123
|
+
content: module2.readFile(`${module2.name}.service.ts`)
|
|
6071
6124
|
},
|
|
6072
6125
|
store: {
|
|
6073
|
-
filename: `${name}.store.ts`,
|
|
6074
|
-
content:
|
|
6126
|
+
filename: `${module2.name}.store.ts`,
|
|
6127
|
+
content: module2.readFile(`${module2.name}.store.ts`)
|
|
6075
6128
|
},
|
|
6076
6129
|
signal: {
|
|
6077
|
-
filename: `${name}.signal.ts`,
|
|
6078
|
-
content:
|
|
6130
|
+
filename: `${module2.name}.signal.ts`,
|
|
6131
|
+
content: module2.readFile(`${module2.name}.signal.spec.ts`)
|
|
6079
6132
|
},
|
|
6080
6133
|
test: {
|
|
6081
|
-
filename: `${name}.test.ts`,
|
|
6082
|
-
content:
|
|
6134
|
+
filename: `${module2.name}.test.ts`,
|
|
6135
|
+
content: module2.readFile(`${module2.name}.signal.test.ts`)
|
|
6083
6136
|
},
|
|
6084
6137
|
unit: {
|
|
6085
|
-
filename: `${name}.Unit.tsx`,
|
|
6086
|
-
content:
|
|
6138
|
+
filename: `${module2.name}.Unit.tsx`,
|
|
6139
|
+
content: module2.readFile(`${module2.name}.Unit.tsx`)
|
|
6087
6140
|
},
|
|
6088
6141
|
view: {
|
|
6089
|
-
filename: `${name}.View.tsx`,
|
|
6090
|
-
content:
|
|
6142
|
+
filename: `${module2.name}.View.tsx`,
|
|
6143
|
+
content: module2.readFile(`${module2.name}.View.tsx`)
|
|
6091
6144
|
},
|
|
6092
6145
|
template: {
|
|
6093
|
-
filename: `${name}.Template.tsx`,
|
|
6094
|
-
content:
|
|
6146
|
+
filename: `${module2.name}.Template.tsx`,
|
|
6147
|
+
content: module2.readFile(`${module2.name}.Template.tsx`)
|
|
6095
6148
|
},
|
|
6096
6149
|
zone: {
|
|
6097
|
-
filename: `${name}.Zone.tsx`,
|
|
6098
|
-
content:
|
|
6150
|
+
filename: `${module2.name}.Zone.tsx`,
|
|
6151
|
+
content: module2.readFile(`${module2.name}.Zone.tsx`)
|
|
6099
6152
|
},
|
|
6100
6153
|
util: {
|
|
6101
|
-
filename: `${name}.Util.tsx`,
|
|
6102
|
-
content:
|
|
6154
|
+
filename: `${module2.name}.Util.tsx`,
|
|
6155
|
+
content: module2.readFile(`${module2.name}.Util.tsx`)
|
|
6103
6156
|
}
|
|
6104
6157
|
};
|
|
6105
6158
|
}
|
|
@@ -6108,17 +6161,17 @@ var ModuleRunner = class {
|
|
|
6108
6161
|
// pkgs/@akanjs/cli/src/module/module.script.ts
|
|
6109
6162
|
var ModuleScript = class {
|
|
6110
6163
|
#runner = new ModuleRunner();
|
|
6111
|
-
|
|
6112
|
-
|
|
6113
|
-
await this.#runner.createModuleTemplate(
|
|
6164
|
+
async createModuleTemplate(sys2, name) {
|
|
6165
|
+
const executor = ModuleExecutor.from(sys2, name);
|
|
6166
|
+
await this.#runner.createModuleTemplate(executor);
|
|
6114
6167
|
}
|
|
6115
6168
|
async createModule(sys2, name, description, schemaDescription) {
|
|
6116
|
-
await AiSession.init();
|
|
6117
6169
|
const session = new AiSession();
|
|
6118
6170
|
const [appNames, libNames] = await sys2.workspace.getSyss();
|
|
6119
6171
|
const moduleConstantExampleFiles = await sys2.workspace.getConstantFiles();
|
|
6120
6172
|
const moduleDictionaryExampleFiles = await sys2.workspace.getDictionaryFiles();
|
|
6121
|
-
const
|
|
6173
|
+
const executor = ModuleExecutor.from(sys2, name);
|
|
6174
|
+
const { constant, dictionary } = await this.#runner.createModuleTemplate(executor);
|
|
6122
6175
|
sys2.log(`Module ${name} created in ${sys2.type}s/${sys2.name}/lib/${name}`);
|
|
6123
6176
|
const constantContent = await session.editTypescript(
|
|
6124
6177
|
requestConstant({
|
|
@@ -6143,28 +6196,27 @@ var ModuleScript = class {
|
|
|
6143
6196
|
})
|
|
6144
6197
|
);
|
|
6145
6198
|
sys2.writeFile(`lib/${name}/${name}.dictionary.ts`, dictionaryContent);
|
|
6146
|
-
await this.createView(
|
|
6147
|
-
await this.createUnit(
|
|
6148
|
-
await this.createTemplate(
|
|
6199
|
+
await this.createView(executor);
|
|
6200
|
+
await this.createUnit(executor);
|
|
6201
|
+
await this.createTemplate(executor);
|
|
6149
6202
|
sys2.log(`Module ${name} created in ${sys2.type}s/${sys2.name}/lib/${name}`);
|
|
6150
6203
|
}
|
|
6151
6204
|
async createModule_(sys2, name, description, schemaDescription) {
|
|
6152
|
-
await AiSession.init();
|
|
6153
6205
|
const session = new AiSession();
|
|
6154
6206
|
const [appNames, libNames] = await sys2.workspace.getSyss();
|
|
6155
6207
|
const moduleConstantExampleFiles = await sys2.workspace.getConstantFiles();
|
|
6156
6208
|
const moduleDictionaryExampleFiles = await sys2.workspace.getDictionaryFiles();
|
|
6209
|
+
const executor = ModuleExecutor.from(sys2, name);
|
|
6157
6210
|
sys2.log(`Module ${name} created in ${sys2.type}s/${sys2.name}/lib/${name}`);
|
|
6158
|
-
await this.createView(
|
|
6159
|
-
await this.createUnit(
|
|
6160
|
-
await this.createTemplate(
|
|
6211
|
+
await this.createView(executor);
|
|
6212
|
+
await this.createUnit(executor);
|
|
6213
|
+
await this.createTemplate(executor);
|
|
6161
6214
|
sys2.log(`Module ${name} created in ${sys2.type}s/${sys2.name}/lib/${name}`);
|
|
6162
6215
|
}
|
|
6163
|
-
removeModule(
|
|
6164
|
-
this.#runner.removeModule(
|
|
6216
|
+
removeModule(module2) {
|
|
6217
|
+
this.#runner.removeModule(module2);
|
|
6165
6218
|
}
|
|
6166
6219
|
async createScalar(sys2, name, description, schemaDescription) {
|
|
6167
|
-
await AiSession.init();
|
|
6168
6220
|
const scalarConstantExampleFiles = await sys2.workspace.getScalarConstantFiles();
|
|
6169
6221
|
const { constant, dictionary } = await this.#runner.createScalarTemplate(sys2, name);
|
|
6170
6222
|
const session = new AiSession();
|
|
@@ -6184,19 +6236,18 @@ var ModuleScript = class {
|
|
|
6184
6236
|
}
|
|
6185
6237
|
async createTest(workspace, name) {
|
|
6186
6238
|
}
|
|
6187
|
-
async createTemplate(
|
|
6188
|
-
await
|
|
6189
|
-
const
|
|
6190
|
-
|
|
6191
|
-
(f) => !f.filepath.includes(`${name}.Template.tsx`)
|
|
6239
|
+
async createTemplate(module2) {
|
|
6240
|
+
const { component: template } = await this.#runner.createComponentTemplate(module2, "template");
|
|
6241
|
+
const templateExampleFiles = (await module2.sys.getTemplatesSourceCode()).filter(
|
|
6242
|
+
(f) => !f.filepath.includes(`${module2.name}.Template.tsx`)
|
|
6192
6243
|
);
|
|
6193
|
-
const Name = capitalize(name);
|
|
6194
|
-
const relatedCnsts = getRelatedCnsts(`${
|
|
6195
|
-
const constant = import_fs10.default.readFileSync(`${
|
|
6244
|
+
const Name = capitalize(module2.name);
|
|
6245
|
+
const relatedCnsts = getRelatedCnsts(`${module2.sys.cwdPath}/lib/${module2.name}/${module2.name}.constant.ts`);
|
|
6246
|
+
const constant = import_fs10.default.readFileSync(`${module2.sys.cwdPath}/lib/${module2.name}/${module2.name}.constant.ts`, "utf-8");
|
|
6196
6247
|
const session = new AiSession();
|
|
6197
6248
|
const promptRst = requestTemplate({
|
|
6198
|
-
sysName:
|
|
6199
|
-
modelName: name,
|
|
6249
|
+
sysName: module2.sys.name,
|
|
6250
|
+
modelName: module2.name,
|
|
6200
6251
|
ModelName: Name,
|
|
6201
6252
|
constant,
|
|
6202
6253
|
boilerplate: template.content,
|
|
@@ -6204,19 +6255,20 @@ var ModuleScript = class {
|
|
|
6204
6255
|
exampleFiles: randomPicks(templateExampleFiles, Math.min(20, templateExampleFiles.length))
|
|
6205
6256
|
});
|
|
6206
6257
|
const content = await session.editTypescript(promptRst);
|
|
6207
|
-
|
|
6208
|
-
}
|
|
6209
|
-
async createUnit(
|
|
6210
|
-
await
|
|
6211
|
-
const
|
|
6212
|
-
const
|
|
6213
|
-
|
|
6214
|
-
|
|
6215
|
-
const
|
|
6258
|
+
module2.writeFile(`${Name}.Template.tsx`, content);
|
|
6259
|
+
}
|
|
6260
|
+
async createUnit(module2) {
|
|
6261
|
+
const { component: unit } = await this.#runner.createComponentTemplate(module2, "unit");
|
|
6262
|
+
const Name = capitalize(module2.name);
|
|
6263
|
+
const unitExampleFiles = (await module2.sys.getUnitsSourceCode()).filter(
|
|
6264
|
+
(f) => !f.filepath.includes(`${module2.name}.Unit.tsx`)
|
|
6265
|
+
);
|
|
6266
|
+
const relatedCnsts = getRelatedCnsts(`${module2.sys.cwdPath}/lib/${module2.name}/${module2.name}.constant.ts`);
|
|
6267
|
+
const constant = import_fs10.default.readFileSync(`${module2.sys.cwdPath}/lib/${module2.name}/${module2.name}.constant.ts`, "utf-8");
|
|
6216
6268
|
const session = new AiSession();
|
|
6217
6269
|
const promptRst = requestUnit({
|
|
6218
|
-
sysName:
|
|
6219
|
-
modelName: name,
|
|
6270
|
+
sysName: module2.sys.name,
|
|
6271
|
+
modelName: module2.name,
|
|
6220
6272
|
ModelName: Name,
|
|
6221
6273
|
constant,
|
|
6222
6274
|
properties: relatedCnsts.map((r) => ({ key: r.key, source: r.source })),
|
|
@@ -6224,19 +6276,20 @@ var ModuleScript = class {
|
|
|
6224
6276
|
boilerplate: unit.content
|
|
6225
6277
|
});
|
|
6226
6278
|
const content = await session.editTypescript(promptRst);
|
|
6227
|
-
|
|
6228
|
-
}
|
|
6229
|
-
async createView(
|
|
6230
|
-
await
|
|
6231
|
-
const
|
|
6232
|
-
|
|
6233
|
-
|
|
6234
|
-
const
|
|
6235
|
-
const
|
|
6279
|
+
module2.writeFile(`${Name}.Unit.tsx`, content);
|
|
6280
|
+
}
|
|
6281
|
+
async createView(module2) {
|
|
6282
|
+
const { component: view } = await this.#runner.createComponentTemplate(module2, "view");
|
|
6283
|
+
const viewExampleFiles = (await module2.sys.getViewsSourceCode()).filter(
|
|
6284
|
+
(f) => !f.filepath.includes(`${module2.name}.View.tsx`)
|
|
6285
|
+
);
|
|
6286
|
+
const Name = capitalize(module2.name);
|
|
6287
|
+
const relatedCnsts = getRelatedCnsts(`${module2.sys.cwdPath}/lib/${module2.name}/${module2.name}.constant.ts`);
|
|
6288
|
+
const constant = import_fs10.default.readFileSync(`${module2.sys.cwdPath}/lib/${module2.name}/${module2.name}.constant.ts`, "utf-8");
|
|
6236
6289
|
const session = new AiSession();
|
|
6237
6290
|
const promptRst = requestView({
|
|
6238
|
-
sysName:
|
|
6239
|
-
modelName: name,
|
|
6291
|
+
sysName: module2.sys.name,
|
|
6292
|
+
modelName: module2.name,
|
|
6240
6293
|
ModelName: Name,
|
|
6241
6294
|
constant,
|
|
6242
6295
|
boilerplate: view.content,
|
|
@@ -6244,25 +6297,14 @@ var ModuleScript = class {
|
|
|
6244
6297
|
exampleFiles: randomPicks(viewExampleFiles, Math.min(20, viewExampleFiles.length))
|
|
6245
6298
|
});
|
|
6246
6299
|
const content = await session.editTypescript(promptRst);
|
|
6247
|
-
|
|
6300
|
+
module2.writeFile(`${Name}.View.tsx`, content);
|
|
6248
6301
|
}
|
|
6249
6302
|
};
|
|
6250
6303
|
|
|
6251
6304
|
// pkgs/@akanjs/cli/src/module/module.command.ts
|
|
6252
6305
|
var ModuleCommand = class {
|
|
6253
6306
|
moduleScript = new ModuleScript();
|
|
6254
|
-
async
|
|
6255
|
-
const libs = await sys2.getModules();
|
|
6256
|
-
const lib = await (0, import_prompts8.select)({
|
|
6257
|
-
message: "Select the lib",
|
|
6258
|
-
choices: libs.map((l) => `${sys2.name}/${l}`)
|
|
6259
|
-
}).catch((e) => {
|
|
6260
|
-
Logger.error("canceled");
|
|
6261
|
-
return null;
|
|
6262
|
-
});
|
|
6263
|
-
return lib?.split("/").pop();
|
|
6264
|
-
}
|
|
6265
|
-
async createModule(sys2, moduleName, description, schemaDescription, ai, workspace) {
|
|
6307
|
+
async createModule(sys2, moduleName, description, schemaDescription, ai) {
|
|
6266
6308
|
const name = lowerlize(moduleName.replace(/ /g, ""));
|
|
6267
6309
|
if (ai) {
|
|
6268
6310
|
await this.moduleScript.createModule(sys2, name, description, schemaDescription);
|
|
@@ -6270,32 +6312,20 @@ var ModuleCommand = class {
|
|
|
6270
6312
|
await this.moduleScript.createModuleTemplate(sys2, name);
|
|
6271
6313
|
}
|
|
6272
6314
|
}
|
|
6273
|
-
|
|
6274
|
-
|
|
6275
|
-
if (!name)
|
|
6276
|
-
return;
|
|
6277
|
-
this.moduleScript.removeModule(sys2, name);
|
|
6315
|
+
removeModule(module2) {
|
|
6316
|
+
this.moduleScript.removeModule(module2);
|
|
6278
6317
|
}
|
|
6279
|
-
async createScalar(sys2, scalarName, description, schemaDescription
|
|
6318
|
+
async createScalar(sys2, scalarName, description, schemaDescription) {
|
|
6280
6319
|
await this.moduleScript.createScalar(sys2, lowerlize(scalarName.replace(/ /g, "")), description, schemaDescription);
|
|
6281
6320
|
}
|
|
6282
|
-
async createView(
|
|
6283
|
-
|
|
6284
|
-
if (!name)
|
|
6285
|
-
return;
|
|
6286
|
-
await this.moduleScript.createView(sys2, name);
|
|
6321
|
+
async createView(module2) {
|
|
6322
|
+
await this.moduleScript.createView(module2);
|
|
6287
6323
|
}
|
|
6288
|
-
async createUnit(
|
|
6289
|
-
|
|
6290
|
-
if (!name)
|
|
6291
|
-
return;
|
|
6292
|
-
await this.moduleScript.createUnit(sys2, name);
|
|
6324
|
+
async createUnit(module2) {
|
|
6325
|
+
await this.moduleScript.createUnit(module2);
|
|
6293
6326
|
}
|
|
6294
|
-
async createTemplate(
|
|
6295
|
-
|
|
6296
|
-
if (!name)
|
|
6297
|
-
return;
|
|
6298
|
-
await this.moduleScript.createTemplate(sys2, name);
|
|
6327
|
+
async createTemplate(module2) {
|
|
6328
|
+
await this.moduleScript.createTemplate(module2);
|
|
6299
6329
|
}
|
|
6300
6330
|
};
|
|
6301
6331
|
__decorateClass([
|
|
@@ -6304,36 +6334,30 @@ __decorateClass([
|
|
|
6304
6334
|
__decorateParam(1, Argument("moduleName", { desc: "name of module" })),
|
|
6305
6335
|
__decorateParam(2, Option("description", { desc: "description of module" })),
|
|
6306
6336
|
__decorateParam(3, Option("schemaDescription", { desc: "schema description of module" })),
|
|
6307
|
-
__decorateParam(4, Option("ai", { type: "boolean", default: false, desc: "use ai to create module" }))
|
|
6308
|
-
__decorateParam(5, Workspace())
|
|
6337
|
+
__decorateParam(4, Option("ai", { type: "boolean", default: false, desc: "use ai to create module" }))
|
|
6309
6338
|
], ModuleCommand.prototype, "createModule", 1);
|
|
6310
6339
|
__decorateClass([
|
|
6311
6340
|
Target.Public(),
|
|
6312
|
-
__decorateParam(0,
|
|
6313
|
-
__decorateParam(1, Workspace())
|
|
6341
|
+
__decorateParam(0, Module())
|
|
6314
6342
|
], ModuleCommand.prototype, "removeModule", 1);
|
|
6315
6343
|
__decorateClass([
|
|
6316
6344
|
Target.Public(),
|
|
6317
6345
|
__decorateParam(0, Sys()),
|
|
6318
6346
|
__decorateParam(1, Argument("scalarName", { desc: "name of scalar module" })),
|
|
6319
6347
|
__decorateParam(2, Option("description", { desc: "description of scalar module" })),
|
|
6320
|
-
__decorateParam(3, Option("schemaDescription", { desc: "schema description of scalar module" }))
|
|
6321
|
-
__decorateParam(4, Workspace())
|
|
6348
|
+
__decorateParam(3, Option("schemaDescription", { desc: "schema description of scalar module" }))
|
|
6322
6349
|
], ModuleCommand.prototype, "createScalar", 1);
|
|
6323
6350
|
__decorateClass([
|
|
6324
6351
|
Target.Public(),
|
|
6325
|
-
__decorateParam(0,
|
|
6326
|
-
__decorateParam(1, Workspace())
|
|
6352
|
+
__decorateParam(0, Module())
|
|
6327
6353
|
], ModuleCommand.prototype, "createView", 1);
|
|
6328
6354
|
__decorateClass([
|
|
6329
6355
|
Target.Public(),
|
|
6330
|
-
__decorateParam(0,
|
|
6331
|
-
__decorateParam(1, Workspace())
|
|
6356
|
+
__decorateParam(0, Module())
|
|
6332
6357
|
], ModuleCommand.prototype, "createUnit", 1);
|
|
6333
6358
|
__decorateClass([
|
|
6334
6359
|
Target.Public(),
|
|
6335
|
-
__decorateParam(0,
|
|
6336
|
-
__decorateParam(1, Workspace())
|
|
6360
|
+
__decorateParam(0, Module())
|
|
6337
6361
|
], ModuleCommand.prototype, "createTemplate", 1);
|
|
6338
6362
|
ModuleCommand = __decorateClass([
|
|
6339
6363
|
Commands()
|