tateru-cli
Version:
Simple CLI static site builder tool with Twig.
78 lines • 7.94 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 = (_a) => __awaiter(void 0, [_a], void 0, function* ({ config, lang, cwd, }) {
return Promise.all(Array.from((0, 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 (0, readJson_1.readJson)(cwd, translationConfig.src);
return {
translationKey: String(translationKey),
translationConfig,
translationData,
};
})));
});
const core = (_a) => __awaiter(void 0, [_a], void 0, function* ({ config, env = defines_1.ENV_DEVELOPMENT, lang, page, cwd = '.', formatter, minify, }) {
var _b;
const files = [];
const templateBase = (0, 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 (0, iterateKeys_1.iterateKeys)(pagesConfig, page)) {
const pageConfig = Object.assign({}, pagesConfig[pageKey]);
const pageData = (0, 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: (_b = (0, getFileType_1.getFileType)(pageConfig.ext)) === null || _b === void 0 ? void 0 : _b.toLocaleLowerCase().trim(),
contents: '',
};
const templateFile = (0, getTemplateFile_1.getTemplateFile)(templateBase, pageConfig.src);
file.contents = (0, 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 (0, minifyContents_1.minifyContents)(file.contents, file.type);
}
}
files.push(file);
}
;
}
;
return files;
});
exports.core = core;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUF3QjtBQUN4QixrRUFBK0Q7QUFDL0QsMERBQXVEO0FBQ3ZELCtDQUE0QztBQUM1QywwREFBdUQ7QUFDdkQsMERBQXVEO0FBQ3ZELGtFQUErRDtBQUMvRCxpRUFBOEQ7QUFDOUQsNERBQXlEO0FBQ3pELGtEQUF1RDtBQUd2RCxNQUFNLGdCQUFnQixHQUFHLEtBUXRCLEVBQUUsNENBUjJCLEVBQzVCLE1BQU0sRUFDTixJQUFJLEVBQ0osR0FBRyxHQUtOO0lBQ0csT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNkLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBQSx5QkFBVyxFQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBTyxjQUFjLEVBQUUsRUFBRTtRQUM1RSxNQUFNLGlCQUFpQixxQkFDaEIsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FDekMsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBQSxtQkFBUSxFQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVuRSxPQUFPO1lBQ0gsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUM7WUFDdEMsaUJBQWlCO1lBQ2pCLGVBQWU7U0FDbEIsQ0FBQztJQUNOLENBQUMsQ0FBQSxDQUFDLENBQ0wsQ0FBQztBQUNOLENBQUMsQ0FBQSxDQUFDO0FBRUssTUFBTSxJQUFJLEdBQUcsS0FRaUIsRUFBRSw0Q0FSWixFQUN2QixNQUFNLEVBQ04sR0FBRyxHQUFHLHlCQUFlLEVBQ3JCLElBQUksRUFDSixJQUFJLEVBQ0osR0FBRyxHQUFHLEdBQUcsRUFDVCxTQUFTLEVBQ1QsTUFBTSxHQUNJOztJQUNWLE1BQU0sS0FBSyxHQUFlLEVBQUUsQ0FBQztJQUU3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