@eljs/create
Version:
Create a project from a remote template.
56 lines (54 loc) • 1.94 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: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__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: true }), mod);
// src/internal/plugins/render.ts
var render_exports = {};
__export(render_exports, {
default: () => render_default
});
module.exports = __toCommonJS(render_exports);
var import_utils = require("@eljs/utils");
var import_node_path = require("node:path");
var render_default = (api) => {
api.registerMethod(
"render",
async (path, data = {}, options) => {
const baseDir = (0, import_utils.extractCallDir)(3);
const srcFile = (0, import_node_path.resolve)(baseDir, path);
if (await (0, import_utils.isDirectory)(srcFile)) {
await api.copyDirectory(srcFile, api.paths.target, data, {
renderOptions: options
});
} else {
const destFile = (0, import_node_path.join)(
api.paths.target,
(0, import_node_path.basename)(path).replace(/\.tpl$/, "")
);
if (srcFile.endsWith(".tpl")) {
await api.copyTpl(srcFile, destFile, data, {
renderOptions: options
});
} else {
await api.copyFile(srcFile, destFile, {
data,
renderOptions: options
});
}
}
}
);
};