@powerhousedao/codegen 0.28.1 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/create-lib/index.js +2 -2
- package/dist/create-lib/index.js.map +1 -1
- package/dist/create-lib/init.js +56 -11
- package/dist/create-lib/init.js.map +1 -1
- package/dist/create-lib/{command.js → utils.js} +2 -2
- package/dist/create-lib/utils.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/utils/cli.js +3 -4
- package/dist/utils/cli.js.map +1 -1
- package/dist/utils/index.js +2 -2
- package/dist/utils.d.ts +34 -5
- package/package.json +2 -2
- package/dist/create-lib/command.js.map +0 -1
package/dist/create-lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/create-lib/index.ts"],"names":[],"mappings":";;;AAIA,
|
|
1
|
+
{"version":3,"sources":["../../src/create-lib/index.ts"],"names":[],"mappings":";;;AAIA,OAAQ,EAAA,CAAE,KAAM,CAAA,CAAC,CAAe,KAAA;AAC9B,EAAM,MAAA,CAAA;AACR,CAAC,CAAA","file":"index.js","sourcesContent":["#! /usr/bin/env node\n\nimport { initCli } from \"./init\";\n\ninitCli().catch((e: unknown) => {\n throw e;\n});\n"]}
|
package/dist/create-lib/init.js
CHANGED
|
@@ -2,13 +2,26 @@ import { execSync } from 'child_process';
|
|
|
2
2
|
import enquirer from 'enquirer';
|
|
3
3
|
import fs from 'node:fs';
|
|
4
4
|
import path from 'path';
|
|
5
|
-
import { parseArgs,
|
|
6
|
-
import { getPackageManager } from './
|
|
7
|
-
import { DEFAULT_CONFIG } from '@powerhousedao/config/powerhouse';
|
|
5
|
+
import { parseArgs, promptDirectories } from '../utils/cli.js';
|
|
6
|
+
import { getPackageManager } from './utils.js';
|
|
8
7
|
|
|
9
8
|
const BOILERPLATE_REPO = "https://github.com/powerhouse-inc/document-model-boilerplate.git";
|
|
10
9
|
const packageManager = getPackageManager(process.env.npm_config_user_agent);
|
|
11
10
|
const isNpm = packageManager === "npm";
|
|
11
|
+
const defaultDirectories = {
|
|
12
|
+
documentModelsDir: "./document-models",
|
|
13
|
+
editorsDir: "./editors"
|
|
14
|
+
};
|
|
15
|
+
const createCommandSpec = {
|
|
16
|
+
"--name": String,
|
|
17
|
+
"--project-name": "--name",
|
|
18
|
+
"--version": String,
|
|
19
|
+
"--interactive": Boolean,
|
|
20
|
+
"--dev": Boolean,
|
|
21
|
+
"--staging": Boolean,
|
|
22
|
+
"-p": "--name",
|
|
23
|
+
"-v": "--version"
|
|
24
|
+
};
|
|
12
25
|
const { prompt } = enquirer;
|
|
13
26
|
function buildPackageJson(appPath, projectName) {
|
|
14
27
|
const packageJson = JSON.parse(
|
|
@@ -54,9 +67,36 @@ function runCmd(command) {
|
|
|
54
67
|
console.log("\x1B[31m", error, "\x1B[0m");
|
|
55
68
|
}
|
|
56
69
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
70
|
+
function parseVersion(args) {
|
|
71
|
+
if (args.version) {
|
|
72
|
+
return args.version;
|
|
73
|
+
}
|
|
74
|
+
if (args.dev) {
|
|
75
|
+
return "dev";
|
|
76
|
+
} else if (args.staging) {
|
|
77
|
+
return "staging";
|
|
78
|
+
} else {
|
|
79
|
+
return "main";
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function parseVersionArgs(args) {
|
|
83
|
+
return parseVersion({
|
|
84
|
+
version: args["--version"],
|
|
85
|
+
dev: args["--dev"],
|
|
86
|
+
staging: args["--staging"]
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
function initCli() {
|
|
90
|
+
const args = parseArgs(process.argv.slice(2), createCommandSpec);
|
|
91
|
+
const options = {
|
|
92
|
+
name: args["--name"] ?? args._.shift(),
|
|
93
|
+
interactive: args["--interactive"] ?? false,
|
|
94
|
+
version: parseVersionArgs(args)
|
|
95
|
+
};
|
|
96
|
+
return init(options);
|
|
97
|
+
}
|
|
98
|
+
async function init(options) {
|
|
99
|
+
let projectName = options.name;
|
|
60
100
|
if (!projectName) {
|
|
61
101
|
const result = await prompt([
|
|
62
102
|
{
|
|
@@ -73,7 +113,10 @@ async function init(_args) {
|
|
|
73
113
|
}
|
|
74
114
|
projectName = result.projectName;
|
|
75
115
|
}
|
|
76
|
-
const {
|
|
116
|
+
const {
|
|
117
|
+
documentModelsDir,
|
|
118
|
+
editorsDir
|
|
119
|
+
} = options.interactive ? await promptDirectories(defaultDirectories) : defaultDirectories;
|
|
77
120
|
const appPath = path.join(process.cwd(), projectName);
|
|
78
121
|
try {
|
|
79
122
|
fs.mkdirSync(appPath);
|
|
@@ -89,12 +132,14 @@ async function init(_args) {
|
|
|
89
132
|
}
|
|
90
133
|
process.exit(1);
|
|
91
134
|
}
|
|
92
|
-
createProject(projectName, documentModelsDir, editorsDir);
|
|
135
|
+
createProject(projectName, documentModelsDir, editorsDir, options.version);
|
|
93
136
|
}
|
|
94
|
-
function createProject(projectName, documentModelsDir, editorsDir) {
|
|
137
|
+
function createProject(projectName, documentModelsDir, editorsDir, version = "main") {
|
|
95
138
|
try {
|
|
96
139
|
console.log("\x1B[33m", "Downloading the project structure...", "\x1B[0m");
|
|
97
|
-
runCmd(
|
|
140
|
+
runCmd(
|
|
141
|
+
`git clone --depth 1 -b ${version} ${BOILERPLATE_REPO} ${projectName}`
|
|
142
|
+
);
|
|
98
143
|
const appPath = path.join(process.cwd(), projectName);
|
|
99
144
|
process.chdir(appPath);
|
|
100
145
|
console.log("\x1B[34m", "Installing dependencies...", "\x1B[0m");
|
|
@@ -127,6 +172,6 @@ function createProject(projectName, documentModelsDir, editorsDir) {
|
|
|
127
172
|
}
|
|
128
173
|
}
|
|
129
174
|
|
|
130
|
-
export { init };
|
|
175
|
+
export { createCommandSpec, init, initCli, parseVersion };
|
|
131
176
|
//# sourceMappingURL=init.js.map
|
|
132
177
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/create-lib/init.ts"],"names":[],"mappings":";;;;;;;;AAWA,MAAM,gBACJ,GAAA,kEAAA;AAEF,MAAM,cAAiB,GAAA,iBAAA,CAAkB,OAAQ,CAAA,GAAA,CAAI,qBAAqB,CAAA;AAC1E,MAAM,QAAQ,cAAmB,KAAA,KAAA;AAEjC,MAAM,EAAE,QAAW,GAAA,QAAA;AAEnB,SAAS,gBAAA,CAAiB,SAAiB,WAAqB,EAAA;AAC9D,EAAA,MAAM,cAAc,IAAK,CAAA,KAAA;AAAA,IACvB,GAAG,YAAa,CAAA,IAAA,CAAK,KAAK,OAAS,EAAA,cAAc,GAAG,OAAO;AAAA,GAC7D;AACA,EAAA,MAAM,UAAa,GAAA;AAAA,IACjB,GAAG,WAAA;AAAA,IACH,IAAM,EAAA,WAAA;AAAA,IACN,OAAS,EAAA,OAAA;AAAA,IACT,WAAa,EAAA;AAAA,GACf;AAEA,EAAG,EAAA,CAAA,aAAA;AAAA,IACD,IAAA,CAAK,IAAK,CAAA,OAAA,EAAS,cAAc,CAAA;AAAA,IACjC,IAAK,CAAA,SAAA,CAAU,UAAY,EAAA,IAAA,EAAM,CAAC,CAAA;AAAA,IAClC;AAAA,GACF;AACF;AAEA,SAAS,qBAAA,CACP,OACA,EAAA,iBAAA,EACA,UACA,EAAA;AACA,EAAA,MAAM,QAAW,GAAA,IAAA,CAAK,IAAK,CAAA,OAAA,EAAS,wBAAwB,CAAA;AAC5D,EAAA,MAAM,cAAc,IAAK,CAAA,KAAA,CAAM,GAAG,YAAa,CAAA,QAAA,EAAU,OAAO,CAAC,CAAA;AAIjE,EAAA,MAAM,UAAa,GAAA;AAAA,IACjB,GAAG,WAAA;AAAA,IACH,iBAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAG,EAAA,CAAA,aAAA,CAAc,UAAU,IAAK,CAAA,SAAA,CAAU,YAAY,IAAM,EAAA,CAAC,GAAG,MAAM,CAAA;AACxE;AAEA,SAAS,UAAA,CACP,OACA,EAAA,iBAAA,EACA,UACA,EAAA;AACA,EAAG,EAAA,CAAA,aAAA;AAAA,IACD,IAAA,CAAK,IAAK,CAAA,OAAA,EAAS,UAAU,CAAA;AAAA,IAC7B,2CAA2C,iBAAiB,CAAA;AAAA,yCAAA,EACrB,UAAU,CAAA;;AAAA;AAAA,6DAAA,CAAA;AAAA,IAIjD;AAAA,GACF;AACF;AAEA,SAAS,OAAO,OAAiB,EAAA;AAC/B,EAAI,IAAA;AACF,IAAA,QAAA,CAAS,OAAS,EAAA,EAAE,KAAO,EAAA,SAAA,EAAW,CAAA;AAAA,WAC/B,KAAO,EAAA;AACd,IAAQ,OAAA,CAAA,GAAA,CAAI,UAAY,EAAA,KAAA,EAAO,SAAS,CAAA;AAAA;AAE5C;AAEA,eAAsB,KAAK,KAAuC,EAAA;AAChE,EAAM,MAAA,IAAA,GAAO,SAAS,SAAU,CAAA,OAAA,CAAQ,KAAK,KAAM,CAAA,CAAC,GAAG,UAAU,CAAA;AAGjE,EAAI,IAAA,WAAA,GAAc,IAAK,CAAA,CAAA,CAAE,KAAM,EAAA;AAC/B,EAAA,IAAI,CAAC,WAAa,EAAA;AAChB,IAAM,MAAA,MAAA,GAAS,MAAM,MAAgC,CAAA;AAAA,MACnD;AAAA,QACE,IAAM,EAAA,OAAA;AAAA,QACN,IAAM,EAAA,aAAA;AAAA,QACN,OAAS,EAAA,2BAAA;AAAA,QACT,QAAU,EAAA,IAAA;AAAA,QACV,MAAA,EAAQ,CAAC,KAAA,KAAU,KAAM,CAAA,WAAA,GAAc,IAAK,EAAA,CAAE,OAAQ,CAAA,MAAA,EAAQ,GAAG;AAAA;AACnE,KACD,CAAA;AACD,IAAI,IAAA,CAAC,OAAO,WAAa,EAAA;AACvB,MAAQ,OAAA,CAAA,GAAA,CAAI,YAAY,uCAAuC,CAAA;AAC/D,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA;AAEhB,IAAA,WAAA,GAAc,MAAO,CAAA,WAAA;AAAA;AAIvB,EAAM,MAAA,EAAE,mBAAmB,UAAW,EAAA,GAAI,KAAK,eAAe,CAAA,GAC1D,MAAM,iBAAA,EACN,GAAA,cAAA;AAEJ,EAAA,MAAM,UAAU,IAAK,CAAA,IAAA,CAAK,OAAQ,CAAA,GAAA,IAAO,WAAW,CAAA;AAEpD,EAAI,IAAA;AACF,IAAA,EAAA,CAAG,UAAU,OAAO,CAAA;AAAA,WACb,GAAK,EAAA;AACZ,IAAK,IAAA,GAAA,CAAyB,SAAS,QAAU,EAAA;AAC/C,MAAQ,OAAA,CAAA,GAAA;AAAA,QACN,UAAA;AAAA,QACA,cAAc,WAAW,CAAA,sEAAA,CAAA;AAAA,QACzB;AAAA,OACF;AAAA,KACK,MAAA;AACL,MAAA,OAAA,CAAQ,IAAI,GAAG,CAAA;AAAA;AAEjB,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA;AAIhB,EAAc,aAAA,CAAA,WAAA,EAAa,mBAAmB,UAAU,CAAA;AAC1D;AAEA,SAAS,aAAA,CACP,WACA,EAAA,iBAAA,EACA,UACA,EAAA;AACA,EAAI,IAAA;AACF,IAAQ,OAAA,CAAA,GAAA,CAAI,UAAY,EAAA,sCAAA,EAAwC,SAAS,CAAA;AACzE,IAAA,MAAA,CAAO,CAAuB,oBAAA,EAAA,gBAAgB,CAAI,CAAA,EAAA,WAAW,CAAE,CAAA,CAAA;AAE/D,IAAA,MAAM,UAAU,IAAK,CAAA,IAAA,CAAK,OAAQ,CAAA,GAAA,IAAO,WAAW,CAAA;AACpD,IAAA,OAAA,CAAQ,MAAM,OAAO,CAAA;AAErB,IAAQ,OAAA,CAAA,GAAA,CAAI,UAAY,EAAA,4BAAA,EAA8B,SAAS,CAAA;AAC/D,IAAO,MAAA,CAAA,CAAA,EAAG,cAAc,CAAU,QAAA,CAAA,CAAA;AAElC,IAAG,EAAA,CAAA,MAAA,CAAO,KAAK,IAAK,CAAA,OAAA,EAAS,QAAQ,CAAG,EAAA,EAAE,SAAW,EAAA,IAAA,EAAM,CAAA;AAC3D,IAAA,MAAA,CAAO,UAAU,CAAA;AAEjB,IAAI,IAAA;AACF,MAAA,EAAA,CAAG,SAAU,CAAA,IAAA,CAAK,IAAK,CAAA,OAAA,EAAS,iBAAiB,CAAC,CAAA;AAClD,MAAA,EAAA,CAAG,cAAc,IAAK,CAAA,IAAA,CAAK,SAAS,iBAAmB,EAAA,UAAU,GAAG,EAAE,CAAA;AACtE,MAAA,EAAA,CAAG,SAAU,CAAA,IAAA,CAAK,IAAK,CAAA,OAAA,EAAS,UAAU,CAAC,CAAA;AAC3C,MAAA,EAAA,CAAG,cAAc,IAAK,CAAA,IAAA,CAAK,SAAS,UAAY,EAAA,UAAU,GAAG,EAAE,CAAA;AAAA,aACxD,KAAO,EAAA;AACd,MAAA,IAAI,CAAE,KAAA,CAAgB,OAAQ,CAAA,QAAA,CAAS,QAAQ,CAAG,EAAA;AAChD,QAAM,MAAA,KAAA;AAAA;AACR;AAEF,IAAA,gBAAA,CAAiB,SAAS,WAAW,CAAA;AACrC,IAAsB,qBAAA,CAAA,OAAA,EAAS,mBAAmB,UAAU,CAAA;AAC5D,IAAW,UAAA,CAAA,OAAA,EAAS,mBAAmB,UAAU,CAAA;AAEjD,IAAQ,OAAA,CAAA,GAAA,CAAI,UAAY,EAAA,2BAAA,EAA6B,SAAS,CAAA;AAC9D,IAAA,OAAA,CAAQ,GAAI,EAAA;AAEZ,IAAQ,OAAA,CAAA,GAAA,CAAI,YAAY,0BAA0B,CAAA;AAClD,IAAQ,OAAA,CAAA,GAAA,CAAI,CAAU,OAAA,EAAA,WAAW,CAAE,CAAA,CAAA;AACnC,IAAQ,OAAA,CAAA,GAAA;AAAA,MACN,KAAA,GAAQ,sBAAyB,GAAA,CAAA,IAAA,EAAO,cAAc,CAAA,SAAA,CAAA;AAAA,MACtD;AAAA,KACF;AAAA,WACO,KAAO,EAAA;AACd,IAAA,OAAA,CAAQ,IAAI,KAAK,CAAA;AAAA;AAErB","file":"init.js","sourcesContent":["import arg from \"arg\";\nimport { execSync } from \"child_process\";\nimport enquirer from \"enquirer\";\nimport fs from \"node:fs\";\nimport path from \"path\";\nimport { configSpec, parseArgs, promptDirectories } from \"../utils/cli\";\nimport { getPackageManager } from \"./command\";\n// eslint-disable-next-line\n// @ts-ignore-error\nimport { DEFAULT_CONFIG } from \"@powerhousedao/config/powerhouse\";\n\nconst BOILERPLATE_REPO =\n \"https://github.com/powerhouse-inc/document-model-boilerplate.git\";\n\nconst packageManager = getPackageManager(process.env.npm_config_user_agent);\nconst isNpm = packageManager === \"npm\";\n\nconst { prompt } = enquirer;\n\nfunction buildPackageJson(appPath: string, projectName: string) {\n const packageJson = JSON.parse(\n fs.readFileSync(path.join(appPath, \"package.json\"), \"utf-8\"),\n ) as Record<string, any>;\n const newPackage = {\n ...packageJson,\n name: projectName,\n version: \"1.0.0\",\n description: \"\",\n };\n\n fs.writeFileSync(\n path.join(appPath, \"package.json\"),\n JSON.stringify(newPackage, null, 2),\n \"utf8\",\n );\n}\n\nfunction buildPowerhouseConfig(\n appPath: string,\n documentModelsDir: string,\n editorsDir: string,\n) {\n const filePath = path.join(appPath, \"powerhouse.config.json\");\n const packageJson = JSON.parse(fs.readFileSync(filePath, \"utf-8\")) as Record<\n string,\n any\n >;\n const newPackage = {\n ...packageJson,\n documentModelsDir,\n editorsDir,\n };\n\n fs.writeFileSync(filePath, JSON.stringify(newPackage, null, 2), \"utf8\");\n}\n\nfunction buildIndex(\n appPath: string,\n documentModelsDir: string,\n editorsDir: string,\n) {\n fs.writeFileSync(\n path.join(appPath, \"index.ts\"),\n `import * as documentModelsExports from '${documentModelsDir}';\n import * as editorsExports from '${editorsDir}';\n\n export const documentModels = Object.values(documentModelsExports);\n export const editors = Object.values(editorsExports);`,\n \"utf8\",\n );\n}\n\nfunction runCmd(command: string) {\n try {\n execSync(command, { stdio: \"inherit\" });\n } catch (error) {\n console.log(\"\\x1b[31m\", error, \"\\x1b[0m\");\n }\n}\n\nexport async function init(_args?: arg.Result<typeof configSpec>) {\n const args = _args || parseArgs(process.argv.slice(2), configSpec);\n\n // checks if a project name was provided\n let projectName = args._.shift();\n if (!projectName) {\n const result = await prompt<{ projectName: string }>([\n {\n type: \"input\",\n name: \"projectName\",\n message: \"What is the project name?\",\n required: true,\n result: (value) => value.toLowerCase().trim().replace(/\\s+/g, \"-\"),\n },\n ]);\n if (!result.projectName) {\n console.log(\"\\x1b[31m\", \"You have to provide name to your app.\");\n process.exit(1);\n }\n projectName = result.projectName;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const { documentModelsDir, editorsDir } = args[\"--interactive\"]\n ? await promptDirectories()\n : DEFAULT_CONFIG;\n\n const appPath = path.join(process.cwd(), projectName);\n\n try {\n fs.mkdirSync(appPath);\n } catch (err) {\n if ((err as { code: string }).code === \"EEXIST\") {\n console.log(\n \"\\x1b[31m\",\n `The folder ${projectName} already exists in the current directory, please give it another name.`,\n \"\\x1b[0m\",\n );\n } else {\n console.log(err);\n }\n process.exit(1);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n createProject(projectName, documentModelsDir, editorsDir);\n}\n\nfunction createProject(\n projectName: string,\n documentModelsDir: string,\n editorsDir: string,\n) {\n try {\n console.log(\"\\x1b[33m\", \"Downloading the project structure...\", \"\\x1b[0m\");\n runCmd(`git clone --depth 1 ${BOILERPLATE_REPO} ${projectName}`);\n\n const appPath = path.join(process.cwd(), projectName);\n process.chdir(appPath);\n\n console.log(\"\\x1b[34m\", \"Installing dependencies...\", \"\\x1b[0m\");\n runCmd(`${packageManager} install`);\n\n fs.rmSync(path.join(appPath, \"./.git\"), { recursive: true });\n runCmd(\"git init\");\n\n try {\n fs.mkdirSync(path.join(appPath, documentModelsDir));\n fs.writeFileSync(path.join(appPath, documentModelsDir, \"index.ts\"), \"\");\n fs.mkdirSync(path.join(appPath, editorsDir));\n fs.writeFileSync(path.join(appPath, editorsDir, \"index.ts\"), \"\");\n } catch (error) {\n if (!(error as Error).message.includes(\"EEXIST\")) {\n throw error;\n }\n }\n buildPackageJson(appPath, projectName);\n buildPowerhouseConfig(appPath, documentModelsDir, editorsDir);\n buildIndex(appPath, documentModelsDir, editorsDir);\n\n console.log(\"\\x1b[32m\", \"The installation is done!\", \"\\x1b[0m\");\n console.log();\n\n console.log(\"\\x1b[34m\", \"You can start by typing:\");\n console.log(` cd ${projectName}`);\n console.log(\n isNpm ? \" npm run generate\" : ` ${packageManager} generate`,\n \"\\x1b[0m\",\n );\n } catch (error) {\n console.log(error);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/create-lib/init.ts"],"names":[],"mappings":";;;;;;;AAQA,MAAM,gBACJ,GAAA,kEAAA;AAEF,MAAM,cAAiB,GAAA,iBAAA,CAAkB,OAAQ,CAAA,GAAA,CAAI,qBAAqB,CAAA;AAC1E,MAAM,QAAQ,cAAmB,KAAA,KAAA;AAEjC,MAAM,kBAAqB,GAAA;AAAA,EACzB,iBAAmB,EAAA,mBAAA;AAAA,EACnB,UAAY,EAAA;AACd,CAAA;AAEO,MAAM,iBAAoB,GAAA;AAAA,EAC/B,QAAU,EAAA,MAAA;AAAA,EACV,gBAAkB,EAAA,QAAA;AAAA,EAClB,WAAa,EAAA,MAAA;AAAA,EACb,eAAiB,EAAA,OAAA;AAAA,EACjB,OAAS,EAAA,OAAA;AAAA,EACT,WAAa,EAAA,OAAA;AAAA,EACb,IAAM,EAAA,QAAA;AAAA,EACN,IAAM,EAAA;AACR;AAQA,MAAM,EAAE,QAAW,GAAA,QAAA;AAEnB,SAAS,gBAAA,CAAiB,SAAiB,WAAqB,EAAA;AAC9D,EAAA,MAAM,cAAc,IAAK,CAAA,KAAA;AAAA,IACvB,GAAG,YAAa,CAAA,IAAA,CAAK,KAAK,OAAS,EAAA,cAAc,GAAG,OAAO;AAAA,GAC7D;AACA,EAAA,MAAM,UAAa,GAAA;AAAA,IACjB,GAAG,WAAA;AAAA,IACH,IAAM,EAAA,WAAA;AAAA,IACN,OAAS,EAAA,OAAA;AAAA,IACT,WAAa,EAAA;AAAA,GACf;AAEA,EAAG,EAAA,CAAA,aAAA;AAAA,IACD,IAAA,CAAK,IAAK,CAAA,OAAA,EAAS,cAAc,CAAA;AAAA,IACjC,IAAK,CAAA,SAAA,CAAU,UAAY,EAAA,IAAA,EAAM,CAAC,CAAA;AAAA,IAClC;AAAA,GACF;AACF;AAEA,SAAS,qBAAA,CACP,OACA,EAAA,iBAAA,EACA,UACA,EAAA;AACA,EAAA,MAAM,QAAW,GAAA,IAAA,CAAK,IAAK,CAAA,OAAA,EAAS,wBAAwB,CAAA;AAC5D,EAAA,MAAM,cAAc,IAAK,CAAA,KAAA,CAAM,GAAG,YAAa,CAAA,QAAA,EAAU,OAAO,CAAC,CAAA;AAIjE,EAAA,MAAM,UAAa,GAAA;AAAA,IACjB,GAAG,WAAA;AAAA,IACH,iBAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAG,EAAA,CAAA,aAAA,CAAc,UAAU,IAAK,CAAA,SAAA,CAAU,YAAY,IAAM,EAAA,CAAC,GAAG,MAAM,CAAA;AACxE;AAEA,SAAS,UAAA,CACP,OACA,EAAA,iBAAA,EACA,UACA,EAAA;AACA,EAAG,EAAA,CAAA,aAAA;AAAA,IACD,IAAA,CAAK,IAAK,CAAA,OAAA,EAAS,UAAU,CAAA;AAAA,IAC7B,2CAA2C,iBAAiB,CAAA;AAAA,yCAAA,EACrB,UAAU,CAAA;;AAAA;AAAA,6DAAA,CAAA;AAAA,IAIjD;AAAA,GACF;AACF;AAEA,SAAS,OAAO,OAAiB,EAAA;AAC/B,EAAI,IAAA;AACF,IAAA,QAAA,CAAS,OAAS,EAAA,EAAE,KAAO,EAAA,SAAA,EAAW,CAAA;AAAA,WAC/B,KAAO,EAAA;AACd,IAAQ,OAAA,CAAA,GAAA,CAAI,UAAY,EAAA,KAAA,EAAO,SAAS,CAAA;AAAA;AAE5C;AAEO,SAAS,aAAa,IAI1B,EAAA;AACD,EAAA,IAAI,KAAK,OAAS,EAAA;AAChB,IAAA,OAAO,IAAK,CAAA,OAAA;AAAA;AAEd,EAAA,IAAI,KAAK,GAAK,EAAA;AACZ,IAAO,OAAA,KAAA;AAAA,GACT,MAAA,IAAW,KAAK,OAAS,EAAA;AACvB,IAAO,OAAA,SAAA;AAAA,GACF,MAAA;AACL,IAAO,OAAA,MAAA;AAAA;AAEX;AAEA,SAAS,iBAAiB,IAA4C,EAAA;AACpE,EAAA,OAAO,YAAa,CAAA;AAAA,IAClB,OAAA,EAAS,KAAK,WAAW,CAAA;AAAA,IACzB,GAAA,EAAK,KAAK,OAAO,CAAA;AAAA,IACjB,OAAA,EAAS,KAAK,WAAW;AAAA,GAC1B,CAAA;AACH;AAEO,SAAS,OAAU,GAAA;AACxB,EAAA,MAAM,OAAO,SAAU,CAAA,OAAA,CAAQ,KAAK,KAAM,CAAA,CAAC,GAAG,iBAAiB,CAAA;AAC/D,EAAA,MAAM,OAAiC,GAAA;AAAA,IACrC,MAAM,IAAK,CAAA,QAAQ,CAAK,IAAA,IAAA,CAAK,EAAE,KAAM,EAAA;AAAA,IACrC,WAAA,EAAa,IAAK,CAAA,eAAe,CAAK,IAAA,KAAA;AAAA,IACtC,OAAA,EAAS,iBAAiB,IAAI;AAAA,GAChC;AACA,EAAA,OAAO,KAAK,OAAO,CAAA;AACrB;AAEA,eAAsB,KAAK,OAAgC,EAAA;AAEzD,EAAA,IAAI,cAAc,OAAQ,CAAA,IAAA;AAC1B,EAAA,IAAI,CAAC,WAAa,EAAA;AAChB,IAAM,MAAA,MAAA,GAAS,MAAM,MAAgC,CAAA;AAAA,MACnD;AAAA,QACE,IAAM,EAAA,OAAA;AAAA,QACN,IAAM,EAAA,aAAA;AAAA,QACN,OAAS,EAAA,2BAAA;AAAA,QACT,QAAU,EAAA,IAAA;AAAA,QACV,MAAA,EAAQ,CAAC,KAAA,KAAU,KAAM,CAAA,WAAA,GAAc,IAAK,EAAA,CAAE,OAAQ,CAAA,MAAA,EAAQ,GAAG;AAAA;AACnE,KACD,CAAA;AACD,IAAI,IAAA,CAAC,OAAO,WAAa,EAAA;AACvB,MAAQ,OAAA,CAAA,GAAA,CAAI,YAAY,uCAAuC,CAAA;AAC/D,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA;AAEhB,IAAA,WAAA,GAAc,MAAO,CAAA,WAAA;AAAA;AAGvB,EAAM,MAAA;AAAA,IACJ,iBAAA;AAAA,IACA;AAAA,MACqD,OAAQ,CAAA,WAAA,GAC3D,MAAM,iBAAA,CAAkB,kBAAkB,CAC1C,GAAA,kBAAA;AAEJ,EAAA,MAAM,UAAU,IAAK,CAAA,IAAA,CAAK,OAAQ,CAAA,GAAA,IAAO,WAAW,CAAA;AAEpD,EAAI,IAAA;AACF,IAAA,EAAA,CAAG,UAAU,OAAO,CAAA;AAAA,WACb,GAAK,EAAA;AACZ,IAAK,IAAA,GAAA,CAAyB,SAAS,QAAU,EAAA;AAC/C,MAAQ,OAAA,CAAA,GAAA;AAAA,QACN,UAAA;AAAA,QACA,cAAc,WAAW,CAAA,sEAAA,CAAA;AAAA,QACzB;AAAA,OACF;AAAA,KACK,MAAA;AACL,MAAA,OAAA,CAAQ,IAAI,GAAG,CAAA;AAAA;AAEjB,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA;AAGhB,EAAA,aAAA,CAAc,WAAa,EAAA,iBAAA,EAAmB,UAAY,EAAA,OAAA,CAAQ,OAAO,CAAA;AAC3E;AAEA,SAAS,aACP,CAAA,WAAA,EACA,iBACA,EAAA,UAAA,EACA,UAAU,MACV,EAAA;AACA,EAAI,IAAA;AACF,IAAQ,OAAA,CAAA,GAAA,CAAI,UAAY,EAAA,sCAAA,EAAwC,SAAS,CAAA;AACzE,IAAA,MAAA;AAAA,MACE,CAA0B,uBAAA,EAAA,OAAO,CAAI,CAAA,EAAA,gBAAgB,IAAI,WAAW,CAAA;AAAA,KACtE;AAEA,IAAA,MAAM,UAAU,IAAK,CAAA,IAAA,CAAK,OAAQ,CAAA,GAAA,IAAO,WAAW,CAAA;AACpD,IAAA,OAAA,CAAQ,MAAM,OAAO,CAAA;AAErB,IAAQ,OAAA,CAAA,GAAA,CAAI,UAAY,EAAA,4BAAA,EAA8B,SAAS,CAAA;AAC/D,IAAO,MAAA,CAAA,CAAA,EAAG,cAAc,CAAU,QAAA,CAAA,CAAA;AAElC,IAAG,EAAA,CAAA,MAAA,CAAO,KAAK,IAAK,CAAA,OAAA,EAAS,QAAQ,CAAG,EAAA,EAAE,SAAW,EAAA,IAAA,EAAM,CAAA;AAC3D,IAAA,MAAA,CAAO,UAAU,CAAA;AAEjB,IAAI,IAAA;AACF,MAAA,EAAA,CAAG,SAAU,CAAA,IAAA,CAAK,IAAK,CAAA,OAAA,EAAS,iBAAiB,CAAC,CAAA;AAClD,MAAA,EAAA,CAAG,cAAc,IAAK,CAAA,IAAA,CAAK,SAAS,iBAAmB,EAAA,UAAU,GAAG,EAAE,CAAA;AACtE,MAAA,EAAA,CAAG,SAAU,CAAA,IAAA,CAAK,IAAK,CAAA,OAAA,EAAS,UAAU,CAAC,CAAA;AAC3C,MAAA,EAAA,CAAG,cAAc,IAAK,CAAA,IAAA,CAAK,SAAS,UAAY,EAAA,UAAU,GAAG,EAAE,CAAA;AAAA,aACxD,KAAO,EAAA;AACd,MAAA,IAAI,CAAE,KAAA,CAAgB,OAAQ,CAAA,QAAA,CAAS,QAAQ,CAAG,EAAA;AAChD,QAAM,MAAA,KAAA;AAAA;AACR;AAEF,IAAA,gBAAA,CAAiB,SAAS,WAAW,CAAA;AACrC,IAAsB,qBAAA,CAAA,OAAA,EAAS,mBAAmB,UAAU,CAAA;AAC5D,IAAW,UAAA,CAAA,OAAA,EAAS,mBAAmB,UAAU,CAAA;AAEjD,IAAQ,OAAA,CAAA,GAAA,CAAI,UAAY,EAAA,2BAAA,EAA6B,SAAS,CAAA;AAC9D,IAAA,OAAA,CAAQ,GAAI,EAAA;AAEZ,IAAQ,OAAA,CAAA,GAAA,CAAI,YAAY,0BAA0B,CAAA;AAClD,IAAQ,OAAA,CAAA,GAAA,CAAI,CAAU,OAAA,EAAA,WAAW,CAAE,CAAA,CAAA;AACnC,IAAQ,OAAA,CAAA,GAAA;AAAA,MACN,KAAA,GAAQ,sBAAyB,GAAA,CAAA,IAAA,EAAO,cAAc,CAAA,SAAA,CAAA;AAAA,MACtD;AAAA,KACF;AAAA,WACO,KAAO,EAAA;AACd,IAAA,OAAA,CAAQ,IAAI,KAAK,CAAA;AAAA;AAErB","file":"init.js","sourcesContent":["import arg from \"arg\";\nimport { execSync } from \"child_process\";\nimport enquirer from \"enquirer\";\nimport fs from \"node:fs\";\nimport path from \"path\";\nimport { parseArgs, promptDirectories } from \"../utils/cli\";\nimport { getPackageManager } from \"./utils\";\n\nconst BOILERPLATE_REPO =\n \"https://github.com/powerhouse-inc/document-model-boilerplate.git\";\n\nconst packageManager = getPackageManager(process.env.npm_config_user_agent);\nconst isNpm = packageManager === \"npm\";\n\nconst defaultDirectories = {\n documentModelsDir: \"./document-models\",\n editorsDir: \"./editors\",\n};\n\nexport const createCommandSpec = {\n \"--name\": String,\n \"--project-name\": \"--name\",\n \"--version\": String,\n \"--interactive\": Boolean,\n \"--dev\": Boolean,\n \"--staging\": Boolean,\n \"-p\": \"--name\",\n \"-v\": \"--version\",\n} as const;\n\nexport interface ICreateProjectOptions {\n name: string | undefined;\n version: string;\n interactive: boolean;\n}\n\nconst { prompt } = enquirer;\n\nfunction buildPackageJson(appPath: string, projectName: string) {\n const packageJson = JSON.parse(\n fs.readFileSync(path.join(appPath, \"package.json\"), \"utf-8\"),\n ) as Record<string, any>;\n const newPackage = {\n ...packageJson,\n name: projectName,\n version: \"1.0.0\",\n description: \"\",\n };\n\n fs.writeFileSync(\n path.join(appPath, \"package.json\"),\n JSON.stringify(newPackage, null, 2),\n \"utf8\",\n );\n}\n\nfunction buildPowerhouseConfig(\n appPath: string,\n documentModelsDir: string,\n editorsDir: string,\n) {\n const filePath = path.join(appPath, \"powerhouse.config.json\");\n const packageJson = JSON.parse(fs.readFileSync(filePath, \"utf-8\")) as Record<\n string,\n any\n >;\n const newPackage = {\n ...packageJson,\n documentModelsDir,\n editorsDir,\n };\n\n fs.writeFileSync(filePath, JSON.stringify(newPackage, null, 2), \"utf8\");\n}\n\nfunction buildIndex(\n appPath: string,\n documentModelsDir: string,\n editorsDir: string,\n) {\n fs.writeFileSync(\n path.join(appPath, \"index.ts\"),\n `import * as documentModelsExports from '${documentModelsDir}';\n import * as editorsExports from '${editorsDir}';\n\n export const documentModels = Object.values(documentModelsExports);\n export const editors = Object.values(editorsExports);`,\n \"utf8\",\n );\n}\n\nfunction runCmd(command: string) {\n try {\n execSync(command, { stdio: \"inherit\" });\n } catch (error) {\n console.log(\"\\x1b[31m\", error, \"\\x1b[0m\");\n }\n}\n\nexport function parseVersion(args: {\n version?: string;\n dev?: boolean;\n staging?: boolean;\n}) {\n if (args.version) {\n return args.version;\n }\n if (args.dev) {\n return \"dev\";\n } else if (args.staging) {\n return \"staging\";\n } else {\n return \"main\";\n }\n}\n\nfunction parseVersionArgs(args: arg.Result<typeof createCommandSpec>) {\n return parseVersion({\n version: args[\"--version\"],\n dev: args[\"--dev\"],\n staging: args[\"--staging\"],\n });\n}\n\nexport function initCli() {\n const args = parseArgs(process.argv.slice(2), createCommandSpec);\n const options: ICreateProjectOptions = {\n name: args[\"--name\"] ?? args._.shift(),\n interactive: args[\"--interactive\"] ?? false,\n version: parseVersionArgs(args),\n };\n return init(options);\n}\n\nexport async function init(options: ICreateProjectOptions) {\n // checks if a project name was provided\n let projectName = options.name;\n if (!projectName) {\n const result = await prompt<{ projectName: string }>([\n {\n type: \"input\",\n name: \"projectName\",\n message: \"What is the project name?\",\n required: true,\n result: (value) => value.toLowerCase().trim().replace(/\\s+/g, \"-\"),\n },\n ]);\n if (!result.projectName) {\n console.log(\"\\x1b[31m\", \"You have to provide name to your app.\");\n process.exit(1);\n }\n projectName = result.projectName;\n }\n\n const {\n documentModelsDir,\n editorsDir,\n }: { documentModelsDir: string; editorsDir: string } = options.interactive\n ? await promptDirectories(defaultDirectories)\n : defaultDirectories;\n\n const appPath = path.join(process.cwd(), projectName);\n\n try {\n fs.mkdirSync(appPath);\n } catch (err) {\n if ((err as { code: string }).code === \"EEXIST\") {\n console.log(\n \"\\x1b[31m\",\n `The folder ${projectName} already exists in the current directory, please give it another name.`,\n \"\\x1b[0m\",\n );\n } else {\n console.log(err);\n }\n process.exit(1);\n }\n\n createProject(projectName, documentModelsDir, editorsDir, options.version);\n}\n\nfunction createProject(\n projectName: string,\n documentModelsDir: string,\n editorsDir: string,\n version = \"main\",\n) {\n try {\n console.log(\"\\x1b[33m\", \"Downloading the project structure...\", \"\\x1b[0m\");\n runCmd(\n `git clone --depth 1 -b ${version} ${BOILERPLATE_REPO} ${projectName}`,\n );\n\n const appPath = path.join(process.cwd(), projectName);\n process.chdir(appPath);\n\n console.log(\"\\x1b[34m\", \"Installing dependencies...\", \"\\x1b[0m\");\n runCmd(`${packageManager} install`);\n\n fs.rmSync(path.join(appPath, \"./.git\"), { recursive: true });\n runCmd(\"git init\");\n\n try {\n fs.mkdirSync(path.join(appPath, documentModelsDir));\n fs.writeFileSync(path.join(appPath, documentModelsDir, \"index.ts\"), \"\");\n fs.mkdirSync(path.join(appPath, editorsDir));\n fs.writeFileSync(path.join(appPath, editorsDir, \"index.ts\"), \"\");\n } catch (error) {\n if (!(error as Error).message.includes(\"EEXIST\")) {\n throw error;\n }\n }\n buildPackageJson(appPath, projectName);\n buildPowerhouseConfig(appPath, documentModelsDir, editorsDir);\n buildIndex(appPath, documentModelsDir, editorsDir);\n\n console.log(\"\\x1b[32m\", \"The installation is done!\", \"\\x1b[0m\");\n console.log();\n\n console.log(\"\\x1b[34m\", \"You can start by typing:\");\n console.log(` cd ${projectName}`);\n console.log(\n isNpm ? \" npm run generate\" : ` ${packageManager} generate`,\n \"\\x1b[0m\",\n );\n } catch (error) {\n console.log(error);\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/create-lib/utils.ts"],"names":[],"mappings":"AAAA,MAAM,eAAkB,GAAA,CAAC,KAAO,EAAA,MAAA,EAAQ,QAAQ,KAAK,CAAA;AACrD,MAAM,qBAAwB,GAAA,KAAA;AAIvB,SAAS,kBAAkB,SAAoC,EAAA;AACpE,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAO,OAAA,qBAAA;AAAA;AAGT,EAAA,MAAM,OAAU,GAAA,SAAA,CAAU,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA;AACtC,EAAM,MAAA,UAAA,GAAa,OAAQ,CAAA,KAAA,CAAM,GAAG,CAAA;AACpC,EAAM,MAAA,IAAA,GAAO,WAAW,CAAC,CAAA;AAEzB,EAAI,IAAA,eAAA,CAAgB,QAAS,CAAA,IAAsB,CAAG,EAAA;AACpD,IAAO,OAAA,IAAA;AAAA,GACF,MAAA;AACL,IAAO,OAAA,qBAAA;AAAA;AAEX","file":"utils.js","sourcesContent":["const packageManagers = [\"npm\", \"yarn\", \"pnpm\", \"bun\"] as const;\nconst defaultPackageManager = \"npm\";\n\nexport type PackageManager = (typeof packageManagers)[number];\n\nexport function getPackageManager(userAgent?: string): PackageManager {\n if (!userAgent) {\n return defaultPackageManager;\n }\n\n const pkgSpec = userAgent.split(\" \")[0];\n const pkgSpecArr = pkgSpec.split(\"/\");\n const name = pkgSpecArr[0];\n\n if (packageManagers.includes(name as PackageManager)) {\n return name as PackageManager;\n } else {\n return defaultPackageManager;\n }\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { D as DocumentTypesMap, g as generate, b as generateEditor, a as generateFromFile, c as generateProcessor, d as generateSubgraph } from './index-CINLSROn.js';
|
|
2
|
-
export { configSpec, createProject, generateMock, generateMockTypeFn, getPackageManager, parseArgs, parseConfig, promptDirectories } from './utils.js';
|
|
2
|
+
export { ICreateProjectOptions, configSpec, createProject, createProjectSpec, generateMock, generateMockTypeFn, getPackageManager, parseArgs, parseConfig, parseVersion, promptDirectories } from './utils.js';
|
|
3
3
|
import 'document-model/document';
|
|
4
4
|
import '@powerhousedao/config/powerhouse';
|
|
5
5
|
import 'arg';
|
package/dist/utils/cli.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { DEFAULT_CONFIG } from '@powerhousedao/config/powerhouse';
|
|
2
1
|
import arg from 'arg';
|
|
3
2
|
import enquirer from 'enquirer';
|
|
4
3
|
|
|
@@ -40,19 +39,19 @@ function parseConfig(argv) {
|
|
|
40
39
|
}
|
|
41
40
|
return config;
|
|
42
41
|
}
|
|
43
|
-
async function promptDirectories(
|
|
42
|
+
async function promptDirectories(defaultDirs) {
|
|
44
43
|
return prompt([
|
|
45
44
|
{
|
|
46
45
|
type: "input",
|
|
47
46
|
name: "documentModelsDir",
|
|
48
47
|
message: "Where to place the Document Models?",
|
|
49
|
-
initial:
|
|
48
|
+
initial: defaultDirs.documentModelsDir
|
|
50
49
|
},
|
|
51
50
|
{
|
|
52
51
|
type: "input",
|
|
53
52
|
name: "editorsDir",
|
|
54
53
|
message: "Where to place the Editors?",
|
|
55
|
-
initial:
|
|
54
|
+
initial: defaultDirs.editorsDir
|
|
56
55
|
}
|
|
57
56
|
]);
|
|
58
57
|
}
|
package/dist/utils/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/utils/cli.ts"],"names":[],"mappings":";;;AAGA,MAAM,EAAE,QAAW,GAAA,QAAA;AAEZ,MAAM,UAAa,GAAA;AAAA,EACxB,mBAAqB,EAAA,MAAA;AAAA,EACrB,WAAa,EAAA,MAAA;AAAA,EACb,eAAiB,EAAA,OAAA;AAAA,EACjB,eAAiB,EAAA,OAAA;AAAA,EACjB,SAAW,EAAA,OAAA;AAAA,EACX,IAAM,EAAA,eAAA;AAAA,EACN,KAAO,EAAA,eAAA;AAAA,EACP,IAAM,EAAA;AACR;AAEO,SAAS,SAAA,CAA8B,MAAgB,IAAS,EAAA;AACrE,EAAM,MAAA,IAAA,GAAO,IAAI,IAAM,EAAA;AAAA,IACrB,UAAY,EAAA,IAAA;AAAA,IACZ;AAAA,GACD,CAAA;AAED,EAAO,OAAA,IAAA;AACT;AAEO,SAAS,YAAY,IAAgB,EAAA;AAC1C,EAAA,MAAM,SAMD,EAAC;AACN,EAAM,MAAA,IAAA,GAAO,SAAU,CAAA,IAAA,EAAM,UAAU,CAAA;AAEvC,EAAA,IAAI,uBAAuB,IAAM,EAAA;AAC/B,IAAO,MAAA,CAAA,iBAAA,GAAoB,KAAK,mBAAmB,CAAA;AAAA;AAGrD,EAAA,IAAI,eAAe,IAAM,EAAA;AACvB,IAAO,MAAA,CAAA,UAAA,GAAa,KAAK,WAAW,CAAA;AAAA;AAGtC,EAAA,IAAI,mBAAmB,IAAM,EAAA;AAC3B,IAAA,MAAA,CAAO,UAAa,GAAA,IAAA;AAAA;AAEtB,EAAA,IAAI,mBAAmB,IAAM,EAAA;AAC3B,IAAA,MAAA,CAAO,WAAc,GAAA,IAAA;AAAA;AAEvB,EAAA,IAAI,aAAa,IAAM,EAAA;AACrB,IAAA,MAAA,CAAO,KAAQ,GAAA,IAAA;AAAA;AAGjB,EAAO,OAAA,MAAA;AACT;AAOA,eAAsB,kBAAkB,WAAiC,EAAA;AACvE,EAAA,OAAO,MAA2B,CAAA;AAAA,IAChC;AAAA,MACE,IAAM,EAAA,OAAA;AAAA,MACN,IAAM,EAAA,mBAAA;AAAA,MACN,OAAS,EAAA,qCAAA;AAAA,MACT,SAAS,WAAY,CAAA;AAAA,KACvB;AAAA,IACA;AAAA,MACE,IAAM,EAAA,OAAA;AAAA,MACN,IAAM,EAAA,YAAA;AAAA,MACN,OAAS,EAAA,6BAAA;AAAA,MACT,SAAS,WAAY,CAAA;AAAA;AACvB,GACD,CAAA;AACH","file":"cli.js","sourcesContent":["import arg from \"arg\";\nimport enquirer from \"enquirer\";\n\nconst { prompt } = enquirer;\n\nexport const configSpec = {\n \"--document-models\": String,\n \"--editors\": String,\n \"--interactive\": Boolean,\n \"--skip-format\": Boolean,\n \"--watch\": Boolean,\n \"-i\": \"--interactive\",\n \"-sf\": \"--skip-format\",\n \"-w\": \"--watch\",\n} as const;\n\nexport function parseArgs<T extends arg.Spec>(argv: string[], spec: T) {\n const args = arg(spec, {\n permissive: true,\n argv,\n });\n\n return args;\n}\n\nexport function parseConfig(argv: string[]) {\n const config: Partial<{\n documentModelsDir?: string;\n editorsDir?: string;\n skipFormat?: boolean;\n interactive?: boolean;\n watch?: boolean;\n }> = {};\n const args = parseArgs(argv, configSpec);\n\n if (\"--document-models\" in args) {\n config.documentModelsDir = args[\"--document-models\"];\n }\n\n if (\"--editors\" in args) {\n config.editorsDir = args[\"--editors\"];\n }\n\n if (\"--skip-format\" in args) {\n config.skipFormat = true;\n }\n if (\"--interactive\" in args) {\n config.interactive = true;\n }\n if (\"--watch\" in args) {\n config.watch = true;\n }\n\n return config;\n}\n\ntype DefaultDirectories = {\n documentModelsDir: string;\n editorsDir: string;\n};\n\nexport async function promptDirectories(defaultDirs: DefaultDirectories) {\n return prompt<DefaultDirectories>([\n {\n type: \"input\",\n name: \"documentModelsDir\",\n message: \"Where to place the Document Models?\",\n initial: defaultDirs.documentModelsDir,\n },\n {\n type: \"input\",\n name: \"editorsDir\",\n message: \"Where to place the Editors?\",\n initial: defaultDirs.editorsDir,\n },\n ]);\n}\n"]}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from './cli.js';
|
|
2
2
|
export * from './mock.js';
|
|
3
|
-
export { init as createProject } from '../create-lib/init.js';
|
|
4
|
-
export { getPackageManager } from '../create-lib/
|
|
3
|
+
export { init as createProject, createCommandSpec as createProjectSpec, parseVersion } from '../create-lib/init.js';
|
|
4
|
+
export { getPackageManager } from '../create-lib/utils.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { PowerhouseConfig } from '@powerhousedao/config/powerhouse';
|
|
2
1
|
import arg from 'arg';
|
|
3
2
|
import { generateMock as generateMock$1 } from '@anatine/zod-mock';
|
|
4
3
|
|
|
@@ -13,16 +12,46 @@ declare const configSpec: {
|
|
|
13
12
|
readonly "-w": "--watch";
|
|
14
13
|
};
|
|
15
14
|
declare function parseArgs<T extends arg.Spec>(argv: string[], spec: T): arg.Result<T>;
|
|
16
|
-
declare function parseConfig(argv: string[]): Partial<
|
|
17
|
-
|
|
15
|
+
declare function parseConfig(argv: string[]): Partial<{
|
|
16
|
+
documentModelsDir?: string;
|
|
17
|
+
editorsDir?: string;
|
|
18
|
+
skipFormat?: boolean;
|
|
19
|
+
interactive?: boolean;
|
|
20
|
+
watch?: boolean;
|
|
21
|
+
}>;
|
|
22
|
+
type DefaultDirectories = {
|
|
23
|
+
documentModelsDir: string;
|
|
24
|
+
editorsDir: string;
|
|
25
|
+
};
|
|
26
|
+
declare function promptDirectories(defaultDirs: DefaultDirectories): Promise<DefaultDirectories>;
|
|
18
27
|
|
|
19
28
|
type generateMockTypeFn = typeof generateMock$1;
|
|
20
29
|
declare const generateMock: generateMockTypeFn;
|
|
21
30
|
|
|
22
|
-
declare
|
|
31
|
+
declare const createCommandSpec: {
|
|
32
|
+
readonly "--name": StringConstructor;
|
|
33
|
+
readonly "--project-name": "--name";
|
|
34
|
+
readonly "--version": StringConstructor;
|
|
35
|
+
readonly "--interactive": BooleanConstructor;
|
|
36
|
+
readonly "--dev": BooleanConstructor;
|
|
37
|
+
readonly "--staging": BooleanConstructor;
|
|
38
|
+
readonly "-p": "--name";
|
|
39
|
+
readonly "-v": "--version";
|
|
40
|
+
};
|
|
41
|
+
interface ICreateProjectOptions {
|
|
42
|
+
name: string | undefined;
|
|
43
|
+
version: string;
|
|
44
|
+
interactive: boolean;
|
|
45
|
+
}
|
|
46
|
+
declare function parseVersion(args: {
|
|
47
|
+
version?: string;
|
|
48
|
+
dev?: boolean;
|
|
49
|
+
staging?: boolean;
|
|
50
|
+
}): string;
|
|
51
|
+
declare function init(options: ICreateProjectOptions): Promise<void>;
|
|
23
52
|
|
|
24
53
|
declare const packageManagers: readonly ["npm", "yarn", "pnpm", "bun"];
|
|
25
54
|
type PackageManager = (typeof packageManagers)[number];
|
|
26
55
|
declare function getPackageManager(userAgent?: string): PackageManager;
|
|
27
56
|
|
|
28
|
-
export { configSpec, init as createProject, generateMock, type generateMockTypeFn, getPackageManager, parseArgs, parseConfig, promptDirectories };
|
|
57
|
+
export { type ICreateProjectOptions, configSpec, init as createProject, createCommandSpec as createProjectSpec, generateMock, type generateMockTypeFn, getPackageManager, parseArgs, parseConfig, parseVersion, promptDirectories };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerhousedao/codegen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"execa": "^8.0.1",
|
|
34
34
|
"hygen": "^6.2.11",
|
|
35
35
|
"prettier": "^3.4.2",
|
|
36
|
-
"@powerhousedao/config": "1.
|
|
36
|
+
"@powerhousedao/config": "1.6.0",
|
|
37
37
|
"document-model": "2.15.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/create-lib/command.ts"],"names":[],"mappings":"AAAA,MAAM,eAAkB,GAAA,CAAC,KAAO,EAAA,MAAA,EAAQ,QAAQ,KAAK,CAAA;AACrD,MAAM,qBAAwB,GAAA,KAAA;AAIvB,SAAS,kBAAkB,SAAoC,EAAA;AACpE,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAO,OAAA,qBAAA;AAAA;AAGT,EAAA,MAAM,OAAU,GAAA,SAAA,CAAU,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA;AACtC,EAAM,MAAA,UAAA,GAAa,OAAQ,CAAA,KAAA,CAAM,GAAG,CAAA;AACpC,EAAM,MAAA,IAAA,GAAO,WAAW,CAAC,CAAA;AAEzB,EAAI,IAAA,eAAA,CAAgB,QAAS,CAAA,IAAsB,CAAG,EAAA;AACpD,IAAO,OAAA,IAAA;AAAA,GACF,MAAA;AACL,IAAO,OAAA,qBAAA;AAAA;AAEX","file":"command.js","sourcesContent":["const packageManagers = [\"npm\", \"yarn\", \"pnpm\", \"bun\"] as const;\nconst defaultPackageManager = \"npm\";\n\nexport type PackageManager = (typeof packageManagers)[number];\n\nexport function getPackageManager(userAgent?: string): PackageManager {\n if (!userAgent) {\n return defaultPackageManager;\n }\n\n const pkgSpec = userAgent.split(\" \")[0];\n const pkgSpecArr = pkgSpec.split(\"/\");\n const name = pkgSpecArr[0];\n\n if (packageManagers.includes(name as PackageManager)) {\n return name as PackageManager;\n } else {\n return defaultPackageManager;\n }\n}\n"]}
|