@personnn/personnnkit
Version:
๐ต PersonnnKit - El Agente Kit Universal. Framework revolucionario para crear agentes de IA con HTML + Python. Simplicidad radical vs frameworks gigantes.
88 lines โข 3.64 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.build = build;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
function loadConfig() {
const configPath = path_1.default.join(process.cwd(), "personnn.config.ts");
const defaultConfig = {
port: 3333,
pagesDir: "pages",
staticDir: "public",
apiDir: "runtime/api.js",
cronFile: "runtime/cron.js",
scriptsDir: "scripts"
};
if (fs_1.default.existsSync(configPath)) {
try {
const config = require(configPath).default || require(configPath);
return { ...defaultConfig, ...config };
}
catch (e) {
console.warn("โ ๏ธ Error loading config, using defaults");
return defaultConfig;
}
}
return defaultConfig;
}
function copyDirectory(src, dest) {
if (!fs_1.default.existsSync(src))
return;
if (!fs_1.default.existsSync(dest)) {
fs_1.default.mkdirSync(dest, { recursive: true });
}
const entries = fs_1.default.readdirSync(src, { withFileTypes: true });
for (const entry of entries) {
const srcPath = path_1.default.join(src, entry.name);
const destPath = path_1.default.join(dest, entry.name);
if (entry.isDirectory()) {
copyDirectory(srcPath, destPath);
}
else {
fs_1.default.copyFileSync(srcPath, destPath);
}
}
}
function build() {
const config = loadConfig();
const distDir = path_1.default.join(process.cwd(), "dist");
console.log("๐งน Cleaning dist directory...");
if (fs_1.default.existsSync(distDir)) {
fs_1.default.rmSync(distDir, { recursive: true, force: true });
}
fs_1.default.mkdirSync(distDir, { recursive: true });
// Copy HTML pages
const pagesDir = path_1.default.join(process.cwd(), config.pagesDir);
if (fs_1.default.existsSync(pagesDir)) {
console.log(`๐ Copying pages from ${config.pagesDir}...`);
copyDirectory(pagesDir, distDir);
}
// Copy static files
const staticDir = path_1.default.join(process.cwd(), config.staticDir);
if (fs_1.default.existsSync(staticDir)) {
console.log(`๐ Copying static files from ${config.staticDir}...`);
copyDirectory(staticDir, distDir);
}
// Create build info file
const buildInfo = {
buildTime: new Date().toISOString(),
version: "1.0.0",
framework: "PersonnnKit",
pages: fs_1.default.existsSync(pagesDir) ? fs_1.default.readdirSync(pagesDir).filter(f => f.endsWith('.html')) : [],
hasScripts: fs_1.default.existsSync(path_1.default.join(process.cwd(), config.scriptsDir)),
hasApi: fs_1.default.existsSync(path_1.default.join(process.cwd(), config.apiDir)),
hasCron: fs_1.default.existsSync(path_1.default.join(process.cwd(), config.cronFile))
};
fs_1.default.writeFileSync(path_1.default.join(distDir, "build-info.json"), JSON.stringify(buildInfo, null, 2));
console.log("โ
Build completed!");
console.log(`๐ฆ Files generated in: ${distDir}`);
console.log(`๐ You can serve with: npx serve dist`);
if (buildInfo.hasScripts || buildInfo.hasApi || buildInfo.hasCron) {
console.log("\nโ ๏ธ NOTE: This agent has backend functionality.");
console.log(" For full functionality, use 'personnnkit dev'");
}
}
//# sourceMappingURL=build.js.map