tateru-cli
Version:
Simple CLI static site builder tool with Twig.
77 lines • 7.64 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.core = void 0;
const path_1 = __importDefault(require("path"));
const getTemplateBase_1 = require("./core/utils/getTemplateBase");
const iterateKeys_1 = require("./core/utils/iterateKeys");
const readJson_1 = require("./utils/readJson");
const composeData_1 = require("./core/utils/composeData");
const getFileType_1 = require("./core/utils/getFileType");
const getTemplateFile_1 = require("./core/utils/getTemplateFile");
const buildTemplate_1 = require("./core/services/buildTemplate");
const minifyContents_1 = require("./minify/minifyContents");
const defines_1 = require("./definition/defines");
const loopTranslations = ({ config, lang, cwd, }) => __awaiter(void 0, void 0, void 0, function* () {
return Promise.all(Array.from(iterateKeys_1.iterateKeys(config.translations, lang)).map((translationKey) => __awaiter(void 0, void 0, void 0, function* () {
const translationConfig = Object.assign({}, config.translations[translationKey]);
const translationData = yield readJson_1.readJson(cwd, translationConfig.src);
return {
translationKey,
translationConfig,
translationData,
};
})));
});
exports.core = ({ config, env = defines_1.ENV_DEVELOPMENT, lang, page, cwd = '.', formatter, minify, }) => __awaiter(void 0, void 0, void 0, function* () {
var _a;
const files = [];
const templateBase = getTemplateBase_1.getTemplateBase(cwd, config.options.src);
const translations = yield loopTranslations({ config, lang, cwd });
for (const { translationKey, translationConfig, translationData } of translations) {
const pagesConfig = Object.assign({}, config.pages[translationKey]);
const envConfig = Object.assign({}, config.env[env]);
for (const pageKey of iterateKeys_1.iterateKeys(pagesConfig, page)) {
const pageConfig = Object.assign({}, pagesConfig[pageKey]);
const pageData = composeData_1.composeData(translationKey, config.options.data, envConfig.data, pageConfig.data, pagesConfig);
const relativeFilePath = path_1.default.join(config.options.ext, translationConfig.ext, pageConfig.ext);
const file = {
cwd,
base: path_1.default.dirname(relativeFilePath),
path: relativeFilePath,
ext: pageConfig.ext,
type: (_a = getFileType_1.getFileType(pageConfig.ext)) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase().trim(),
contents: '',
};
const templateFile = getTemplateFile_1.getTemplateFile(templateBase, pageConfig.src);
file.contents = buildTemplate_1.buildTemplate(pageData, translationData, templateBase, templateFile);
if (typeof formatter === 'function') {
file.contents = yield formatter(file.contents, file.type);
}
if ((pageConfig.minify || []).includes(env)) {
if (typeof minify === 'function') {
file.contents = yield minify(file.contents, file.type);
}
else {
file.contents = yield minifyContents_1.minifyContents(file.contents, file.type);
}
}
files.push(file);
}
;
}
;
return files;
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUF3QjtBQUN4QixrRUFBK0Q7QUFDL0QsMERBQXVEO0FBQ3ZELCtDQUE0QztBQUM1QywwREFBdUQ7QUFDdkQsMERBQXVEO0FBQ3ZELGtFQUErRDtBQUMvRCxpRUFBOEQ7QUFDOUQsNERBQXlEO0FBQ3pELGtEQUF1RDtBQUd2RCxNQUFNLGdCQUFnQixHQUFHLENBQU8sRUFDNUIsTUFBTSxFQUNOLElBQUksRUFDSixHQUFHLEdBS04sRUFBRSxFQUFFO0lBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNkLEtBQUssQ0FBQyxJQUFJLENBQUMseUJBQVcsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQU8sY0FBYyxFQUFFLEVBQUU7UUFDNUUsTUFBTSxpQkFBaUIscUJBQ2hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQ3pDLENBQUM7UUFFRixNQUFNLGVBQWUsR0FBRyxNQUFNLG1CQUFRLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRW5FLE9BQU87WUFDSCxjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLGVBQWU7U0FDbEIsQ0FBQztJQUNOLENBQUMsQ0FBQSxDQUFDLENBQ0wsQ0FBQztBQUNOLENBQUMsQ0FBQSxDQUFDO0FBRVcsUUFBQSxJQUFJLEdBQUcsQ0FBTyxFQUN2QixNQUFNLEVBQ04sR0FBRyxHQUFHLHlCQUFlLEVBQ3JCLElBQUksRUFDSixJQUFJLEVBQ0osR0FBRyxHQUFHLEdBQUcsRUFDVCxTQUFTLEVBQ1QsTUFBTSxHQUNJLEVBQXVCLEVBQUU7O0lBQ25DLE1BQU0sS0FBSyxHQUFlLEVBQUUsQ0FBQztJQUU3QixNQUFNLFlBQVksR0FBRyxpQ0FBZSxDQUFDLEdBQUcsRUFBRSxN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