"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createContent = exports.fileAsBuffer = void 0; const path = require("path"); const Engine_1 = require("@plastichub/osrl/Engine"); const options_1 = require("@plastichub/osrl/options"); const glob_1 = require("@plastichub/osr-cli-commons/glob"); const fs_1 = require("@plastichub/osr-commons"); const index_1 = require("../../index"); const git_1 = require("../git"); const moment = require("moment"); const read_1 = require("@plastichub/fs/read"); const fileAsBuffer = (path) => (0, read_1.sync)(path, 'buffer') || Buffer.from("-"); exports.fileAsBuffer = fileAsBuffer; const variable_extras = async (component, rel, options) => { const root = path.resolve((0, fs_1.resolve)('${OSR_LIBRARY_MACHINES}')); const gitStats = await (0, git_1.git_status)(root, rel); const latest = gitStats.latest; return { "GIT_LAST": moment(latest.date).format('LLLL'), "GIT_AUTHOR": latest.author_name, "GIT_MESSAGE": latest.message, "GIT_COMMIT": latest.hash }; }; const createContent = async (component, _options) => { const parts = path.parse(component); const rel = (0, glob_1.forward_slash)(path.relative(_options.root, component)); const extras = await variable_extras(component, rel, _options); const variables = { root: _options.root, cwd: _options.cwd, ..._options.variables, product: rel, product_rel: rel, product_rel_min: rel, ...extras }; const defaults = { language: _options.language, debug: false, profile: _options.profile, // output: output, plugins: [], env: _options.env || 'forum', cwd: _options.cwd, source: _options.src, variables }; const options = (0, options_1.parse)(defaults, defaults); const eOptions = { ...options, root: [ ...options.profile.includes, component ], toHTML: false, cache: false, keepOutputType: true, trimTagRight: false, trimTagLeft: false, trimOutputRight: false, trimOutputLeft: false, greedy: false }; const Engine = new Engine_1.Engine(eOptions); options.debug && index_1.logger.info('Compile file ' + component, eOptions); let content = await Engine.render(options.source, { ...options.variables, ...extras }); return content; }; exports.createContent = createContent; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvc3luYy9vc3JsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE0QjtBQUU1QixvREFBMEQ7QUFDMUQsc0RBQWdEO0FBRWhELDJEQUFnRTtBQUVoRSx1REFBd0Q7QUFHeEQsdUNBQW9DO0FBQ3BDLGdDQUFtQztBQUNuQyxpQ0FBZ0M7QUFDaEMsOENBQWtEO0FBRTNDLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFBLFdBQUksRUFBQyxJQUFJLEVBQUUsUUFBUSxDQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUFuRixRQUFBLFlBQVksZ0JBQXVFO0FBQ2hHLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQThCLEVBQUUsRUFBRTtJQUM3RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUEsWUFBTyxFQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQTtJQUM3RCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsZ0JBQVUsRUFBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDNUMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQTtJQUM5QixPQUFPO1FBQ0gsVUFBVSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUMvQyxZQUFZLEVBQUcsTUFBTSxDQUFDLFdBQVc7UUFDakMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQzdCLFlBQVksRUFBRyxNQUFNLENBQUMsSUFBSTtLQUM3QixDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBRU0sTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUErQixFQUFFLEVBQUU7SUFFOUUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNuQyxNQUFNLEdBQUcsR0FBRyxJQUFBLG9CQUFhLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUE7SUFDbEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxlQUFlLENBQUMsU0FBUyxFQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUM3RCxNQUFNLFNBQVMsR0FBRztRQUNkLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTtRQUNuQixHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7UUFDakIsR0FBRyxRQUFRLENBQUMsU0FBUztRQUNyQixPQUFPLEVBQUUsR0FBRztRQUNaLFdBQVcsRUFBRSxHQUFHO1FBQ2hCLGVBQWUsRUFBRSxHQUFHO1FBQ3BCLEdBQUcsTUFBTTtLQUNaLENBQUE7SUFDRCxNQUFNLFFBQVEsR0FBUTtRQUNsQixRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVE7UUFDM0IsS0FBSyxFQUFFLEtBQUs7UUFDWixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87UUFDN0IscUJBQXFCO1FBQ2pCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUksT0FBTztRQUM1QixHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7UUFDakIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHO1FBQ3BCLFNBQVM7S0FDWixDQUFBO0lBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBQSxlQUFLLEVBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sUUFBUSxHQUFHO1FBQ2IsR0FBRyxPQUFPO1FBQ1YsSUFBSSxFQUFFO1lBQ0YsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFDM0IsU0FBUztTQUNaO1FBQ0QsTUFBTSxFQUFFLEtBQUs7UUFDYixLQUFLLEVBQUUsS0FBSztRQUNaLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFlBQVksRUFBRSxLQUFLO1FBQ25CLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLGVBQWUsRUFBRSxLQUFLO1FBQ3RCLGNBQWMsRUFBRSxLQUFLO1FBQ3JCLE1BQU0sRUFBRSxLQUFLO0tBQ0osQ0FBQTtJQUViLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXBDLE9BQU8sQ0FBQyxLQUFLLElBQUksY0FBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBRW5FLElBQUksT0FBTyxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1FBQzlDLEdBQUcsT0FBTyxDQUFDLFNBQVM7UUFDcEIsR0FBRyxNQUFNO0tBQ1osQ0FBQyxDQUFBO0lBQ0YsT0FBTyxPQUFPLENBQUE7QUFDbEIsQ0FBQyxDQUFBO0FBbkRZLFFBQUEsYUFBYSxpQkFtRHpCIn0=