create-vxrn 2.8.0 → 2.9.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/.turbo/turbo-build.log +1 -1
- package/dist/cjs/create.cjs +9 -6
- package/dist/cjs/create.native.cjs +9 -6
- package/dist/cjs/create.native.js +9 -6
- package/dist/cjs/create.native.js.map +1 -1
- package/dist/cjs/index.cjs +3 -0
- package/dist/cjs/index.native.cjs +5 -0
- package/dist/cjs/index.native.js +5 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/steps/one.cjs +3 -3
- package/dist/cjs/steps/one.native.cjs +3 -3
- package/dist/cjs/steps/one.native.js +3 -3
- package/dist/cjs/steps/one.native.js.map +1 -1
- package/dist/esm/create.mjs +9 -6
- package/dist/esm/create.mjs.map +1 -1
- package/dist/esm/create.native.js +9 -6
- package/dist/esm/create.native.js.map +1 -1
- package/dist/esm/index.mjs +3 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +5 -0
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/steps/one.mjs +3 -3
- package/dist/esm/steps/one.mjs.map +1 -1
- package/dist/esm/steps/one.native.js +3 -3
- package/dist/esm/steps/one.native.js.map +1 -1
- package/package.json +3 -3
- package/src/create.ts +10 -6
- package/src/index.ts +5 -0
- package/src/steps/one.ts +3 -2
- package/src/steps/types.ts +2 -0
- package/types/create.d.ts.map +1 -1
- package/types/steps/one.d.ts.map +1 -1
- package/types/steps/types.d.ts +1 -0
- package/types/steps/types.d.ts.map +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
$ tamagui-build
|
|
2
|
-
built create-vxrn in
|
|
2
|
+
built create-vxrn in 598 ms
|
package/dist/cjs/create.cjs
CHANGED
|
@@ -53,13 +53,13 @@ async function create(args) {
|
|
|
53
53
|
`);
|
|
54
54
|
process.exit(1);
|
|
55
55
|
}
|
|
56
|
-
let
|
|
57
|
-
let resolvedProjectPath = import_node_path.default.resolve(process.cwd(),
|
|
56
|
+
let projectDir = args.name || "";
|
|
57
|
+
let resolvedProjectPath = import_node_path.default.resolve(process.cwd(), projectDir);
|
|
58
58
|
async function promptForName() {
|
|
59
|
-
|
|
60
|
-
resolvedProjectPath = import_node_path.default.resolve(process.cwd(),
|
|
59
|
+
projectDir = await (0, import_getProjectName.getProjectName)();
|
|
60
|
+
resolvedProjectPath = import_node_path.default.resolve(process.cwd(), projectDir);
|
|
61
61
|
}
|
|
62
|
-
if (
|
|
62
|
+
if (projectDir) {
|
|
63
63
|
if (import_node_fs.default.existsSync(resolvedProjectPath)) {
|
|
64
64
|
console.error(`Error: folder already exists: ${resolvedProjectPath}`);
|
|
65
65
|
process.exit(1);
|
|
@@ -68,7 +68,7 @@ async function create(args) {
|
|
|
68
68
|
await promptForName();
|
|
69
69
|
while (import_node_fs.default.existsSync(resolvedProjectPath)) {
|
|
70
70
|
console.info();
|
|
71
|
-
console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(
|
|
71
|
+
console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectDir))} already exists, lets try another name`);
|
|
72
72
|
console.info();
|
|
73
73
|
console.info();
|
|
74
74
|
await promptForName();
|
|
@@ -76,6 +76,7 @@ async function create(args) {
|
|
|
76
76
|
}
|
|
77
77
|
console.info();
|
|
78
78
|
let template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
|
|
79
|
+
const projectName = import_node_path.default.basename(resolvedProjectPath);
|
|
79
80
|
const { valid, problems } = (0, import_validateNpmPackage.validateNpmName)(projectName);
|
|
80
81
|
if (!valid) {
|
|
81
82
|
console.error(`Could not create a project called ${import_ansis.default.red(`"${projectName}"`)} because of npm naming restrictions:`);
|
|
@@ -175,6 +176,7 @@ async function create(args) {
|
|
|
175
176
|
packageManager,
|
|
176
177
|
isFullClone: true,
|
|
177
178
|
projectName,
|
|
179
|
+
projectDir,
|
|
178
180
|
projectPath: resolvedProjectPath
|
|
179
181
|
});
|
|
180
182
|
}
|
|
@@ -198,6 +200,7 @@ ${e}`);
|
|
|
198
200
|
packageManager,
|
|
199
201
|
isFullClone: true,
|
|
200
202
|
projectName,
|
|
203
|
+
projectDir,
|
|
201
204
|
projectPath: resolvedProjectPath
|
|
202
205
|
});
|
|
203
206
|
}
|
|
@@ -55,13 +55,13 @@ async function create(args) {
|
|
|
55
55
|
`);
|
|
56
56
|
process.exit(1);
|
|
57
57
|
}
|
|
58
|
-
var
|
|
59
|
-
var resolvedProjectPath = import_path.default.resolve(process.cwd(),
|
|
58
|
+
var projectDir = args.name || "";
|
|
59
|
+
var resolvedProjectPath = import_path.default.resolve(process.cwd(), projectDir);
|
|
60
60
|
async function promptForName() {
|
|
61
|
-
|
|
62
|
-
resolvedProjectPath = import_path.default.resolve(process.cwd(),
|
|
61
|
+
projectDir = await (0, import_getProjectName.getProjectName)();
|
|
62
|
+
resolvedProjectPath = import_path.default.resolve(process.cwd(), projectDir);
|
|
63
63
|
}
|
|
64
|
-
if (
|
|
64
|
+
if (projectDir) {
|
|
65
65
|
if (import_fs.default.existsSync(resolvedProjectPath)) {
|
|
66
66
|
console.error(`Error: folder already exists: ${resolvedProjectPath}`);
|
|
67
67
|
process.exit(1);
|
|
@@ -70,7 +70,7 @@ async function create(args) {
|
|
|
70
70
|
await promptForName();
|
|
71
71
|
while (import_fs.default.existsSync(resolvedProjectPath)) {
|
|
72
72
|
console.info();
|
|
73
|
-
console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(
|
|
73
|
+
console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectDir))} already exists, lets try another name`);
|
|
74
74
|
console.info();
|
|
75
75
|
console.info();
|
|
76
76
|
await promptForName();
|
|
@@ -78,6 +78,7 @@ async function create(args) {
|
|
|
78
78
|
}
|
|
79
79
|
console.info();
|
|
80
80
|
var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
|
|
81
|
+
var projectName = import_path.default.basename(resolvedProjectPath);
|
|
81
82
|
var { valid, problems } = (0, import_validateNpmPackage.validateNpmName)(projectName);
|
|
82
83
|
if (!valid) {
|
|
83
84
|
console.error(`Could not create a project called ${import_ansis.default.red(`"${projectName}"`)} because of npm naming restrictions:`);
|
|
@@ -202,6 +203,7 @@ async function create(args) {
|
|
|
202
203
|
packageManager,
|
|
203
204
|
isFullClone: true,
|
|
204
205
|
projectName,
|
|
206
|
+
projectDir,
|
|
205
207
|
projectPath: resolvedProjectPath
|
|
206
208
|
});
|
|
207
209
|
}
|
|
@@ -225,6 +227,7 @@ ${e}`);
|
|
|
225
227
|
packageManager,
|
|
226
228
|
isFullClone: true,
|
|
227
229
|
projectName,
|
|
230
|
+
projectDir,
|
|
228
231
|
projectPath: resolvedProjectPath
|
|
229
232
|
});
|
|
230
233
|
}
|
|
@@ -55,13 +55,13 @@ async function create(args) {
|
|
|
55
55
|
`);
|
|
56
56
|
process.exit(1);
|
|
57
57
|
}
|
|
58
|
-
var
|
|
59
|
-
var resolvedProjectPath = import_path.default.resolve(process.cwd(),
|
|
58
|
+
var projectDir = args.name || "";
|
|
59
|
+
var resolvedProjectPath = import_path.default.resolve(process.cwd(), projectDir);
|
|
60
60
|
async function promptForName() {
|
|
61
|
-
|
|
62
|
-
resolvedProjectPath = import_path.default.resolve(process.cwd(),
|
|
61
|
+
projectDir = await (0, import_getProjectName.getProjectName)();
|
|
62
|
+
resolvedProjectPath = import_path.default.resolve(process.cwd(), projectDir);
|
|
63
63
|
}
|
|
64
|
-
if (
|
|
64
|
+
if (projectDir) {
|
|
65
65
|
if (import_fs.default.existsSync(resolvedProjectPath)) {
|
|
66
66
|
console.error(`Error: folder already exists: ${resolvedProjectPath}`);
|
|
67
67
|
process.exit(1);
|
|
@@ -70,7 +70,7 @@ async function create(args) {
|
|
|
70
70
|
await promptForName();
|
|
71
71
|
while (import_fs.default.existsSync(resolvedProjectPath)) {
|
|
72
72
|
console.info();
|
|
73
|
-
console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(
|
|
73
|
+
console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectDir))} already exists, lets try another name`);
|
|
74
74
|
console.info();
|
|
75
75
|
console.info();
|
|
76
76
|
await promptForName();
|
|
@@ -78,6 +78,7 @@ async function create(args) {
|
|
|
78
78
|
}
|
|
79
79
|
console.info();
|
|
80
80
|
var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
|
|
81
|
+
var projectName = import_path.default.basename(resolvedProjectPath);
|
|
81
82
|
var { valid, problems } = (0, import_validateNpmPackage.validateNpmName)(projectName);
|
|
82
83
|
if (!valid) {
|
|
83
84
|
console.error(`Could not create a project called ${import_ansis.default.red(`"${projectName}"`)} because of npm naming restrictions:`);
|
|
@@ -202,6 +203,7 @@ async function create(args) {
|
|
|
202
203
|
packageManager,
|
|
203
204
|
isFullClone: true,
|
|
204
205
|
projectName,
|
|
206
|
+
projectDir,
|
|
205
207
|
projectPath: resolvedProjectPath
|
|
206
208
|
});
|
|
207
209
|
}
|
|
@@ -225,6 +227,7 @@ ${e}`);
|
|
|
225
227
|
packageManager,
|
|
226
228
|
isFullClone: true,
|
|
227
229
|
projectName,
|
|
230
|
+
projectDir,
|
|
228
231
|
projectPath: resolvedProjectPath
|
|
229
232
|
});
|
|
230
233
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.native.js","names":[],"sources":["cjs/create.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar create_exports = {};\n__export(create_exports, {\n create: () => create\n});\nmodule.exports = __toCommonJS(create_exports);\nvar import_ansis = __toESM(require(\"ansis\"));\nvar import_fs_extra = __toESM(require(\"fs-extra\"));\nvar import_child_process = require(\"child_process\");\nvar import_fs = __toESM(require(\"fs\"));\nvar import_path = __toESM(require(\"path\"));\nvar import_util = require(\"util\");\nvar import_url = require(\"url\");\nvar import_cloneStarter = require(\"./helpers/cloneStarter\");\nvar import_getProjectName = require(\"./helpers/getProjectName\");\nvar import_getTemplateInfo = require(\"./helpers/getTemplateInfo\");\nvar import_installDependencies = require(\"./helpers/installDependencies\");\nvar import_validateNpmPackage = require(\"./helpers/validateNpmPackage\");\nvar import_prompts = __toESM(require(\"prompts\"));\nvar import_utils = require(\"@vxrn/utils\");\nconst import_meta = {};\nvar { existsSync, readFileSync, writeFileSync } = import_fs_extra.default;\nasync function create(args) {\n var gitVersionString = Number.parseFloat((0, import_child_process.execSync)(`git --version`).toString().replace(`git version `, \"\").trim());\n if (gitVersionString < 2.27) {\n console.error(`\n\n ! vxrn can't install: Git version must be >= 2.27\n\n`);\n process.exit(1);\n }\n var projectName = args.name || \"\";\n var resolvedProjectPath = import_path.default.resolve(process.cwd(), projectName);\n async function promptForName() {\n projectName = await (0, import_getProjectName.getProjectName)();\n resolvedProjectPath = import_path.default.resolve(process.cwd(), projectName);\n }\n if (projectName) {\n if (import_fs.default.existsSync(resolvedProjectPath)) {\n console.error(`Error: folder already exists: ${resolvedProjectPath}`);\n process.exit(1);\n }\n } else {\n await promptForName();\n while (import_fs.default.existsSync(resolvedProjectPath)) {\n console.info();\n console.info(import_ansis.default.yellow(\"!\"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectName))} already exists, lets try another name`);\n console.info();\n console.info();\n await promptForName();\n }\n }\n console.info();\n var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);\n var { valid, problems } = (0, import_validateNpmPackage.validateNpmName)(projectName);\n if (!valid) {\n console.error(`Could not create a project called ${import_ansis.default.red(`\"${projectName}\"`)} because of npm naming restrictions:`);\n problems.forEach(function(p) {\n return console.error(` ${import_ansis.default.red.bold(\"*\")} ${p}`);\n });\n process.exit(1);\n }\n console.info();\n var Spinner = await import(\"yocto-spinner\").then(function(x) {\n return x.default;\n });\n var spinner = Spinner({\n text: `Creating...`,\n spinner: {\n frames: [\n \"\\u280B\",\n \"\\u2819\",\n \"\\u2839\",\n \"\\u2838\",\n \"\\u283C\",\n \"\\u2834\",\n \"\\u2826\",\n \"\\u2827\",\n \"\\u2807\",\n \"\\u280F\"\n ],\n interval: 100\n }\n }).start();\n var packageJson = await (async function() {\n var errorMessages = [];\n try {\n var dirname = typeof __dirname !== \"undefined\" ? __dirname : import_path.default.dirname((0, import_url.fileURLToPath)(import_meta.url));\n var possiblePaths = [\n import_path.default.join(dirname, \"..\", \"package.json\"),\n import_path.default.join(dirname, \"..\", \"..\", \"package.json\"),\n import_path.default.join(dirname, \"..\", \"..\", \"..\", \"package.json\")\n ];\n var readFile = (0, import_util.promisify)(import_fs.default.readFile);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = possiblePaths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var p = _step.value;\n try {\n var data = JSON.parse(await readFile(p));\n return data;\n } catch (e) {\n if (e instanceof Error) errorMessages.push(e.message);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n throw new Error(\"package.json not found in any of the expected locations.\");\n } catch (e) {\n console.error(\"Failed to load package.json:\", errorMessages.join(\"\\n\"));\n throw e;\n }\n })();\n await import_fs_extra.default.mkdir(resolvedProjectPath);\n try {\n await (0, import_cloneStarter.cloneStarter)(template, resolvedProjectPath);\n process.chdir(resolvedProjectPath);\n } catch (e) {\n console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e);\n process.exit(1);\n }\n spinner.stop();\n console.info();\n console.info();\n console.info(import_ansis.default.green(`${projectName} created!`));\n console.info();\n console.info();\n updatePackageJsonName(projectName, resolvedProjectPath);\n updatePackageJsonVersions(packageJson.version, resolvedProjectPath);\n updateAppJsonName(projectName, resolvedProjectPath);\n var packageManager = await (async function() {\n if (\"packageManager\" in template) {\n return template.packageManager;\n }\n var found = await (0, import_utils.detectPackageManager)();\n var allFound = Object.keys(found).filter(function(x) {\n return found[x];\n });\n if (allFound.length === 1) {\n return allFound[0];\n }\n var response = await (0, import_prompts.default)({\n name: \"packageManager\",\n type: \"select\",\n message: `Package Manager:`,\n choices: allFound.map(function(name) {\n return {\n title: name,\n value: name\n };\n })\n });\n return response.packageManager;\n })();\n if (!packageManager) {\n console.info(\"Dependency installation canceled.\");\n return;\n }\n console.info();\n if (\"preInstall\" in template) {\n await template.preInstall({\n packageManager,\n isFullClone: true,\n projectName,\n projectPath: resolvedProjectPath\n });\n }\n try {\n console.info();\n console.info(import_ansis.default.green(`Installing with ${packageManager}...`));\n console.info();\n await (0, import_installDependencies.installDependencies)(resolvedProjectPath, packageManager);\n } catch (e) {\n console.error(\"[vxrn] error installing with \" + packageManager + `\n${e}`);\n process.exit(1);\n }\n var envDefault = import_path.default.join(resolvedProjectPath, \".env.default\");\n var env = import_path.default.join(resolvedProjectPath, \".env\");\n if (existsSync(envDefault) && !existsSync(env)) {\n await import_fs_extra.default.move(envDefault, env);\n }\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n packageManager,\n isFullClone: true,\n projectName,\n projectPath: resolvedProjectPath\n });\n }\n console.info();\n}\nfunction updatePackageJsonName(projectName, dir) {\n var packageJsonPath = import_path.default.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`);\n writeFileSync(packageJsonPath, contentWithUpdatedName);\n }\n}\nfunction updatePackageJsonVersions(version, dir) {\n var packageJsonPath = import_path.default.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedVersions = content.replace(/\"workspace:(?:\\^|~|\\*)\"/gm, `\"${version}\"`);\n writeFileSync(packageJsonPath, contentWithUpdatedVersions);\n }\n}\nfunction updateAppJsonName(projectName, dir) {\n var appJsonPath = import_path.default.join(dir, \"app.json\");\n if (existsSync(appJsonPath)) {\n var content = readFileSync(appJsonPath).toString();\n var projectSlug = projectName.toLowerCase().replace(/\\s/g, \"-\");\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`).replace(/(\"slug\": \")(.*)(\",)/, `$1${projectSlug}$3`);\n writeFileSync(appJsonPath, contentWithUpdatedName);\n }\n}\n//# sourceMappingURL=create.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.native.js","names":[],"sources":["cjs/create.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar create_exports = {};\n__export(create_exports, {\n create: () => create\n});\nmodule.exports = __toCommonJS(create_exports);\nvar import_ansis = __toESM(require(\"ansis\"));\nvar import_fs_extra = __toESM(require(\"fs-extra\"));\nvar import_child_process = require(\"child_process\");\nvar import_fs = __toESM(require(\"fs\"));\nvar import_path = __toESM(require(\"path\"));\nvar import_util = require(\"util\");\nvar import_url = require(\"url\");\nvar import_cloneStarter = require(\"./helpers/cloneStarter\");\nvar import_getProjectName = require(\"./helpers/getProjectName\");\nvar import_getTemplateInfo = require(\"./helpers/getTemplateInfo\");\nvar import_installDependencies = require(\"./helpers/installDependencies\");\nvar import_validateNpmPackage = require(\"./helpers/validateNpmPackage\");\nvar import_prompts = __toESM(require(\"prompts\"));\nvar import_utils = require(\"@vxrn/utils\");\nconst import_meta = {};\nvar { existsSync, readFileSync, writeFileSync } = import_fs_extra.default;\nasync function create(args) {\n var gitVersionString = Number.parseFloat((0, import_child_process.execSync)(`git --version`).toString().replace(`git version `, \"\").trim());\n if (gitVersionString < 2.27) {\n console.error(`\n\n ! vxrn can't install: Git version must be >= 2.27\n\n`);\n process.exit(1);\n }\n var projectDir = args.name || \"\";\n var resolvedProjectPath = import_path.default.resolve(process.cwd(), projectDir);\n async function promptForName() {\n projectDir = await (0, import_getProjectName.getProjectName)();\n resolvedProjectPath = import_path.default.resolve(process.cwd(), projectDir);\n }\n if (projectDir) {\n if (import_fs.default.existsSync(resolvedProjectPath)) {\n console.error(`Error: folder already exists: ${resolvedProjectPath}`);\n process.exit(1);\n }\n } else {\n await promptForName();\n while (import_fs.default.existsSync(resolvedProjectPath)) {\n console.info();\n console.info(import_ansis.default.yellow(\"!\"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectDir))} already exists, lets try another name`);\n console.info();\n console.info();\n await promptForName();\n }\n }\n console.info();\n var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);\n var projectName = import_path.default.basename(resolvedProjectPath);\n var { valid, problems } = (0, import_validateNpmPackage.validateNpmName)(projectName);\n if (!valid) {\n console.error(`Could not create a project called ${import_ansis.default.red(`\"${projectName}\"`)} because of npm naming restrictions:`);\n problems.forEach(function(p) {\n return console.error(` ${import_ansis.default.red.bold(\"*\")} ${p}`);\n });\n process.exit(1);\n }\n console.info();\n var Spinner = await import(\"yocto-spinner\").then(function(x) {\n return x.default;\n });\n var spinner = Spinner({\n text: `Creating...`,\n spinner: {\n frames: [\n \"\\u280B\",\n \"\\u2819\",\n \"\\u2839\",\n \"\\u2838\",\n \"\\u283C\",\n \"\\u2834\",\n \"\\u2826\",\n \"\\u2827\",\n \"\\u2807\",\n \"\\u280F\"\n ],\n interval: 100\n }\n }).start();\n var packageJson = await (async function() {\n var errorMessages = [];\n try {\n var dirname = typeof __dirname !== \"undefined\" ? __dirname : import_path.default.dirname((0, import_url.fileURLToPath)(import_meta.url));\n var possiblePaths = [\n import_path.default.join(dirname, \"..\", \"package.json\"),\n import_path.default.join(dirname, \"..\", \"..\", \"package.json\"),\n import_path.default.join(dirname, \"..\", \"..\", \"..\", \"package.json\")\n ];\n var readFile = (0, import_util.promisify)(import_fs.default.readFile);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = possiblePaths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var p = _step.value;\n try {\n var data = JSON.parse(await readFile(p));\n return data;\n } catch (e) {\n if (e instanceof Error) errorMessages.push(e.message);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n throw new Error(\"package.json not found in any of the expected locations.\");\n } catch (e) {\n console.error(\"Failed to load package.json:\", errorMessages.join(\"\\n\"));\n throw e;\n }\n })();\n await import_fs_extra.default.mkdir(resolvedProjectPath);\n try {\n await (0, import_cloneStarter.cloneStarter)(template, resolvedProjectPath);\n process.chdir(resolvedProjectPath);\n } catch (e) {\n console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e);\n process.exit(1);\n }\n spinner.stop();\n console.info();\n console.info();\n console.info(import_ansis.default.green(`${projectName} created!`));\n console.info();\n console.info();\n updatePackageJsonName(projectName, resolvedProjectPath);\n updatePackageJsonVersions(packageJson.version, resolvedProjectPath);\n updateAppJsonName(projectName, resolvedProjectPath);\n var packageManager = await (async function() {\n if (\"packageManager\" in template) {\n return template.packageManager;\n }\n var found = await (0, import_utils.detectPackageManager)();\n var allFound = Object.keys(found).filter(function(x) {\n return found[x];\n });\n if (allFound.length === 1) {\n return allFound[0];\n }\n var response = await (0, import_prompts.default)({\n name: \"packageManager\",\n type: \"select\",\n message: `Package Manager:`,\n choices: allFound.map(function(name) {\n return {\n title: name,\n value: name\n };\n })\n });\n return response.packageManager;\n })();\n if (!packageManager) {\n console.info(\"Dependency installation canceled.\");\n return;\n }\n console.info();\n if (\"preInstall\" in template) {\n await template.preInstall({\n packageManager,\n isFullClone: true,\n projectName,\n projectDir,\n projectPath: resolvedProjectPath\n });\n }\n try {\n console.info();\n console.info(import_ansis.default.green(`Installing with ${packageManager}...`));\n console.info();\n await (0, import_installDependencies.installDependencies)(resolvedProjectPath, packageManager);\n } catch (e) {\n console.error(\"[vxrn] error installing with \" + packageManager + `\n${e}`);\n process.exit(1);\n }\n var envDefault = import_path.default.join(resolvedProjectPath, \".env.default\");\n var env = import_path.default.join(resolvedProjectPath, \".env\");\n if (existsSync(envDefault) && !existsSync(env)) {\n await import_fs_extra.default.move(envDefault, env);\n }\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n packageManager,\n isFullClone: true,\n projectName,\n projectDir,\n projectPath: resolvedProjectPath\n });\n }\n console.info();\n}\nfunction updatePackageJsonName(projectName, dir) {\n var packageJsonPath = import_path.default.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`);\n writeFileSync(packageJsonPath, contentWithUpdatedName);\n }\n}\nfunction updatePackageJsonVersions(version, dir) {\n var packageJsonPath = import_path.default.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedVersions = content.replace(/\"workspace:(?:\\^|~|\\*)\"/gm, `\"${version}\"`);\n writeFileSync(packageJsonPath, contentWithUpdatedVersions);\n }\n}\nfunction updateAppJsonName(projectName, dir) {\n var appJsonPath = import_path.default.join(dir, \"app.json\");\n if (existsSync(appJsonPath)) {\n var content = readFileSync(appJsonPath).toString();\n var projectSlug = projectName.toLowerCase().replace(/\\s/g, \"-\");\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`).replace(/(\"slug\": \")(.*)(\",)/, `$1${projectSlug}$3`);\n writeFileSync(appJsonPath, contentWithUpdatedName);\n }\n}\n//# sourceMappingURL=create.js.map\n"],"mappings":"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"}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -24,6 +24,7 @@ var import_node_path = __toESM(require("node:path"));
|
|
|
24
24
|
var import_node_process = require("node:process");
|
|
25
25
|
var import_getTemplateInfo = require("./helpers/getTemplateInfo.cjs");
|
|
26
26
|
var import_create = require("./create.cjs");
|
|
27
|
+
var import_utils = require("@vxrn/utils");
|
|
27
28
|
var import_node_url = require("node:url");
|
|
28
29
|
var import_node_fs = require("node:fs");
|
|
29
30
|
const import_meta = {};
|
|
@@ -69,8 +70,10 @@ const main = (0, import_citty.defineCommand)({
|
|
|
69
70
|
if (args.info) {
|
|
70
71
|
let template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
|
|
71
72
|
if ("extraSteps" in template) {
|
|
73
|
+
const found = await (0, import_utils.detectPackageManager)();
|
|
72
74
|
await template.extraSteps({
|
|
73
75
|
isFullClone: false,
|
|
76
|
+
packageManager: Object.keys(found).find((name) => found[name]),
|
|
74
77
|
projectName: import_node_path.default.basename((0, import_node_process.cwd)()),
|
|
75
78
|
projectPath: (0, import_node_process.cwd)()
|
|
76
79
|
});
|
|
@@ -26,6 +26,7 @@ var import_path = __toESM(require("path"));
|
|
|
26
26
|
var import_process = require("process");
|
|
27
27
|
var import_getTemplateInfo = require("./helpers/getTemplateInfo.native.js");
|
|
28
28
|
var import_create = require("./create.native.js");
|
|
29
|
+
var import_utils = require("@vxrn/utils");
|
|
29
30
|
var import_url = require("url");
|
|
30
31
|
var import_fs = require("fs");
|
|
31
32
|
const import_meta = {};
|
|
@@ -72,8 +73,12 @@ var main = (0, import_citty.defineCommand)({
|
|
|
72
73
|
if (args.info) {
|
|
73
74
|
var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
|
|
74
75
|
if ("extraSteps" in template) {
|
|
76
|
+
var found = await (0, import_utils.detectPackageManager)();
|
|
75
77
|
await template.extraSteps({
|
|
76
78
|
isFullClone: false,
|
|
79
|
+
packageManager: Object.keys(found).find(function(name) {
|
|
80
|
+
return found[name];
|
|
81
|
+
}),
|
|
77
82
|
projectName: import_path.default.basename((0, import_process.cwd)()),
|
|
78
83
|
projectPath: (0, import_process.cwd)()
|
|
79
84
|
});
|
package/dist/cjs/index.native.js
CHANGED
|
@@ -26,6 +26,7 @@ var import_path = __toESM(require("path"));
|
|
|
26
26
|
var import_process = require("process");
|
|
27
27
|
var import_getTemplateInfo = require("./helpers/getTemplateInfo.native.js");
|
|
28
28
|
var import_create = require("./create.native.js");
|
|
29
|
+
var import_utils = require("@vxrn/utils");
|
|
29
30
|
var import_url = require("url");
|
|
30
31
|
var import_fs = require("fs");
|
|
31
32
|
const import_meta = {};
|
|
@@ -72,8 +73,12 @@ var main = (0, import_citty.defineCommand)({
|
|
|
72
73
|
if (args.info) {
|
|
73
74
|
var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
|
|
74
75
|
if ("extraSteps" in template) {
|
|
76
|
+
var found = await (0, import_utils.detectPackageManager)();
|
|
75
77
|
await template.extraSteps({
|
|
76
78
|
isFullClone: false,
|
|
79
|
+
packageManager: Object.keys(found).find(function(name) {
|
|
80
|
+
return found[name];
|
|
81
|
+
}),
|
|
77
82
|
projectName: import_path.default.basename((0, import_process.cwd)()),
|
|
78
83
|
projectPath: (0, import_process.cwd)()
|
|
79
84
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.js","names":[],"sources":["cjs/index.native.js"],"sourcesContent":["#!/usr/bin/env node\n\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar import_ansis = __toESM(require(\"ansis\"));\nvar import_citty = require(\"citty\");\nvar import_path = __toESM(require(\"path\"));\nvar import_process = require(\"process\");\nvar import_getTemplateInfo = require(\"./helpers/getTemplateInfo\");\nvar import_create = require(\"./create\");\nvar import_url = require(\"url\");\nvar import_fs = require(\"fs\");\nconst import_meta = {};\nfunction exit() {\n process.exit(0);\n}\nprocess.on(\"SIGTERM\", exit);\nprocess.on(\"SIGINT\", exit);\nfunction getPackageVersion() {\n var dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = import_path.default.dirname((0, import_url.fileURLToPath)(import_meta.url));\n }\n var packagePath = import_path.default.join(dirname, \"..\", \"..\", \"package.json\");\n var packageJson = JSON.parse((0, import_fs.readFileSync)(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nvar main = (0, import_citty.defineCommand)({\n meta: {\n name: \"create-vxrn\",\n version: getPackageVersion(),\n description: \"Welcome to vxrn\"\n },\n args: {\n directory: {\n type: \"positional\",\n description: \"Directory to copy into\",\n default: \"\"\n },\n template: {\n type: \"string\",\n required: false,\n description: \"Choose a template in advance (avoid selection screen).\"\n },\n info: {\n type: \"boolean\",\n description: \"Output the post-install instructions for the template.\"\n }\n },\n async run(param) {\n var { args } = param;\n if (args.info) {\n var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n isFullClone: false,\n projectName: import_path.default.basename((0, import_process.cwd)()),\n projectPath: (0, import_process.cwd)()\n });\n }\n return;\n }\n console.info();\n console.info(import_ansis.default.bold(\"Creating vxrn app...\"));\n await (0, import_create.create)({\n name: args.directory,\n template: args.template\n });\n }\n});\n(0, import_citty.runMain)(main);\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;AAEA,IAAI,WAAW,OAAO;AACtB,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO;AAC1B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,WAAW,KAAK,YAAY,YAAY,SAAS,OAAO,OAAO,SAAS,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,YAKnG,cAAc,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,QAAQ,WAAW;CAAE,OAAO;CAAK,YAAY;AAAK,CAAC,IAAI,QACzG,GACF;AACA,IAAI,eAAe,QAAQ,QAAQ,OAAO,CAAC;AAC3C,IAAI,eAAe,QAAQ,OAAO;AAClC,IAAI,cAAc,QAAQ,QAAQ,MAAM,CAAC;AACzC,IAAI,iBAAiB,QAAQ,SAAS;AACtC,IAAI,yBAAyB,QAAQ,qCAA2B;AAChE,IAAI,gBAAgB,QAAQ,oBAAU;AACtC,IAAI,aAAa,QAAQ,KAAK;AAC9B,IAAI,YAAY,QAAQ,IAAI;AAC5B,MAAM,cAAc,CAAC;AACrB,SAAS,OAAO;CACd,QAAQ,KAAK,CAAC;AAChB;AACA,QAAQ,GAAG,WAAW,IAAI;AAC1B,QAAQ,GAAG,UAAU,IAAI;AACzB,SAAS,oBAAoB;CAC3B,IAAI;CACJ,IAAI,OAAO,cAAc,aAAa;EACpC,UAAU;CACZ,OAAO;EACL,UAAU,YAAY,QAAQ,SAAS,GAAG,WAAW,cAAa,CAAE,YAAY,GAAG,CAAC;CACtF;CACA,IAAI,cAAc,YAAY,QAAQ,KAAK,SAAS,MAAM,MAAM,cAAc;CAC9E,IAAI,cAAc,KAAK,OAAO,GAAG,UAAU,aAAY,CAAE,aAAa,OAAO,CAAC;CAC9E,OAAO,YAAY;AACrB;AACA,IAAI,QAAQ,GAAG,aAAa,cAAa,CAAE;CACzC,MAAM;EACJ,MAAM;EACN,SAAS,kBAAkB;EAC3B,aAAa;CACf;CACA,MAAM;EACJ,WAAW;GACT,MAAM;GACN,aAAa;GACb,SAAS;EACX;EACA,UAAU;GACR,MAAM;GACN,UAAU;GACV,aAAa;EACf;EACA,MAAM;GACJ,MAAM;GACN,aAAa;EACf;CACF;CACA,MAAM,IAAI,OAAO;EACf,IAAI,EAAE,SAAS;EACf,IAAI,KAAK,MAAM;GACb,IAAI,WAAW,OAAO,GAAG,uBAAuB,gBAAe,CAAE,KAAK,QAAQ;GAC9E,IAAI,gBAAgB,UAAU;IAC5B,MAAM,SAAS,WAAW;KACxB,aAAa;KACb,aAAa,YAAY,QAAQ,UAAU,GAAG,eAAe,IAAG,CAAE,CAAC;KACnE,cAAc,GAAG,eAAe,IAAG,CAAE;IACvC,CAAC;GACH;GACA;EACF;EACA,QAAQ,KAAK;EACb,QAAQ,KAAK,aAAa,QAAQ,KAAK,sBAAsB,CAAC;EAC9D,OAAO,GAAG,cAAc,OAAM,CAAE;GAC9B,MAAM,KAAK;GACX,UAAU,KAAK;EACjB,CAAC;CACH;AACF,CAAC;CACA,GAAG,aAAa,QAAO,CAAE,IAAI"}
|
|
1
|
+
{"version":3,"file":"index.native.js","names":[],"sources":["cjs/index.native.js"],"sourcesContent":["#!/usr/bin/env node\n\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar import_ansis = __toESM(require(\"ansis\"));\nvar import_citty = require(\"citty\");\nvar import_path = __toESM(require(\"path\"));\nvar import_process = require(\"process\");\nvar import_getTemplateInfo = require(\"./helpers/getTemplateInfo\");\nvar import_create = require(\"./create\");\nvar import_utils = require(\"@vxrn/utils\");\nvar import_url = require(\"url\");\nvar import_fs = require(\"fs\");\nconst import_meta = {};\nfunction exit() {\n process.exit(0);\n}\nprocess.on(\"SIGTERM\", exit);\nprocess.on(\"SIGINT\", exit);\nfunction getPackageVersion() {\n var dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = import_path.default.dirname((0, import_url.fileURLToPath)(import_meta.url));\n }\n var packagePath = import_path.default.join(dirname, \"..\", \"..\", \"package.json\");\n var packageJson = JSON.parse((0, import_fs.readFileSync)(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nvar main = (0, import_citty.defineCommand)({\n meta: {\n name: \"create-vxrn\",\n version: getPackageVersion(),\n description: \"Welcome to vxrn\"\n },\n args: {\n directory: {\n type: \"positional\",\n description: \"Directory to copy into\",\n default: \"\"\n },\n template: {\n type: \"string\",\n required: false,\n description: \"Choose a template in advance (avoid selection screen).\"\n },\n info: {\n type: \"boolean\",\n description: \"Output the post-install instructions for the template.\"\n }\n },\n async run(param) {\n var { args } = param;\n if (args.info) {\n var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);\n if (\"extraSteps\" in template) {\n var found = await (0, import_utils.detectPackageManager)();\n await template.extraSteps({\n isFullClone: false,\n packageManager: Object.keys(found).find(function(name) {\n return found[name];\n }),\n projectName: import_path.default.basename((0, import_process.cwd)()),\n projectPath: (0, import_process.cwd)()\n });\n }\n return;\n }\n console.info();\n console.info(import_ansis.default.bold(\"Creating vxrn app...\"));\n await (0, import_create.create)({\n name: args.directory,\n template: args.template\n });\n }\n});\n(0, import_citty.runMain)(main);\n//# sourceMappingURL=index.js.map\n"],"mappings":"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"}
|
package/dist/cjs/steps/one.cjs
CHANGED
|
@@ -34,17 +34,17 @@ var import_ansis = __toESM(require("ansis"));
|
|
|
34
34
|
var import_fs_extra = __toESM(require("fs-extra"));
|
|
35
35
|
var import_node_path = require("node:path");
|
|
36
36
|
var import_utils = require("@vxrn/utils");
|
|
37
|
-
const extraSteps = async ({ isFullClone, projectName, packageManager }) => {
|
|
37
|
+
const extraSteps = async ({ isFullClone, projectName, projectDir = projectName, packageManager }) => {
|
|
38
38
|
const useBun = packageManager === "bun";
|
|
39
39
|
const runCommand = (scriptName) => `${packageManager} ${useBun ? "" : "run "}${scriptName}`;
|
|
40
40
|
if (isFullClone) {
|
|
41
41
|
console.info(`
|
|
42
|
-
${import_ansis.default.green.bold("Done!")} Created a new project under
|
|
42
|
+
${import_ansis.default.green.bold("Done!")} Created a new project under ${import_ansis.default.greenBright(projectDir)}`);
|
|
43
43
|
}
|
|
44
44
|
console.info(`
|
|
45
45
|
To run:
|
|
46
46
|
|
|
47
|
-
${import_ansis.default.green("cd")} ${
|
|
47
|
+
${import_ansis.default.green("cd")} ${projectDir}
|
|
48
48
|
${import_ansis.default.green(runCommand("dev"))}
|
|
49
49
|
`);
|
|
50
50
|
};
|
|
@@ -37,19 +37,19 @@ var import_fs_extra = __toESM(require("fs-extra"));
|
|
|
37
37
|
var import_path = require("path");
|
|
38
38
|
var import_utils = require("@vxrn/utils");
|
|
39
39
|
var extraSteps = async function extraSteps2(param) {
|
|
40
|
-
var { isFullClone, projectName, packageManager } = param;
|
|
40
|
+
var { isFullClone, projectName, projectDir = projectName, packageManager } = param;
|
|
41
41
|
var useBun = packageManager === "bun";
|
|
42
42
|
var runCommand = function runCommand2(scriptName) {
|
|
43
43
|
return `${packageManager} ${useBun ? "" : "run "}${scriptName}`;
|
|
44
44
|
};
|
|
45
45
|
if (isFullClone) {
|
|
46
46
|
console.info(`
|
|
47
|
-
${import_ansis.default.green.bold("Done!")} Created a new project under
|
|
47
|
+
${import_ansis.default.green.bold("Done!")} Created a new project under ${import_ansis.default.greenBright(projectDir)}`);
|
|
48
48
|
}
|
|
49
49
|
console.info(`
|
|
50
50
|
To run:
|
|
51
51
|
|
|
52
|
-
${import_ansis.default.green("cd")} ${
|
|
52
|
+
${import_ansis.default.green("cd")} ${projectDir}
|
|
53
53
|
${import_ansis.default.green(runCommand("dev"))}
|
|
54
54
|
`);
|
|
55
55
|
};
|
|
@@ -37,19 +37,19 @@ var import_fs_extra = __toESM(require("fs-extra"));
|
|
|
37
37
|
var import_path = require("path");
|
|
38
38
|
var import_utils = require("@vxrn/utils");
|
|
39
39
|
var extraSteps = async function extraSteps2(param) {
|
|
40
|
-
var { isFullClone, projectName, packageManager } = param;
|
|
40
|
+
var { isFullClone, projectName, projectDir = projectName, packageManager } = param;
|
|
41
41
|
var useBun = packageManager === "bun";
|
|
42
42
|
var runCommand = function runCommand2(scriptName) {
|
|
43
43
|
return `${packageManager} ${useBun ? "" : "run "}${scriptName}`;
|
|
44
44
|
};
|
|
45
45
|
if (isFullClone) {
|
|
46
46
|
console.info(`
|
|
47
|
-
${import_ansis.default.green.bold("Done!")} Created a new project under
|
|
47
|
+
${import_ansis.default.green.bold("Done!")} Created a new project under ${import_ansis.default.greenBright(projectDir)}`);
|
|
48
48
|
}
|
|
49
49
|
console.info(`
|
|
50
50
|
To run:
|
|
51
51
|
|
|
52
|
-
${import_ansis.default.green("cd")} ${
|
|
52
|
+
${import_ansis.default.green("cd")} ${projectDir}
|
|
53
53
|
${import_ansis.default.green(runCommand("dev"))}
|
|
54
54
|
`);
|
|
55
55
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"one.native.js","names":[],"sources":["cjs/steps/one.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar one_exports = {};\n__export(one_exports, {\n extraSteps: () => extraSteps,\n preInstall: () => preInstall\n});\nmodule.exports = __toCommonJS(one_exports);\nvar import_ansis = __toESM(require(\"ansis\"));\nvar import_fs_extra = __toESM(require(\"fs-extra\"));\nvar import_path = require(\"path\");\nvar import_utils = require(\"@vxrn/utils\");\nvar extraSteps = async function extraSteps2(param) {\n var { isFullClone, projectName, packageManager } = param;\n var useBun = packageManager === \"bun\";\n var runCommand = function runCommand2(scriptName) {\n return `${packageManager} ${useBun ? \"\" : \"run \"}${scriptName}`;\n };\n if (isFullClone) {\n console.info(`\n${import_ansis.default.green.bold(\"Done!\")} Created a new project under
|
|
1
|
+
{"version":3,"file":"one.native.js","names":[],"sources":["cjs/steps/one.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar one_exports = {};\n__export(one_exports, {\n extraSteps: () => extraSteps,\n preInstall: () => preInstall\n});\nmodule.exports = __toCommonJS(one_exports);\nvar import_ansis = __toESM(require(\"ansis\"));\nvar import_fs_extra = __toESM(require(\"fs-extra\"));\nvar import_path = require(\"path\");\nvar import_utils = require(\"@vxrn/utils\");\nvar extraSteps = async function extraSteps2(param) {\n var { isFullClone, projectName, projectDir = projectName, packageManager } = param;\n var useBun = packageManager === \"bun\";\n var runCommand = function runCommand2(scriptName) {\n return `${packageManager} ${useBun ? \"\" : \"run \"}${scriptName}`;\n };\n if (isFullClone) {\n console.info(`\n${import_ansis.default.green.bold(\"Done!\")} Created a new project under ${import_ansis.default.greenBright(projectDir)}`);\n }\n console.info(`\nTo run: \n\n ${import_ansis.default.green(\"cd\")} ${projectDir}\n ${import_ansis.default.green(runCommand(\"dev\"))}\n`);\n};\nvar preInstall = async function preInstall2(param) {\n var { projectName, packageManager, projectPath } = param;\n var path = projectPath || projectName;\n var envExample = (0, import_path.join)(path, \".env.example\");\n if (import_fs_extra.default.existsSync(envExample)) {\n await import_fs_extra.default.move(envExample, (0, import_path.join)(path, \".env\"));\n console.info(`Moved .env.example to .env`);\n }\n if (packageManager === \"pnpm\") {\n await import_fs_extra.default.writeFile((0, import_path.join)(path, `.npmrc`), `node-linker=hoisted\n`);\n console.info(`Set up .npmrc to avoid symlinked node_modules\n\nNote! \\u{1F44B}\n\nIf you are working in a monorepo, you need to move the .npmrc with the node-linker\nconfiguration to the root of the monorepo rather than here.\n\n`);\n }\n if (packageManager === \"yarn\") {\n await import_fs_extra.default.writeFile((0, import_path.join)(path, \".yarnrc.yml\"), `\ncompressionLevel: mixed\nenableGlobalCache: false\nenableTelemetry: false\nnodeLinker: node-modules\n\nlogFilters:\n - code: YN0002\n level: discard\n - code: YN0060\n level: discard\n - code: YN0006\n level: discard\n - code: YN0076\n level: discard\n`);\n await (0, import_utils.execPromise)(`yarn set version stable`);\n await import_fs_extra.default.writeFile((0, import_path.join)(path, \"yarn.lock\"), \"\");\n console.info(`Set up yarn for latest version`);\n }\n};\n//# sourceMappingURL=one.js.map\n"],"mappings":"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"}
|
package/dist/esm/create.mjs
CHANGED
|
@@ -24,13 +24,13 @@ async function create(args) {
|
|
|
24
24
|
`);
|
|
25
25
|
process.exit(1);
|
|
26
26
|
}
|
|
27
|
-
let
|
|
28
|
-
let resolvedProjectPath = path.resolve(process.cwd(),
|
|
27
|
+
let projectDir = args.name || "";
|
|
28
|
+
let resolvedProjectPath = path.resolve(process.cwd(), projectDir);
|
|
29
29
|
async function promptForName() {
|
|
30
|
-
|
|
31
|
-
resolvedProjectPath = path.resolve(process.cwd(),
|
|
30
|
+
projectDir = await getProjectName();
|
|
31
|
+
resolvedProjectPath = path.resolve(process.cwd(), projectDir);
|
|
32
32
|
}
|
|
33
|
-
if (
|
|
33
|
+
if (projectDir) {
|
|
34
34
|
if (fs.existsSync(resolvedProjectPath)) {
|
|
35
35
|
console.error(`Error: folder already exists: ${resolvedProjectPath}`);
|
|
36
36
|
process.exit(1);
|
|
@@ -39,7 +39,7 @@ async function create(args) {
|
|
|
39
39
|
await promptForName();
|
|
40
40
|
while (fs.existsSync(resolvedProjectPath)) {
|
|
41
41
|
console.info();
|
|
42
|
-
console.info(ansis.yellow("!"), `The folder ${ansis.underline(ansis.blueBright(
|
|
42
|
+
console.info(ansis.yellow("!"), `The folder ${ansis.underline(ansis.blueBright(projectDir))} already exists, lets try another name`);
|
|
43
43
|
console.info();
|
|
44
44
|
console.info();
|
|
45
45
|
await promptForName();
|
|
@@ -47,6 +47,7 @@ async function create(args) {
|
|
|
47
47
|
}
|
|
48
48
|
console.info();
|
|
49
49
|
let template = await getTemplateInfo(args.template);
|
|
50
|
+
const projectName = path.basename(resolvedProjectPath);
|
|
50
51
|
const { valid, problems } = validateNpmName(projectName);
|
|
51
52
|
if (!valid) {
|
|
52
53
|
console.error(`Could not create a project called ${ansis.red(`"${projectName}"`)} because of npm naming restrictions:`);
|
|
@@ -146,6 +147,7 @@ async function create(args) {
|
|
|
146
147
|
packageManager,
|
|
147
148
|
isFullClone: true,
|
|
148
149
|
projectName,
|
|
150
|
+
projectDir,
|
|
149
151
|
projectPath: resolvedProjectPath
|
|
150
152
|
});
|
|
151
153
|
}
|
|
@@ -169,6 +171,7 @@ ${e}`);
|
|
|
169
171
|
packageManager,
|
|
170
172
|
isFullClone: true,
|
|
171
173
|
projectName,
|
|
174
|
+
projectDir,
|
|
172
175
|
projectPath: resolvedProjectPath
|
|
173
176
|
});
|
|
174
177
|
}
|
package/dist/esm/create.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","names":[],"sources":["esm/create.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { execSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { fileURLToPath } from \"node:url\";\nimport { cloneStarter } from \"./helpers/cloneStarter\";\nimport { getProjectName } from \"./helpers/getProjectName\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { installDependencies } from \"./helpers/installDependencies\";\nimport { validateNpmName } from \"./helpers/validateNpmPackage\";\nimport prompts from \"prompts\";\nimport { detectPackageManager } from \"@vxrn/utils\";\nconst { existsSync, readFileSync, writeFileSync } = FSExtra;\nasync function create(args) {\n const gitVersionString = Number.parseFloat(\n execSync(`git --version`).toString().replace(`git version `, \"\").trim()\n );\n if (gitVersionString < 2.27) {\n console.error(`\n\n ! vxrn can't install: Git version must be >= 2.27\n\n`);\n process.exit(1);\n }\n let projectName = args.name || \"\";\n let resolvedProjectPath = path.resolve(process.cwd(), projectName);\n async function promptForName() {\n projectName = await getProjectName();\n resolvedProjectPath = path.resolve(process.cwd(), projectName);\n }\n if (projectName) {\n if (fs.existsSync(resolvedProjectPath)) {\n console.error(`Error: folder already exists: ${resolvedProjectPath}`);\n process.exit(1);\n }\n } else {\n await promptForName();\n while (fs.existsSync(resolvedProjectPath)) {\n console.info();\n console.info(\n ansis.yellow(\"!\"),\n `The folder ${ansis.underline(\n ansis.blueBright(projectName)\n )} already exists, lets try another name`\n );\n console.info();\n console.info();\n await promptForName();\n }\n }\n console.info();\n let template = await getTemplateInfo(args.template);\n const { valid, problems } = validateNpmName(projectName);\n if (!valid) {\n console.error(\n `Could not create a project called ${ansis.red(\n `\"${projectName}\"`\n )} because of npm naming restrictions:`\n );\n problems.forEach((p) => console.error(` ${ansis.red.bold(\"*\")} ${p}`));\n process.exit(1);\n }\n console.info();\n const Spinner = await import(\"yocto-spinner\").then((x) => x.default);\n const spinner = Spinner({\n text: `Creating...`,\n spinner: {\n frames: [\"\\u280B\", \"\\u2819\", \"\\u2839\", \"\\u2838\", \"\\u283C\", \"\\u2834\", \"\\u2826\", \"\\u2827\", \"\\u2807\", \"\\u280F\"],\n interval: 100\n }\n }).start();\n const packageJson = await (async () => {\n const errorMessages = [];\n try {\n const dirname = typeof __dirname !== \"undefined\" ? __dirname : path.dirname(fileURLToPath(import.meta.url));\n const possiblePaths = [\n path.join(dirname, \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"..\", \"package.json\")\n ];\n const readFile = promisify(fs.readFile);\n for (const p of possiblePaths) {\n try {\n const data = JSON.parse(await readFile(p));\n return data;\n } catch (e) {\n if (e instanceof Error) errorMessages.push(e.message);\n }\n }\n throw new Error(\"package.json not found in any of the expected locations.\");\n } catch (e) {\n console.error(\"Failed to load package.json:\", errorMessages.join(\"\\n\"));\n throw e;\n }\n })();\n await FSExtra.mkdir(resolvedProjectPath);\n try {\n await cloneStarter(template, resolvedProjectPath);\n process.chdir(resolvedProjectPath);\n } catch (e) {\n console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e);\n process.exit(1);\n }\n spinner.stop();\n console.info();\n console.info();\n console.info(ansis.green(`${projectName} created!`));\n console.info();\n console.info();\n updatePackageJsonName(projectName, resolvedProjectPath);\n updatePackageJsonVersions(packageJson.version, resolvedProjectPath);\n updateAppJsonName(projectName, resolvedProjectPath);\n const packageManager = await (async () => {\n if (\"packageManager\" in template) {\n return template.packageManager;\n }\n const found = await detectPackageManager();\n const allFound = Object.keys(found).filter((x) => found[x]);\n if (allFound.length === 1) {\n return allFound[0];\n }\n const response = await prompts({\n name: \"packageManager\",\n type: \"select\",\n message: `Package Manager:`,\n choices: allFound.map((name) => ({\n title: name,\n value: name\n }))\n });\n return response.packageManager;\n })();\n if (!packageManager) {\n console.info(\"Dependency installation canceled.\");\n return;\n }\n console.info();\n if (\"preInstall\" in template) {\n await template.preInstall({\n packageManager,\n isFullClone: true,\n projectName,\n projectPath: resolvedProjectPath\n });\n }\n try {\n console.info();\n console.info(ansis.green(`Installing with ${packageManager}...`));\n console.info();\n await installDependencies(resolvedProjectPath, packageManager);\n } catch (e) {\n console.error(\"[vxrn] error installing with \" + packageManager + `\n${e}`);\n process.exit(1);\n }\n const envDefault = path.join(resolvedProjectPath, \".env.default\");\n const env = path.join(resolvedProjectPath, \".env\");\n if (existsSync(envDefault) && !existsSync(env)) {\n await FSExtra.move(envDefault, env);\n }\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n packageManager,\n isFullClone: true,\n projectName,\n projectPath: resolvedProjectPath\n });\n }\n console.info();\n}\nfunction updatePackageJsonName(projectName, dir) {\n const packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n const content = readFileSync(packageJsonPath).toString();\n const contentWithUpdatedName = content.replace(\n /(\"name\": \")(.*)(\",)/,\n `$1${projectName}$3`\n );\n writeFileSync(packageJsonPath, contentWithUpdatedName);\n }\n}\nfunction updatePackageJsonVersions(version, dir) {\n const packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n const content = readFileSync(packageJsonPath).toString();\n const contentWithUpdatedVersions = content.replace(\n /\"workspace:(?:\\^|~|\\*)\"/gm,\n `\"${version}\"`\n );\n writeFileSync(packageJsonPath, contentWithUpdatedVersions);\n }\n}\nfunction updateAppJsonName(projectName, dir) {\n const appJsonPath = path.join(dir, \"app.json\");\n if (existsSync(appJsonPath)) {\n const content = readFileSync(appJsonPath).toString();\n const projectSlug = projectName.toLowerCase().replace(/\\s/g, \"-\");\n const contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`).replace(/(\"slug\": \")(.*)(\",)/, `$1${projectSlug}$3`);\n writeFileSync(appJsonPath, contentWithUpdatedName);\n }\n}\nexport {\n create\n};\n//# sourceMappingURL=create.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.js","names":[],"sources":["esm/create.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { execSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { fileURLToPath } from \"node:url\";\nimport { cloneStarter } from \"./helpers/cloneStarter\";\nimport { getProjectName } from \"./helpers/getProjectName\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { installDependencies } from \"./helpers/installDependencies\";\nimport { validateNpmName } from \"./helpers/validateNpmPackage\";\nimport prompts from \"prompts\";\nimport { detectPackageManager } from \"@vxrn/utils\";\nconst { existsSync, readFileSync, writeFileSync } = FSExtra;\nasync function create(args) {\n const gitVersionString = Number.parseFloat(\n execSync(`git --version`).toString().replace(`git version `, \"\").trim()\n );\n if (gitVersionString < 2.27) {\n console.error(`\n\n ! vxrn can't install: Git version must be >= 2.27\n\n`);\n process.exit(1);\n }\n let projectDir = args.name || \"\";\n let resolvedProjectPath = path.resolve(process.cwd(), projectDir);\n async function promptForName() {\n projectDir = await getProjectName();\n resolvedProjectPath = path.resolve(process.cwd(), projectDir);\n }\n if (projectDir) {\n if (fs.existsSync(resolvedProjectPath)) {\n console.error(`Error: folder already exists: ${resolvedProjectPath}`);\n process.exit(1);\n }\n } else {\n await promptForName();\n while (fs.existsSync(resolvedProjectPath)) {\n console.info();\n console.info(\n ansis.yellow(\"!\"),\n `The folder ${ansis.underline(\n ansis.blueBright(projectDir)\n )} already exists, lets try another name`\n );\n console.info();\n console.info();\n await promptForName();\n }\n }\n console.info();\n let template = await getTemplateInfo(args.template);\n const projectName = path.basename(resolvedProjectPath);\n const { valid, problems } = validateNpmName(projectName);\n if (!valid) {\n console.error(\n `Could not create a project called ${ansis.red(\n `\"${projectName}\"`\n )} because of npm naming restrictions:`\n );\n problems.forEach((p) => console.error(` ${ansis.red.bold(\"*\")} ${p}`));\n process.exit(1);\n }\n console.info();\n const Spinner = await import(\"yocto-spinner\").then((x) => x.default);\n const spinner = Spinner({\n text: `Creating...`,\n spinner: {\n frames: [\"\\u280B\", \"\\u2819\", \"\\u2839\", \"\\u2838\", \"\\u283C\", \"\\u2834\", \"\\u2826\", \"\\u2827\", \"\\u2807\", \"\\u280F\"],\n interval: 100\n }\n }).start();\n const packageJson = await (async () => {\n const errorMessages = [];\n try {\n const dirname = typeof __dirname !== \"undefined\" ? __dirname : path.dirname(fileURLToPath(import.meta.url));\n const possiblePaths = [\n path.join(dirname, \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"..\", \"package.json\")\n ];\n const readFile = promisify(fs.readFile);\n for (const p of possiblePaths) {\n try {\n const data = JSON.parse(await readFile(p));\n return data;\n } catch (e) {\n if (e instanceof Error) errorMessages.push(e.message);\n }\n }\n throw new Error(\"package.json not found in any of the expected locations.\");\n } catch (e) {\n console.error(\"Failed to load package.json:\", errorMessages.join(\"\\n\"));\n throw e;\n }\n })();\n await FSExtra.mkdir(resolvedProjectPath);\n try {\n await cloneStarter(template, resolvedProjectPath);\n process.chdir(resolvedProjectPath);\n } catch (e) {\n console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e);\n process.exit(1);\n }\n spinner.stop();\n console.info();\n console.info();\n console.info(ansis.green(`${projectName} created!`));\n console.info();\n console.info();\n updatePackageJsonName(projectName, resolvedProjectPath);\n updatePackageJsonVersions(packageJson.version, resolvedProjectPath);\n updateAppJsonName(projectName, resolvedProjectPath);\n const packageManager = await (async () => {\n if (\"packageManager\" in template) {\n return template.packageManager;\n }\n const found = await detectPackageManager();\n const allFound = Object.keys(found).filter((x) => found[x]);\n if (allFound.length === 1) {\n return allFound[0];\n }\n const response = await prompts({\n name: \"packageManager\",\n type: \"select\",\n message: `Package Manager:`,\n choices: allFound.map((name) => ({\n title: name,\n value: name\n }))\n });\n return response.packageManager;\n })();\n if (!packageManager) {\n console.info(\"Dependency installation canceled.\");\n return;\n }\n console.info();\n if (\"preInstall\" in template) {\n await template.preInstall({\n packageManager,\n isFullClone: true,\n projectName,\n projectDir,\n projectPath: resolvedProjectPath\n });\n }\n try {\n console.info();\n console.info(ansis.green(`Installing with ${packageManager}...`));\n console.info();\n await installDependencies(resolvedProjectPath, packageManager);\n } catch (e) {\n console.error(\"[vxrn] error installing with \" + packageManager + `\n${e}`);\n process.exit(1);\n }\n const envDefault = path.join(resolvedProjectPath, \".env.default\");\n const env = path.join(resolvedProjectPath, \".env\");\n if (existsSync(envDefault) && !existsSync(env)) {\n await FSExtra.move(envDefault, env);\n }\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n packageManager,\n isFullClone: true,\n projectName,\n projectDir,\n projectPath: resolvedProjectPath\n });\n }\n console.info();\n}\nfunction updatePackageJsonName(projectName, dir) {\n const packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n const content = readFileSync(packageJsonPath).toString();\n const contentWithUpdatedName = content.replace(\n /(\"name\": \")(.*)(\",)/,\n `$1${projectName}$3`\n );\n writeFileSync(packageJsonPath, contentWithUpdatedName);\n }\n}\nfunction updatePackageJsonVersions(version, dir) {\n const packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n const content = readFileSync(packageJsonPath).toString();\n const contentWithUpdatedVersions = content.replace(\n /\"workspace:(?:\\^|~|\\*)\"/gm,\n `\"${version}\"`\n );\n writeFileSync(packageJsonPath, contentWithUpdatedVersions);\n }\n}\nfunction updateAppJsonName(projectName, dir) {\n const appJsonPath = path.join(dir, \"app.json\");\n if (existsSync(appJsonPath)) {\n const content = readFileSync(appJsonPath).toString();\n const projectSlug = projectName.toLowerCase().replace(/\\s/g, \"-\");\n const contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`).replace(/(\"slug\": \")(.*)(\",)/, `$1${projectSlug}$3`);\n writeFileSync(appJsonPath, contentWithUpdatedName);\n }\n}\nexport {\n create\n};\n//# sourceMappingURL=create.js.map\n"],"mappings":"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"}
|
|
@@ -24,13 +24,13 @@ async function create(args) {
|
|
|
24
24
|
`);
|
|
25
25
|
process.exit(1);
|
|
26
26
|
}
|
|
27
|
-
var
|
|
28
|
-
var resolvedProjectPath = path.resolve(process.cwd(),
|
|
27
|
+
var projectDir = args.name || "";
|
|
28
|
+
var resolvedProjectPath = path.resolve(process.cwd(), projectDir);
|
|
29
29
|
async function promptForName() {
|
|
30
|
-
|
|
31
|
-
resolvedProjectPath = path.resolve(process.cwd(),
|
|
30
|
+
projectDir = await getProjectName();
|
|
31
|
+
resolvedProjectPath = path.resolve(process.cwd(), projectDir);
|
|
32
32
|
}
|
|
33
|
-
if (
|
|
33
|
+
if (projectDir) {
|
|
34
34
|
if (fs.existsSync(resolvedProjectPath)) {
|
|
35
35
|
console.error(`Error: folder already exists: ${resolvedProjectPath}`);
|
|
36
36
|
process.exit(1);
|
|
@@ -39,7 +39,7 @@ async function create(args) {
|
|
|
39
39
|
await promptForName();
|
|
40
40
|
while (fs.existsSync(resolvedProjectPath)) {
|
|
41
41
|
console.info();
|
|
42
|
-
console.info(ansis.yellow("!"), `The folder ${ansis.underline(ansis.blueBright(
|
|
42
|
+
console.info(ansis.yellow("!"), `The folder ${ansis.underline(ansis.blueBright(projectDir))} already exists, lets try another name`);
|
|
43
43
|
console.info();
|
|
44
44
|
console.info();
|
|
45
45
|
await promptForName();
|
|
@@ -47,6 +47,7 @@ async function create(args) {
|
|
|
47
47
|
}
|
|
48
48
|
console.info();
|
|
49
49
|
var template = await getTemplateInfo(args.template);
|
|
50
|
+
var projectName = path.basename(resolvedProjectPath);
|
|
50
51
|
var { valid, problems } = validateNpmName(projectName);
|
|
51
52
|
if (!valid) {
|
|
52
53
|
console.error(`Could not create a project called ${ansis.red(`"${projectName}"`)} because of npm naming restrictions:`);
|
|
@@ -171,6 +172,7 @@ async function create(args) {
|
|
|
171
172
|
packageManager,
|
|
172
173
|
isFullClone: true,
|
|
173
174
|
projectName,
|
|
175
|
+
projectDir,
|
|
174
176
|
projectPath: resolvedProjectPath
|
|
175
177
|
});
|
|
176
178
|
}
|
|
@@ -194,6 +196,7 @@ ${e}`);
|
|
|
194
196
|
packageManager,
|
|
195
197
|
isFullClone: true,
|
|
196
198
|
projectName,
|
|
199
|
+
projectDir,
|
|
197
200
|
projectPath: resolvedProjectPath
|
|
198
201
|
});
|
|
199
202
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.native.js","names":[],"sources":["esm/create.native.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { execSync } from \"child_process\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport { promisify } from \"util\";\nimport { fileURLToPath } from \"url\";\nimport { cloneStarter } from \"./helpers/cloneStarter\";\nimport { getProjectName } from \"./helpers/getProjectName\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { installDependencies } from \"./helpers/installDependencies\";\nimport { validateNpmName } from \"./helpers/validateNpmPackage\";\nimport prompts from \"prompts\";\nimport { detectPackageManager } from \"@vxrn/utils\";\nvar { existsSync, readFileSync, writeFileSync } = FSExtra;\nasync function create(args) {\n var gitVersionString = Number.parseFloat(execSync(`git --version`).toString().replace(`git version `, \"\").trim());\n if (gitVersionString < 2.27) {\n console.error(`\n\n ! vxrn can't install: Git version must be >= 2.27\n\n`);\n process.exit(1);\n }\n var projectName = args.name || \"\";\n var resolvedProjectPath = path.resolve(process.cwd(), projectName);\n async function promptForName() {\n projectName = await getProjectName();\n resolvedProjectPath = path.resolve(process.cwd(), projectName);\n }\n if (projectName) {\n if (fs.existsSync(resolvedProjectPath)) {\n console.error(`Error: folder already exists: ${resolvedProjectPath}`);\n process.exit(1);\n }\n } else {\n await promptForName();\n while (fs.existsSync(resolvedProjectPath)) {\n console.info();\n console.info(ansis.yellow(\"!\"), `The folder ${ansis.underline(ansis.blueBright(projectName))} already exists, lets try another name`);\n console.info();\n console.info();\n await promptForName();\n }\n }\n console.info();\n var template = await getTemplateInfo(args.template);\n var { valid, problems } = validateNpmName(projectName);\n if (!valid) {\n console.error(`Could not create a project called ${ansis.red(`\"${projectName}\"`)} because of npm naming restrictions:`);\n problems.forEach(function(p) {\n return console.error(` ${ansis.red.bold(\"*\")} ${p}`);\n });\n process.exit(1);\n }\n console.info();\n var Spinner = await import(\"yocto-spinner\").then(function(x) {\n return x.default;\n });\n var spinner = Spinner({\n text: `Creating...`,\n spinner: {\n frames: [\n \"\\u280B\",\n \"\\u2819\",\n \"\\u2839\",\n \"\\u2838\",\n \"\\u283C\",\n \"\\u2834\",\n \"\\u2826\",\n \"\\u2827\",\n \"\\u2807\",\n \"\\u280F\"\n ],\n interval: 100\n }\n }).start();\n var packageJson = await (async function() {\n var errorMessages = [];\n try {\n var dirname = typeof __dirname !== \"undefined\" ? __dirname : path.dirname(fileURLToPath(import.meta.url));\n var possiblePaths = [\n path.join(dirname, \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"..\", \"package.json\")\n ];\n var readFile = promisify(fs.readFile);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = possiblePaths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var p = _step.value;\n try {\n var data = JSON.parse(await readFile(p));\n return data;\n } catch (e) {\n if (e instanceof Error) errorMessages.push(e.message);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n throw new Error(\"package.json not found in any of the expected locations.\");\n } catch (e) {\n console.error(\"Failed to load package.json:\", errorMessages.join(\"\\n\"));\n throw e;\n }\n })();\n await FSExtra.mkdir(resolvedProjectPath);\n try {\n await cloneStarter(template, resolvedProjectPath);\n process.chdir(resolvedProjectPath);\n } catch (e) {\n console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e);\n process.exit(1);\n }\n spinner.stop();\n console.info();\n console.info();\n console.info(ansis.green(`${projectName} created!`));\n console.info();\n console.info();\n updatePackageJsonName(projectName, resolvedProjectPath);\n updatePackageJsonVersions(packageJson.version, resolvedProjectPath);\n updateAppJsonName(projectName, resolvedProjectPath);\n var packageManager = await (async function() {\n if (\"packageManager\" in template) {\n return template.packageManager;\n }\n var found = await detectPackageManager();\n var allFound = Object.keys(found).filter(function(x) {\n return found[x];\n });\n if (allFound.length === 1) {\n return allFound[0];\n }\n var response = await prompts({\n name: \"packageManager\",\n type: \"select\",\n message: `Package Manager:`,\n choices: allFound.map(function(name) {\n return {\n title: name,\n value: name\n };\n })\n });\n return response.packageManager;\n })();\n if (!packageManager) {\n console.info(\"Dependency installation canceled.\");\n return;\n }\n console.info();\n if (\"preInstall\" in template) {\n await template.preInstall({\n packageManager,\n isFullClone: true,\n projectName,\n projectPath: resolvedProjectPath\n });\n }\n try {\n console.info();\n console.info(ansis.green(`Installing with ${packageManager}...`));\n console.info();\n await installDependencies(resolvedProjectPath, packageManager);\n } catch (e) {\n console.error(\"[vxrn] error installing with \" + packageManager + `\n${e}`);\n process.exit(1);\n }\n var envDefault = path.join(resolvedProjectPath, \".env.default\");\n var env = path.join(resolvedProjectPath, \".env\");\n if (existsSync(envDefault) && !existsSync(env)) {\n await FSExtra.move(envDefault, env);\n }\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n packageManager,\n isFullClone: true,\n projectName,\n projectPath: resolvedProjectPath\n });\n }\n console.info();\n}\nfunction updatePackageJsonName(projectName, dir) {\n var packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`);\n writeFileSync(packageJsonPath, contentWithUpdatedName);\n }\n}\nfunction updatePackageJsonVersions(version, dir) {\n var packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedVersions = content.replace(/\"workspace:(?:\\^|~|\\*)\"/gm, `\"${version}\"`);\n writeFileSync(packageJsonPath, contentWithUpdatedVersions);\n }\n}\nfunction updateAppJsonName(projectName, dir) {\n var appJsonPath = path.join(dir, \"app.json\");\n if (existsSync(appJsonPath)) {\n var content = readFileSync(appJsonPath).toString();\n var projectSlug = projectName.toLowerCase().replace(/\\s/g, \"-\");\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`).replace(/(\"slug\": \")(.*)(\",)/, `$1${projectSlug}$3`);\n writeFileSync(appJsonPath, contentWithUpdatedName);\n }\n}\nexport {\n create\n};\n//# sourceMappingURL=create.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.native.js","names":[],"sources":["esm/create.native.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { execSync } from \"child_process\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport { promisify } from \"util\";\nimport { fileURLToPath } from \"url\";\nimport { cloneStarter } from \"./helpers/cloneStarter\";\nimport { getProjectName } from \"./helpers/getProjectName\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { installDependencies } from \"./helpers/installDependencies\";\nimport { validateNpmName } from \"./helpers/validateNpmPackage\";\nimport prompts from \"prompts\";\nimport { detectPackageManager } from \"@vxrn/utils\";\nvar { existsSync, readFileSync, writeFileSync } = FSExtra;\nasync function create(args) {\n var gitVersionString = Number.parseFloat(execSync(`git --version`).toString().replace(`git version `, \"\").trim());\n if (gitVersionString < 2.27) {\n console.error(`\n\n ! vxrn can't install: Git version must be >= 2.27\n\n`);\n process.exit(1);\n }\n var projectDir = args.name || \"\";\n var resolvedProjectPath = path.resolve(process.cwd(), projectDir);\n async function promptForName() {\n projectDir = await getProjectName();\n resolvedProjectPath = path.resolve(process.cwd(), projectDir);\n }\n if (projectDir) {\n if (fs.existsSync(resolvedProjectPath)) {\n console.error(`Error: folder already exists: ${resolvedProjectPath}`);\n process.exit(1);\n }\n } else {\n await promptForName();\n while (fs.existsSync(resolvedProjectPath)) {\n console.info();\n console.info(ansis.yellow(\"!\"), `The folder ${ansis.underline(ansis.blueBright(projectDir))} already exists, lets try another name`);\n console.info();\n console.info();\n await promptForName();\n }\n }\n console.info();\n var template = await getTemplateInfo(args.template);\n var projectName = path.basename(resolvedProjectPath);\n var { valid, problems } = validateNpmName(projectName);\n if (!valid) {\n console.error(`Could not create a project called ${ansis.red(`\"${projectName}\"`)} because of npm naming restrictions:`);\n problems.forEach(function(p) {\n return console.error(` ${ansis.red.bold(\"*\")} ${p}`);\n });\n process.exit(1);\n }\n console.info();\n var Spinner = await import(\"yocto-spinner\").then(function(x) {\n return x.default;\n });\n var spinner = Spinner({\n text: `Creating...`,\n spinner: {\n frames: [\n \"\\u280B\",\n \"\\u2819\",\n \"\\u2839\",\n \"\\u2838\",\n \"\\u283C\",\n \"\\u2834\",\n \"\\u2826\",\n \"\\u2827\",\n \"\\u2807\",\n \"\\u280F\"\n ],\n interval: 100\n }\n }).start();\n var packageJson = await (async function() {\n var errorMessages = [];\n try {\n var dirname = typeof __dirname !== \"undefined\" ? __dirname : path.dirname(fileURLToPath(import.meta.url));\n var possiblePaths = [\n path.join(dirname, \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"..\", \"package.json\")\n ];\n var readFile = promisify(fs.readFile);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = possiblePaths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var p = _step.value;\n try {\n var data = JSON.parse(await readFile(p));\n return data;\n } catch (e) {\n if (e instanceof Error) errorMessages.push(e.message);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n throw new Error(\"package.json not found in any of the expected locations.\");\n } catch (e) {\n console.error(\"Failed to load package.json:\", errorMessages.join(\"\\n\"));\n throw e;\n }\n })();\n await FSExtra.mkdir(resolvedProjectPath);\n try {\n await cloneStarter(template, resolvedProjectPath);\n process.chdir(resolvedProjectPath);\n } catch (e) {\n console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e);\n process.exit(1);\n }\n spinner.stop();\n console.info();\n console.info();\n console.info(ansis.green(`${projectName} created!`));\n console.info();\n console.info();\n updatePackageJsonName(projectName, resolvedProjectPath);\n updatePackageJsonVersions(packageJson.version, resolvedProjectPath);\n updateAppJsonName(projectName, resolvedProjectPath);\n var packageManager = await (async function() {\n if (\"packageManager\" in template) {\n return template.packageManager;\n }\n var found = await detectPackageManager();\n var allFound = Object.keys(found).filter(function(x) {\n return found[x];\n });\n if (allFound.length === 1) {\n return allFound[0];\n }\n var response = await prompts({\n name: \"packageManager\",\n type: \"select\",\n message: `Package Manager:`,\n choices: allFound.map(function(name) {\n return {\n title: name,\n value: name\n };\n })\n });\n return response.packageManager;\n })();\n if (!packageManager) {\n console.info(\"Dependency installation canceled.\");\n return;\n }\n console.info();\n if (\"preInstall\" in template) {\n await template.preInstall({\n packageManager,\n isFullClone: true,\n projectName,\n projectDir,\n projectPath: resolvedProjectPath\n });\n }\n try {\n console.info();\n console.info(ansis.green(`Installing with ${packageManager}...`));\n console.info();\n await installDependencies(resolvedProjectPath, packageManager);\n } catch (e) {\n console.error(\"[vxrn] error installing with \" + packageManager + `\n${e}`);\n process.exit(1);\n }\n var envDefault = path.join(resolvedProjectPath, \".env.default\");\n var env = path.join(resolvedProjectPath, \".env\");\n if (existsSync(envDefault) && !existsSync(env)) {\n await FSExtra.move(envDefault, env);\n }\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n packageManager,\n isFullClone: true,\n projectName,\n projectDir,\n projectPath: resolvedProjectPath\n });\n }\n console.info();\n}\nfunction updatePackageJsonName(projectName, dir) {\n var packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`);\n writeFileSync(packageJsonPath, contentWithUpdatedName);\n }\n}\nfunction updatePackageJsonVersions(version, dir) {\n var packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedVersions = content.replace(/\"workspace:(?:\\^|~|\\*)\"/gm, `\"${version}\"`);\n writeFileSync(packageJsonPath, contentWithUpdatedVersions);\n }\n}\nfunction updateAppJsonName(projectName, dir) {\n var appJsonPath = path.join(dir, \"app.json\");\n if (existsSync(appJsonPath)) {\n var content = readFileSync(appJsonPath).toString();\n var projectSlug = projectName.toLowerCase().replace(/\\s/g, \"-\");\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`).replace(/(\"slug\": \")(.*)(\",)/, `$1${projectSlug}$3`);\n writeFileSync(appJsonPath, contentWithUpdatedName);\n }\n}\nexport {\n create\n};\n//# sourceMappingURL=create.js.map\n"],"mappings":"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"}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -5,6 +5,7 @@ import path from "node:path";
|
|
|
5
5
|
import { cwd } from "node:process";
|
|
6
6
|
import { getTemplateInfo } from "./helpers/getTemplateInfo.mjs";
|
|
7
7
|
import { create } from "./create.mjs";
|
|
8
|
+
import { detectPackageManager } from "@vxrn/utils";
|
|
8
9
|
import { fileURLToPath } from "node:url";
|
|
9
10
|
import { readFileSync } from "node:fs";
|
|
10
11
|
|
|
@@ -50,8 +51,10 @@ const main = defineCommand({
|
|
|
50
51
|
if (args.info) {
|
|
51
52
|
let template = await getTemplateInfo(args.template);
|
|
52
53
|
if ("extraSteps" in template) {
|
|
54
|
+
const found = await detectPackageManager();
|
|
53
55
|
await template.extraSteps({
|
|
54
56
|
isFullClone: false,
|
|
57
|
+
packageManager: Object.keys(found).find((name) => found[name]),
|
|
55
58
|
projectName: path.basename(cwd()),
|
|
56
59
|
projectPath: cwd()
|
|
57
60
|
});
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["esm/index.js"],"sourcesContent":["#!/usr/bin/env node\nimport ansis from \"ansis\";\nimport { defineCommand, runMain } from \"citty\";\nimport path from \"node:path\";\nimport { cwd } from \"node:process\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { create } from \"./create\";\nimport { fileURLToPath } from \"node:url\";\nimport { readFileSync } from \"node:fs\";\nfunction exit() {\n process.exit(0);\n}\nprocess.on(\"SIGTERM\", exit);\nprocess.on(\"SIGINT\", exit);\nfunction getPackageVersion() {\n let dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = path.dirname(fileURLToPath(import.meta.url));\n }\n const packagePath = path.join(dirname, \"..\", \"..\", \"package.json\");\n const packageJson = JSON.parse(readFileSync(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nconst main = defineCommand({\n meta: {\n name: \"create-vxrn\",\n version: getPackageVersion(),\n description: \"Welcome to vxrn\"\n },\n args: {\n directory: {\n type: \"positional\",\n description: \"Directory to copy into\",\n default: \"\"\n },\n template: {\n type: \"string\",\n required: false,\n description: \"Choose a template in advance (avoid selection screen).\"\n },\n info: {\n type: \"boolean\",\n description: \"Output the post-install instructions for the template.\"\n }\n },\n async run({ args }) {\n if (args.info) {\n let template = await getTemplateInfo(args.template);\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n isFullClone: false,\n projectName: path.basename(cwd()),\n projectPath: cwd()\n });\n }\n return;\n }\n console.info();\n console.info(ansis.bold(\"Creating vxrn app...\"));\n await create({ name: args.directory, template: args.template });\n }\n});\nrunMain(main);\n//# sourceMappingURL=index.js.map\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["esm/index.js"],"sourcesContent":["#!/usr/bin/env node\nimport ansis from \"ansis\";\nimport { defineCommand, runMain } from \"citty\";\nimport path from \"node:path\";\nimport { cwd } from \"node:process\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { create } from \"./create\";\nimport { detectPackageManager } from \"@vxrn/utils\";\nimport { fileURLToPath } from \"node:url\";\nimport { readFileSync } from \"node:fs\";\nfunction exit() {\n process.exit(0);\n}\nprocess.on(\"SIGTERM\", exit);\nprocess.on(\"SIGINT\", exit);\nfunction getPackageVersion() {\n let dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = path.dirname(fileURLToPath(import.meta.url));\n }\n const packagePath = path.join(dirname, \"..\", \"..\", \"package.json\");\n const packageJson = JSON.parse(readFileSync(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nconst main = defineCommand({\n meta: {\n name: \"create-vxrn\",\n version: getPackageVersion(),\n description: \"Welcome to vxrn\"\n },\n args: {\n directory: {\n type: \"positional\",\n description: \"Directory to copy into\",\n default: \"\"\n },\n template: {\n type: \"string\",\n required: false,\n description: \"Choose a template in advance (avoid selection screen).\"\n },\n info: {\n type: \"boolean\",\n description: \"Output the post-install instructions for the template.\"\n }\n },\n async run({ args }) {\n if (args.info) {\n let template = await getTemplateInfo(args.template);\n if (\"extraSteps\" in template) {\n const found = await detectPackageManager();\n await template.extraSteps({\n isFullClone: false,\n packageManager: Object.keys(found).find(\n (name) => found[name]\n ),\n projectName: path.basename(cwd()),\n projectPath: cwd()\n });\n }\n return;\n }\n console.info();\n console.info(ansis.bold(\"Creating vxrn app...\"));\n await create({ name: args.directory, template: args.template });\n }\n});\nrunMain(main);\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;;;;;;;;;AAUA,SAAS,OAAO;CACd,QAAQ,KAAK,CAAC;AAChB;AACA,QAAQ,GAAG,WAAW,IAAI;AAC1B,QAAQ,GAAG,UAAU,IAAI;AACzB,SAAS,oBAAoB;CAC3B,IAAI;CACJ,IAAI,OAAO,cAAc,aAAa;EACpC,UAAU;CACZ,OAAO;EACL,UAAU,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC;CACvD;CACA,MAAM,cAAc,KAAK,KAAK,SAAS,MAAM,MAAM,cAAc;CACjE,MAAM,cAAc,KAAK,MAAM,aAAa,aAAa,OAAO,CAAC;CACjE,OAAO,YAAY;AACrB;AACA,MAAM,OAAO,cAAc;CACzB,MAAM;EACJ,MAAM;EACN,SAAS,kBAAkB;EAC3B,aAAa;CACf;CACA,MAAM;EACJ,WAAW;GACT,MAAM;GACN,aAAa;GACb,SAAS;EACX;EACA,UAAU;GACR,MAAM;GACN,UAAU;GACV,aAAa;EACf;EACA,MAAM;GACJ,MAAM;GACN,aAAa;EACf;CACF;CACA,MAAM,IAAI,EAAE,QAAQ;EAClB,IAAI,KAAK,MAAM;GACb,IAAI,WAAW,MAAM,gBAAgB,KAAK,QAAQ;GAClD,IAAI,gBAAgB,UAAU;IAC5B,MAAM,QAAQ,MAAM,qBAAqB;IACzC,MAAM,SAAS,WAAW;KACxB,aAAa;KACb,gBAAgB,OAAO,KAAK,KAAK,CAAC,CAAC,MAChC,SAAS,MAAM,KAClB;KACA,aAAa,KAAK,SAAS,IAAI,CAAC;KAChC,aAAa,IAAI;IACnB,CAAC;GACH;GACA;EACF;EACA,QAAQ,KAAK;EACb,QAAQ,KAAK,MAAM,KAAK,sBAAsB,CAAC;EAC/C,MAAM,OAAO;GAAE,MAAM,KAAK;GAAW,UAAU,KAAK;EAAS,CAAC;CAChE;AACF,CAAC;AACD,QAAQ,IAAI"}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -5,6 +5,7 @@ import path from "path";
|
|
|
5
5
|
import { cwd } from "process";
|
|
6
6
|
import { getTemplateInfo } from "./helpers/getTemplateInfo.native.js";
|
|
7
7
|
import { create } from "./create.native.js";
|
|
8
|
+
import { detectPackageManager } from "@vxrn/utils";
|
|
8
9
|
import { fileURLToPath } from "url";
|
|
9
10
|
import { readFileSync } from "fs";
|
|
10
11
|
|
|
@@ -51,8 +52,12 @@ var main = defineCommand({
|
|
|
51
52
|
if (args.info) {
|
|
52
53
|
var template = await getTemplateInfo(args.template);
|
|
53
54
|
if ("extraSteps" in template) {
|
|
55
|
+
var found = await detectPackageManager();
|
|
54
56
|
await template.extraSteps({
|
|
55
57
|
isFullClone: false,
|
|
58
|
+
packageManager: Object.keys(found).find(function(name) {
|
|
59
|
+
return found[name];
|
|
60
|
+
}),
|
|
56
61
|
projectName: path.basename(cwd()),
|
|
57
62
|
projectPath: cwd()
|
|
58
63
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.js","names":[],"sources":["esm/index.native.js"],"sourcesContent":["#!/usr/bin/env node\nimport ansis from \"ansis\";\nimport { defineCommand, runMain } from \"citty\";\nimport path from \"path\";\nimport { cwd } from \"process\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { create } from \"./create\";\nimport { fileURLToPath } from \"url\";\nimport { readFileSync } from \"fs\";\nfunction exit() {\n process.exit(0);\n}\nprocess.on(\"SIGTERM\", exit);\nprocess.on(\"SIGINT\", exit);\nfunction getPackageVersion() {\n var dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = path.dirname(fileURLToPath(import.meta.url));\n }\n var packagePath = path.join(dirname, \"..\", \"..\", \"package.json\");\n var packageJson = JSON.parse(readFileSync(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nvar main = defineCommand({\n meta: {\n name: \"create-vxrn\",\n version: getPackageVersion(),\n description: \"Welcome to vxrn\"\n },\n args: {\n directory: {\n type: \"positional\",\n description: \"Directory to copy into\",\n default: \"\"\n },\n template: {\n type: \"string\",\n required: false,\n description: \"Choose a template in advance (avoid selection screen).\"\n },\n info: {\n type: \"boolean\",\n description: \"Output the post-install instructions for the template.\"\n }\n },\n async run(param) {\n var { args } = param;\n if (args.info) {\n var template = await getTemplateInfo(args.template);\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n isFullClone: false,\n projectName: path.basename(cwd()),\n projectPath: cwd()\n });\n }\n return;\n }\n console.info();\n console.info(ansis.bold(\"Creating vxrn app...\"));\n await create({\n name: args.directory,\n template: args.template\n });\n }\n});\nrunMain(main);\n//# sourceMappingURL=index.js.map\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.native.js","names":[],"sources":["esm/index.native.js"],"sourcesContent":["#!/usr/bin/env node\nimport ansis from \"ansis\";\nimport { defineCommand, runMain } from \"citty\";\nimport path from \"path\";\nimport { cwd } from \"process\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { create } from \"./create\";\nimport { detectPackageManager } from \"@vxrn/utils\";\nimport { fileURLToPath } from \"url\";\nimport { readFileSync } from \"fs\";\nfunction exit() {\n process.exit(0);\n}\nprocess.on(\"SIGTERM\", exit);\nprocess.on(\"SIGINT\", exit);\nfunction getPackageVersion() {\n var dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = path.dirname(fileURLToPath(import.meta.url));\n }\n var packagePath = path.join(dirname, \"..\", \"..\", \"package.json\");\n var packageJson = JSON.parse(readFileSync(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nvar main = defineCommand({\n meta: {\n name: \"create-vxrn\",\n version: getPackageVersion(),\n description: \"Welcome to vxrn\"\n },\n args: {\n directory: {\n type: \"positional\",\n description: \"Directory to copy into\",\n default: \"\"\n },\n template: {\n type: \"string\",\n required: false,\n description: \"Choose a template in advance (avoid selection screen).\"\n },\n info: {\n type: \"boolean\",\n description: \"Output the post-install instructions for the template.\"\n }\n },\n async run(param) {\n var { args } = param;\n if (args.info) {\n var template = await getTemplateInfo(args.template);\n if (\"extraSteps\" in template) {\n var found = await detectPackageManager();\n await template.extraSteps({\n isFullClone: false,\n packageManager: Object.keys(found).find(function(name) {\n return found[name];\n }),\n projectName: path.basename(cwd()),\n projectPath: cwd()\n });\n }\n return;\n }\n console.info();\n console.info(ansis.bold(\"Creating vxrn app...\"));\n await create({\n name: args.directory,\n template: args.template\n });\n }\n});\nrunMain(main);\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;;;;;;;;;AAUA,SAAS,OAAO;CACd,QAAQ,KAAK,CAAC;AAChB;AACA,QAAQ,GAAG,WAAW,IAAI;AAC1B,QAAQ,GAAG,UAAU,IAAI;AACzB,SAAS,oBAAoB;CAC3B,IAAI;CACJ,IAAI,OAAO,cAAc,aAAa;EACpC,UAAU;CACZ,OAAO;EACL,UAAU,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC;CACvD;CACA,IAAI,cAAc,KAAK,KAAK,SAAS,MAAM,MAAM,cAAc;CAC/D,IAAI,cAAc,KAAK,MAAM,aAAa,aAAa,OAAO,CAAC;CAC/D,OAAO,YAAY;AACrB;AACA,IAAI,OAAO,cAAc;CACvB,MAAM;EACJ,MAAM;EACN,SAAS,kBAAkB;EAC3B,aAAa;CACf;CACA,MAAM;EACJ,WAAW;GACT,MAAM;GACN,aAAa;GACb,SAAS;EACX;EACA,UAAU;GACR,MAAM;GACN,UAAU;GACV,aAAa;EACf;EACA,MAAM;GACJ,MAAM;GACN,aAAa;EACf;CACF;CACA,MAAM,IAAI,OAAO;EACf,IAAI,EAAE,SAAS;EACf,IAAI,KAAK,MAAM;GACb,IAAI,WAAW,MAAM,gBAAgB,KAAK,QAAQ;GAClD,IAAI,gBAAgB,UAAU;IAC5B,IAAI,QAAQ,MAAM,qBAAqB;IACvC,MAAM,SAAS,WAAW;KACxB,aAAa;KACb,gBAAgB,OAAO,KAAK,KAAK,CAAC,CAAC,KAAK,SAAS,MAAM;MACrD,OAAO,MAAM;KACf,CAAC;KACD,aAAa,KAAK,SAAS,IAAI,CAAC;KAChC,aAAa,IAAI;IACnB,CAAC;GACH;GACA;EACF;EACA,QAAQ,KAAK;EACb,QAAQ,KAAK,MAAM,KAAK,sBAAsB,CAAC;EAC/C,MAAM,OAAO;GACX,MAAM,KAAK;GACX,UAAU,KAAK;EACjB,CAAC;CACH;AACF,CAAC;AACD,QAAQ,IAAI"}
|
package/dist/esm/steps/one.mjs
CHANGED
|
@@ -3,17 +3,17 @@ import FSExtra from "fs-extra";
|
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { execPromise } from "@vxrn/utils";
|
|
5
5
|
|
|
6
|
-
const extraSteps = async ({ isFullClone, projectName, packageManager }) => {
|
|
6
|
+
const extraSteps = async ({ isFullClone, projectName, projectDir = projectName, packageManager }) => {
|
|
7
7
|
const useBun = packageManager === "bun";
|
|
8
8
|
const runCommand = (scriptName) => `${packageManager} ${useBun ? "" : "run "}${scriptName}`;
|
|
9
9
|
if (isFullClone) {
|
|
10
10
|
console.info(`
|
|
11
|
-
${ansis.green.bold("Done!")} Created a new project under
|
|
11
|
+
${ansis.green.bold("Done!")} Created a new project under ${ansis.greenBright(projectDir)}`);
|
|
12
12
|
}
|
|
13
13
|
console.info(`
|
|
14
14
|
To run:
|
|
15
15
|
|
|
16
|
-
${ansis.green("cd")} ${
|
|
16
|
+
${ansis.green("cd")} ${projectDir}
|
|
17
17
|
${ansis.green(runCommand("dev"))}
|
|
18
18
|
`);
|
|
19
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"one.js","names":[],"sources":["esm/steps/one.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { join } from \"node:path\";\nimport { execPromise } from \"@vxrn/utils\";\nconst extraSteps = async ({\n isFullClone,\n projectName,\n packageManager\n}) => {\n const useBun = packageManager === \"bun\";\n const runCommand = (scriptName) => `${packageManager} ${useBun ? \"\" : \"run \"}${scriptName}`;\n if (isFullClone) {\n console.info(\n `\n${ansis.green.bold(\"Done!\")} Created a new project under
|
|
1
|
+
{"version":3,"file":"one.js","names":[],"sources":["esm/steps/one.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { join } from \"node:path\";\nimport { execPromise } from \"@vxrn/utils\";\nconst extraSteps = async ({\n isFullClone,\n projectName,\n projectDir = projectName,\n packageManager\n}) => {\n const useBun = packageManager === \"bun\";\n const runCommand = (scriptName) => `${packageManager} ${useBun ? \"\" : \"run \"}${scriptName}`;\n if (isFullClone) {\n console.info(\n `\n${ansis.green.bold(\"Done!\")} Created a new project under ${ansis.greenBright(projectDir)}`\n );\n }\n console.info(`\nTo run: \n\n ${ansis.green(\"cd\")} ${projectDir}\n ${ansis.green(runCommand(\"dev\"))}\n`);\n};\nconst preInstall = async ({\n projectName,\n packageManager,\n projectPath\n}) => {\n const path = projectPath || projectName;\n const envExample = join(path, \".env.example\");\n if (FSExtra.existsSync(envExample)) {\n await FSExtra.move(envExample, join(path, \".env\"));\n console.info(`Moved .env.example to .env`);\n }\n if (packageManager === \"pnpm\") {\n await FSExtra.writeFile(join(path, `.npmrc`), `node-linker=hoisted\n`);\n console.info(`Set up .npmrc to avoid symlinked node_modules\n\nNote! \\u{1F44B}\n\nIf you are working in a monorepo, you need to move the .npmrc with the node-linker\nconfiguration to the root of the monorepo rather than here.\n\n`);\n }\n if (packageManager === \"yarn\") {\n await FSExtra.writeFile(\n join(path, \".yarnrc.yml\"),\n `\ncompressionLevel: mixed\nenableGlobalCache: false\nenableTelemetry: false\nnodeLinker: node-modules\n\nlogFilters:\n - code: YN0002\n level: discard\n - code: YN0060\n level: discard\n - code: YN0006\n level: discard\n - code: YN0076\n level: discard\n`\n );\n await execPromise(`yarn set version stable`);\n await FSExtra.writeFile(join(path, \"yarn.lock\"), \"\");\n console.info(`Set up yarn for latest version`);\n }\n};\nexport {\n extraSteps,\n preInstall\n};\n//# sourceMappingURL=one.js.map\n"],"mappings":";;;;;;AAIA,MAAM,aAAa,OAAO,EACxB,aACA,aACA,aAAa,aACb,qBACI;CACJ,MAAM,SAAS,mBAAmB;CAClC,MAAM,cAAc,eAAe,GAAG,eAAe,GAAG,SAAS,KAAK,SAAS;CAC/E,IAAI,aAAa;EACf,QAAQ,KACN;EACJ,MAAM,MAAM,KAAK,OAAO,EAAE,+BAA+B,MAAM,YAAY,UAAU,GACnF;CACF;CACA,QAAQ,KAAK;;;IAGX,MAAM,MAAM,IAAI,EAAE,GAAG,WAAW;IAChC,MAAM,MAAM,WAAW,KAAK,CAAC,EAAE;CAClC;AACD;AACA,MAAM,aAAa,OAAO,EACxB,aACA,gBACA,kBACI;CACJ,MAAM,OAAO,eAAe;CAC5B,MAAM,aAAa,KAAK,MAAM,cAAc;CAC5C,IAAI,QAAQ,WAAW,UAAU,GAAG;EAClC,MAAM,QAAQ,KAAK,YAAY,KAAK,MAAM,MAAM,CAAC;EACjD,QAAQ,KAAK,4BAA4B;CAC3C;CACA,IAAI,mBAAmB,QAAQ;EAC7B,MAAM,QAAQ,UAAU,KAAK,MAAM,QAAQ,GAAG;CACjD;EACG,QAAQ,KAAK;;;;;;;CAOhB;CACC;CACA,IAAI,mBAAmB,QAAQ;EAC7B,MAAM,QAAQ,UACZ,KAAK,MAAM,aAAa,GACxB;;;;;;;;;;;;;;;CAgBF;EACA,MAAM,YAAY,yBAAyB;EAC3C,MAAM,QAAQ,UAAU,KAAK,MAAM,WAAW,GAAG,EAAE;EACnD,QAAQ,KAAK,gCAAgC;CAC/C;AACF"}
|
|
@@ -4,19 +4,19 @@ import { join } from "path";
|
|
|
4
4
|
import { execPromise } from "@vxrn/utils";
|
|
5
5
|
|
|
6
6
|
var extraSteps = async function extraSteps2(param) {
|
|
7
|
-
var { isFullClone, projectName, packageManager } = param;
|
|
7
|
+
var { isFullClone, projectName, projectDir = projectName, packageManager } = param;
|
|
8
8
|
var useBun = packageManager === "bun";
|
|
9
9
|
var runCommand = function runCommand2(scriptName) {
|
|
10
10
|
return `${packageManager} ${useBun ? "" : "run "}${scriptName}`;
|
|
11
11
|
};
|
|
12
12
|
if (isFullClone) {
|
|
13
13
|
console.info(`
|
|
14
|
-
${ansis.green.bold("Done!")} Created a new project under
|
|
14
|
+
${ansis.green.bold("Done!")} Created a new project under ${ansis.greenBright(projectDir)}`);
|
|
15
15
|
}
|
|
16
16
|
console.info(`
|
|
17
17
|
To run:
|
|
18
18
|
|
|
19
|
-
${ansis.green("cd")} ${
|
|
19
|
+
${ansis.green("cd")} ${projectDir}
|
|
20
20
|
${ansis.green(runCommand("dev"))}
|
|
21
21
|
`);
|
|
22
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"one.native.js","names":[],"sources":["esm/steps/one.native.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { join } from \"path\";\nimport { execPromise } from \"@vxrn/utils\";\nvar extraSteps = async function extraSteps2(param) {\n var { isFullClone, projectName, packageManager } = param;\n var useBun = packageManager === \"bun\";\n var runCommand = function runCommand2(scriptName) {\n return `${packageManager} ${useBun ? \"\" : \"run \"}${scriptName}`;\n };\n if (isFullClone) {\n console.info(`\n${ansis.green.bold(\"Done!\")} Created a new project under
|
|
1
|
+
{"version":3,"file":"one.native.js","names":[],"sources":["esm/steps/one.native.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { join } from \"path\";\nimport { execPromise } from \"@vxrn/utils\";\nvar extraSteps = async function extraSteps2(param) {\n var { isFullClone, projectName, projectDir = projectName, packageManager } = param;\n var useBun = packageManager === \"bun\";\n var runCommand = function runCommand2(scriptName) {\n return `${packageManager} ${useBun ? \"\" : \"run \"}${scriptName}`;\n };\n if (isFullClone) {\n console.info(`\n${ansis.green.bold(\"Done!\")} Created a new project under ${ansis.greenBright(projectDir)}`);\n }\n console.info(`\nTo run: \n\n ${ansis.green(\"cd\")} ${projectDir}\n ${ansis.green(runCommand(\"dev\"))}\n`);\n};\nvar preInstall = async function preInstall2(param) {\n var { projectName, packageManager, projectPath } = param;\n var path = projectPath || projectName;\n var envExample = join(path, \".env.example\");\n if (FSExtra.existsSync(envExample)) {\n await FSExtra.move(envExample, join(path, \".env\"));\n console.info(`Moved .env.example to .env`);\n }\n if (packageManager === \"pnpm\") {\n await FSExtra.writeFile(join(path, `.npmrc`), `node-linker=hoisted\n`);\n console.info(`Set up .npmrc to avoid symlinked node_modules\n\nNote! \\u{1F44B}\n\nIf you are working in a monorepo, you need to move the .npmrc with the node-linker\nconfiguration to the root of the monorepo rather than here.\n\n`);\n }\n if (packageManager === \"yarn\") {\n await FSExtra.writeFile(join(path, \".yarnrc.yml\"), `\ncompressionLevel: mixed\nenableGlobalCache: false\nenableTelemetry: false\nnodeLinker: node-modules\n\nlogFilters:\n - code: YN0002\n level: discard\n - code: YN0060\n level: discard\n - code: YN0006\n level: discard\n - code: YN0076\n level: discard\n`);\n await execPromise(`yarn set version stable`);\n await FSExtra.writeFile(join(path, \"yarn.lock\"), \"\");\n console.info(`Set up yarn for latest version`);\n }\n};\nexport {\n extraSteps,\n preInstall\n};\n//# sourceMappingURL=one.js.map\n"],"mappings":";;;;;;AAIA,IAAI,aAAa,eAAe,YAAY,OAAO;CACjD,IAAI,EAAE,aAAa,aAAa,aAAa,aAAa,mBAAmB;CAC7E,IAAI,SAAS,mBAAmB;CAChC,IAAI,aAAa,SAAS,YAAY,YAAY;EAChD,OAAO,GAAG,eAAe,GAAG,SAAS,KAAK,SAAS;CACrD;CACA,IAAI,aAAa;EACf,QAAQ,KAAK;EACf,MAAM,MAAM,KAAK,OAAO,EAAE,+BAA+B,MAAM,YAAY,UAAU,GAAG;CACxF;CACA,QAAQ,KAAK;;;IAGX,MAAM,MAAM,IAAI,EAAE,GAAG,WAAW;IAChC,MAAM,MAAM,WAAW,KAAK,CAAC,EAAE;CAClC;AACD;AACA,IAAI,aAAa,eAAe,YAAY,OAAO;CACjD,IAAI,EAAE,aAAa,gBAAgB,gBAAgB;CACnD,IAAI,OAAO,eAAe;CAC1B,IAAI,aAAa,KAAK,MAAM,cAAc;CAC1C,IAAI,QAAQ,WAAW,UAAU,GAAG;EAClC,MAAM,QAAQ,KAAK,YAAY,KAAK,MAAM,MAAM,CAAC;EACjD,QAAQ,KAAK,4BAA4B;CAC3C;CACA,IAAI,mBAAmB,QAAQ;EAC7B,MAAM,QAAQ,UAAU,KAAK,MAAM,QAAQ,GAAG;CACjD;EACG,QAAQ,KAAK;;;;;;;CAOhB;CACC;CACA,IAAI,mBAAmB,QAAQ;EAC7B,MAAM,QAAQ,UAAU,KAAK,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;CAetD;EACG,MAAM,YAAY,yBAAyB;EAC3C,MAAM,QAAQ,UAAU,KAAK,MAAM,WAAW,GAAG,EAAE;EACnD,QAAQ,KAAK,gCAAgC;CAC/C;AACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-vxrn",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.0",
|
|
4
4
|
"bin": {
|
|
5
5
|
"create-vxrn": "run.js"
|
|
6
6
|
},
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@types/validate-npm-package-name": "^4.0.2",
|
|
35
|
-
"@vxrn/utils": "2.
|
|
35
|
+
"@vxrn/utils": "2.9.0",
|
|
36
36
|
"ansis": "^3.1.0",
|
|
37
37
|
"async-retry": "1.3.3",
|
|
38
38
|
"citty": "^0.1.6",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"access": "public"
|
|
53
53
|
},
|
|
54
|
-
"releaseSourceCommit": "
|
|
54
|
+
"releaseSourceCommit": "28cc4531bbc4fa1e392a92dc05529d318278d832",
|
|
55
55
|
"repository": {
|
|
56
56
|
"type": "git",
|
|
57
57
|
"url": "git+https://github.com/onejs/one.git",
|
package/src/create.ts
CHANGED
|
@@ -24,15 +24,16 @@ export async function create(args: { template?: string; name?: string }) {
|
|
|
24
24
|
process.exit(1)
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
let
|
|
27
|
+
// the directory may be any path; the npm name comes from its last segment
|
|
28
|
+
let projectDir = args.name || ''
|
|
29
|
+
let resolvedProjectPath = path.resolve(process.cwd(), projectDir)
|
|
29
30
|
|
|
30
31
|
async function promptForName() {
|
|
31
|
-
|
|
32
|
-
resolvedProjectPath = path.resolve(process.cwd(),
|
|
32
|
+
projectDir = await getProjectName()
|
|
33
|
+
resolvedProjectPath = path.resolve(process.cwd(), projectDir)
|
|
33
34
|
}
|
|
34
35
|
|
|
35
|
-
if (
|
|
36
|
+
if (projectDir) {
|
|
36
37
|
if (fs.existsSync(resolvedProjectPath)) {
|
|
37
38
|
console.error(`Error: folder already exists: ${resolvedProjectPath}`)
|
|
38
39
|
process.exit(1)
|
|
@@ -45,7 +46,7 @@ export async function create(args: { template?: string; name?: string }) {
|
|
|
45
46
|
console.info(
|
|
46
47
|
ansis.yellow('!'),
|
|
47
48
|
`The folder ${ansis.underline(
|
|
48
|
-
ansis.blueBright(
|
|
49
|
+
ansis.blueBright(projectDir)
|
|
49
50
|
)} already exists, lets try another name`
|
|
50
51
|
)
|
|
51
52
|
console.info()
|
|
@@ -59,6 +60,7 @@ export async function create(args: { template?: string; name?: string }) {
|
|
|
59
60
|
|
|
60
61
|
let template = await getTemplateInfo(args.template)
|
|
61
62
|
|
|
63
|
+
const projectName = path.basename(resolvedProjectPath)
|
|
62
64
|
const { valid, problems } = validateNpmName(projectName)
|
|
63
65
|
if (!valid) {
|
|
64
66
|
console.error(
|
|
@@ -179,6 +181,7 @@ export async function create(args: { template?: string; name?: string }) {
|
|
|
179
181
|
packageManager,
|
|
180
182
|
isFullClone: true,
|
|
181
183
|
projectName,
|
|
184
|
+
projectDir,
|
|
182
185
|
projectPath: resolvedProjectPath,
|
|
183
186
|
})
|
|
184
187
|
}
|
|
@@ -205,6 +208,7 @@ export async function create(args: { template?: string; name?: string }) {
|
|
|
205
208
|
packageManager,
|
|
206
209
|
isFullClone: true,
|
|
207
210
|
projectName,
|
|
211
|
+
projectDir,
|
|
208
212
|
projectPath: resolvedProjectPath,
|
|
209
213
|
})
|
|
210
214
|
}
|
package/src/index.ts
CHANGED
|
@@ -7,6 +7,7 @@ import path from 'node:path'
|
|
|
7
7
|
import { cwd } from 'node:process'
|
|
8
8
|
import { getTemplateInfo } from './helpers/getTemplateInfo'
|
|
9
9
|
import { create } from './create'
|
|
10
|
+
import { detectPackageManager, type PackageManagerName } from '@vxrn/utils'
|
|
10
11
|
import { fileURLToPath } from 'node:url'
|
|
11
12
|
import { readFileSync } from 'node:fs'
|
|
12
13
|
|
|
@@ -59,8 +60,12 @@ const main = defineCommand({
|
|
|
59
60
|
if (args.info) {
|
|
60
61
|
let template = await getTemplateInfo(args.template)
|
|
61
62
|
if ('extraSteps' in template) {
|
|
63
|
+
const found = await detectPackageManager()
|
|
62
64
|
await template.extraSteps({
|
|
63
65
|
isFullClone: false,
|
|
66
|
+
packageManager: (Object.keys(found) as PackageManagerName[]).find(
|
|
67
|
+
(name) => found[name]
|
|
68
|
+
),
|
|
64
69
|
projectName: path.basename(cwd()),
|
|
65
70
|
projectPath: cwd(),
|
|
66
71
|
})
|
package/src/steps/one.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type { ExtraSteps } from './types'
|
|
|
7
7
|
export const extraSteps: ExtraSteps = async ({
|
|
8
8
|
isFullClone,
|
|
9
9
|
projectName,
|
|
10
|
+
projectDir = projectName,
|
|
10
11
|
packageManager,
|
|
11
12
|
}) => {
|
|
12
13
|
const useBun = packageManager === 'bun'
|
|
@@ -16,13 +17,13 @@ export const extraSteps: ExtraSteps = async ({
|
|
|
16
17
|
|
|
17
18
|
if (isFullClone) {
|
|
18
19
|
console.info(
|
|
19
|
-
`\n${ansis.green.bold('Done!')} Created a new project under
|
|
20
|
+
`\n${ansis.green.bold('Done!')} Created a new project under ${ansis.greenBright(projectDir)}`
|
|
20
21
|
)
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
console.info(`\nTo run:
|
|
24
25
|
|
|
25
|
-
${ansis.green('cd')} ${
|
|
26
|
+
${ansis.green('cd')} ${projectDir}
|
|
26
27
|
${ansis.green(runCommand('dev'))}\n`)
|
|
27
28
|
}
|
|
28
29
|
|
package/src/steps/types.ts
CHANGED
|
@@ -3,6 +3,8 @@ export type PreInstall = (args: CreateTemplateProps) => Promise<void>
|
|
|
3
3
|
|
|
4
4
|
export type CreateTemplateProps = {
|
|
5
5
|
projectName: string
|
|
6
|
+
// the directory as the user typed it, for the cd hint
|
|
7
|
+
projectDir?: string
|
|
6
8
|
isFullClone?: boolean
|
|
7
9
|
packageManager?: string
|
|
8
10
|
projectPath?: string
|
package/types/create.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAiBA,wBAAsB,MAAM,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAiBA,wBAAsB,MAAM,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,iBAuMtE"}
|
package/types/steps/one.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"one.d.ts","sourceRoot":"","sources":["../../src/steps/one.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"one.d.ts","sourceRoot":"","sources":["../../src/steps/one.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,UAAU,EAAE,UAqBxB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,UAiDxB,CAAA"}
|
package/types/steps/types.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export type ExtraSteps = (args: CreateTemplateProps) => Promise<void>;
|
|
|
2
2
|
export type PreInstall = (args: CreateTemplateProps) => Promise<void>;
|
|
3
3
|
export type CreateTemplateProps = {
|
|
4
4
|
projectName: string;
|
|
5
|
+
projectDir?: string;
|
|
5
6
|
isFullClone?: boolean;
|
|
6
7
|
packageManager?: string;
|
|
7
8
|
projectPath?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/steps/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AACrE,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAErE,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/steps/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AACrE,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAErE,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAA;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA"}
|