@vxrn/takeout-cli
Version:
CLI tools for Takeout starter kit - interactive onboarding and project setup
87 lines • 3.4 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all) __defProp(target, name, {
get: all[name],
enumerable: !0
});
},
__copyProps = (to, from, except, desc) => {
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
get: () => from[key],
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
});
return to;
};
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
value: !0
}), mod);
var files_exports = {};
__export(files_exports, {
checkOnboarded: () => checkOnboarded,
markOnboarded: () => markOnboarded,
updateAppConfig: () => updateAppConfig,
updatePackageJson: () => updatePackageJson
});
module.exports = __toCommonJS(files_exports);
var import_node_fs = require("node:fs"),
import_node_path = require("node:path");
function updatePackageJson(cwd, updates) {
const packagePath = (0, import_node_path.join)(cwd, "package.json");
if (!(0, import_node_fs.existsSync)(packagePath)) return {
success: !1,
error: "package.json not found"
};
try {
const content = (0, import_node_fs.readFileSync)(packagePath, "utf-8"),
pkg = JSON.parse(content);
return updates.name && (pkg.name = updates.name), updates.description && (pkg.description = updates.description), (0, import_node_fs.writeFileSync)(packagePath, JSON.stringify(pkg, null, 2) + `
`, "utf-8"), {
success: !0
};
} catch (error) {
return {
success: !1,
error: error instanceof Error ? error.message : "Unknown error"
};
}
}
function updateAppConfig(cwd, updates) {
const configPath = (0, import_node_path.join)(cwd, "app.config.ts");
if (!(0, import_node_fs.existsSync)(configPath)) return {
success: !1,
error: "app.config.ts not found"
};
try {
let content = (0, import_node_fs.readFileSync)(configPath, "utf-8");
return updates.name && (content = content.replace(/(name:\s*['"])([^'"]+)(['"])/, `$1${updates.name}$3`)), updates.slug && (content = content.replace(/(slug:\s*['"])([^'"]+)(['"])/, `$1${updates.slug}$3`)), updates.bundleId && (content = content.replace(/(bundleIdentifier:\s*['"])([^'"]+)(['"])/, `$1${updates.bundleId}$3`), content = content.replace(/(package:\s*['"])([^'"]+)(['"])/, `$1${updates.bundleId}$3`)), (0, import_node_fs.writeFileSync)(configPath, content, "utf-8"), {
success: !0
};
} catch (error) {
return {
success: !1,
error: error instanceof Error ? error.message : "Unknown error"
};
}
}
function checkOnboarded(cwd) {
return (0, import_node_fs.existsSync)((0, import_node_path.join)(cwd, ".onboarded"));
}
function markOnboarded(cwd) {
const marker = (0, import_node_path.join)(cwd, ".onboarded");
try {
const timestamp = (/* @__PURE__ */new Date()).toISOString();
return (0, import_node_fs.writeFileSync)(marker, `Onboarded at: ${timestamp}
Run 'bun onboard' to reconfigure.
`, "utf-8"), {
success: !0
};
} catch (error) {
return {
success: !1,
error: error instanceof Error ? error.message : "Unknown error"
};
}
}