131 lines
17 KiB
JavaScript
131 lines
17 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.onProductCompiled = exports.onProduct = exports.unique_by = exports.file_path_with_ext = exports.MainAssembly = exports.files = exports.forward_slash = exports.productContentOptions = exports.md2html = exports.addAssembly = void 0;
|
|
const path = require("path");
|
|
const fg = require('fast-glob');
|
|
const read_1 = require("@plastichub/fs/read");
|
|
const write_1 = require("@plastichub/fs/write");
|
|
const js_beautify_1 = require("js-beautify");
|
|
const osr_cli_commons_1 = require("@plastichub/osr-cli-commons");
|
|
const cheerio = require('cheerio');
|
|
const mysql = require('mysql2');
|
|
const _1 = require("./");
|
|
const showdown_1 = require("showdown");
|
|
const addAssembly = (item) => `${item}/cad/**/Global*.+(SLDASM)`;
|
|
exports.addAssembly = addAssembly;
|
|
const md2html = (content) => {
|
|
let converter = new showdown_1.Converter({ tables: true });
|
|
converter.setOption('literalMidWordUnderscores', 'true');
|
|
return converter.makeHtml(content);
|
|
};
|
|
exports.md2html = md2html;
|
|
const productContentOptions = (product) => {
|
|
console.log('Create product compile options for ', product);
|
|
product = '' + product;
|
|
const product_rel = product.replace('products/', '');
|
|
return {
|
|
debug: false,
|
|
watch: false,
|
|
root: '.',
|
|
env: 'bazar-release',
|
|
profile: '${root}/.osrl.json',
|
|
output: '${product}/bazar/raw.html',
|
|
format: 'html',
|
|
module: 'plastichub-products',
|
|
cwd: path.resolve('.'),
|
|
cache: false,
|
|
onCompiled: exports.onProduct,
|
|
onCompileDone: exports.onProductCompiled,
|
|
variables: {
|
|
product,
|
|
product_rel,
|
|
root: path.resolve('.'),
|
|
product_relative: '' + product_rel
|
|
}
|
|
};
|
|
};
|
|
exports.productContentOptions = productContentOptions;
|
|
const forward_slash = (path) => {
|
|
const isExtendedLengthPath = /^\\\\\?\\/.test(path);
|
|
const hasNonAscii = /[^\u0000-\u0080]+/.test(path); // eslint-disable-line no-control-regex
|
|
if (isExtendedLengthPath || hasNonAscii) {
|
|
return path;
|
|
}
|
|
return path.replace(/\\/g, '/');
|
|
};
|
|
exports.forward_slash = forward_slash;
|
|
const files = (dir, glob) => fg.sync(glob, {
|
|
dot: true,
|
|
cwd: dir,
|
|
absolute: true
|
|
});
|
|
exports.files = files;
|
|
const MainAssembly = (dir) => {
|
|
const mains = (0, exports.files)(dir, '**/cad/**/*Global*.+(SLDASM)');
|
|
return mains[0];
|
|
};
|
|
exports.MainAssembly = MainAssembly;
|
|
const file_path_with_ext = (file, ext) => {
|
|
const parts = path.parse(file);
|
|
return path.join(parts.dir, parts.name + '.' + ext);
|
|
};
|
|
exports.file_path_with_ext = file_path_with_ext;
|
|
const unique_by = (arr, key) => {
|
|
return [...new Map(arr.map(item => [item[key], item])).values()];
|
|
};
|
|
exports.unique_by = unique_by;
|
|
const onProduct = (src, dst, content) => {
|
|
const $ = cheerio.load(content, {
|
|
xmlMode: true
|
|
});
|
|
$('a').each(function () {
|
|
$(this).attr("style", "color:#4C74B9");
|
|
});
|
|
$('table').each(function () {
|
|
$(this).attr("style", "display:table;width:auto;margin-left:auto;margin-right:auto");
|
|
});
|
|
return Promise.resolve($.html());
|
|
};
|
|
exports.onProduct = onProduct;
|
|
const update = async (dbconfig, description, id) => {
|
|
return new Promise((resolve, reject) => {
|
|
const connection = mysql.createConnection(dbconfig);
|
|
var sql = mysql.format('UPDATE cscart_product_descriptions SET full_description = ? WHERE cscart_product_descriptions.product_id = ?', [description, id]);
|
|
connection.query(sql, function (err, results) {
|
|
if (err) {
|
|
_1.logger.error('SQL Error', err.message);
|
|
reject(err);
|
|
}
|
|
else {
|
|
resolve(results);
|
|
}
|
|
});
|
|
});
|
|
};
|
|
const onProductCompiled = (src, dst, options, content) => {
|
|
const config = (0, read_1.sync)(path.resolve(options.variables.product + '/config.json'), 'json');
|
|
content = (0, js_beautify_1.html_beautify)((0, exports.md2html)(content));
|
|
(0, write_1.sync)(path.resolve(options.variables.product + '/bazar/output.html'), content);
|
|
const cscartId = config.cscartId;
|
|
if (!cscartId) {
|
|
_1.logger.error(`Have no cscart id for ${config.slug}`);
|
|
return;
|
|
}
|
|
const osrConfig = (0, osr_cli_commons_1.CONFIG_DEFAULT)();
|
|
if (osrConfig.cscart.mysql) {
|
|
return new Promise((resolve) => {
|
|
update(osrConfig.cscart.mysql, content, cscartId).then((result) => {
|
|
_1.logger.debug('updated cscart ' + config.name);
|
|
resolve(1);
|
|
}).catch((e) => {
|
|
_1.logger.error('Error updating CSCart', e);
|
|
});
|
|
});
|
|
}
|
|
else {
|
|
_1.logger.error('Have no CSCart Mysql config !');
|
|
}
|
|
return Promise.resolve();
|
|
};
|
|
exports.onProductCompiled = onProductCompiled;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRhc2tzL2xpYnJhcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTRCO0FBRTVCLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUUvQiw4Q0FBa0Q7QUFDbEQsZ0RBQW9EO0FBRXBELDZDQUEyQztBQUMzQyxpRUFBd0U7QUFHeEUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBRWxDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUUvQix5QkFBMkI7QUFFM0IsdUNBQW9DO0FBRTdCLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksMkJBQTJCLENBQUE7QUFBMUQsUUFBQSxXQUFXLGVBQStDO0FBRWhFLE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUU7SUFDL0IsSUFBSSxTQUFTLEdBQUcsSUFBSSxvQkFBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEQsU0FBUyxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN6RCxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFBO0FBSlksUUFBQSxPQUFPLFdBSW5CO0FBRU0sTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFO0lBRTdDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXFDLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFFM0QsT0FBTyxHQUFHLEVBQUUsR0FBSSxPQUFPLENBQUE7SUFFdkIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUMsRUFBRSxDQUFDLENBQUE7SUFFbkQsT0FBTztRQUNILEtBQUssRUFBRSxLQUFL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LENBQUE7S0FDTDtTQUFJO1FBQ0QsU0FBTSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO0tBQ2hEO0lBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7QUFDNUIsQ0FBQyxDQUFBO0FBMUJZLFFBQUEsaUJBQWlCLHFCQTBCN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnXHJcblxyXG5jb25zdCBmZyA9IHJlcXVpcmUoJ2Zhc3QtZ2xvYicpXHJcblxyXG5pbXBvcnQgeyBzeW5jIGFzIHJlYWQgfSBmcm9tICdAcGxhc3RpY2h1Yi9mcy9yZWFkJ1xyXG5pbXBvcnQgeyBzeW5jIGFzIHdyaXRlIH0gZnJvbSAnQHBsYXN0aWNodWIvZnMvd3JpdGUnXHJcbmltcG9ydCB7IHN5bmMgYXMgZXhpc3RzIH0gZnJvbSAnQHBsYXN0aWNodWIvZnMvZXhpc3RzJ1xyXG5pbXBvcnQgeyBodG1sX2JlYXV0aWZ5IH0gZnJvbSAnanMtYmVhdXRpZnknXHJcbmltcG9ydCB7IENPTkZJR19ERUZBVUxULCBJT1NSQ29uZmlnIH0gZnJvbSAnQHBsYXN0aWNodWIvb3NyLWNsaS1jb21tb25zJ1xyXG5pbXBvcnQgeyAgfSBmcm9tICdAcGxhc3RpY2h1Yi9vc3ItY2xpLWNvbW1vbnMvZnMnXHJcblxyXG5jb25zdCBjaGVlcmlvID0gcmVxdWlyZSgnY2hlZXJpbycpXHJcblxyXG5jb25zdCBteXNxbCA9IHJlcXVpcmUoJ215c3FsMicpXHJcblxyXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLydcclxuXHJcbmltcG9ydCB7IENvbnZlcnRlciB9IGZyb20gJ3Nob3dkb3duJ1xyXG5cclxuZXhwb3J0IGNvbnN0IGFkZEFzc2VtYmx5ID0gKGl0ZW0pID0+IGAke2l0ZW19L2NhZC8qKi9HbG9iYWwqLisoU0xEQVNNKWBcclxuXHJcbmV4cG9ydCBjb25zdCBtZDJodG1sID0gKGNvbnRlbnQpID0+IHtcclxuICAgIGxldCBjb252ZXJ0ZXIgPSBuZXcgQ29udmVydGVyKHsgdGFibGVzOiB0cnVlIH0pO1xyXG4gICAgY29udmVydGVyLnNldE9wdGlvbignbGl0ZXJhbE1pZFdvcmRVbmRlcnNjb3JlcycsICd0cnVlJyk7XHJcbiAgICByZXR1cm4gY29udmVydGVyLm1ha2VIdG1sKGNvbnRlbnQpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgcHJvZHVjdENvbnRlbnRPcHRpb25zID0gKHByb2R1Y3QpID0+IHtcclxuICAgIFxyXG4gICAgY29uc29sZS5sb2coJ0NyZWF0ZSBwcm9kdWN0IGNvbXBpbGUgb3B0aW9ucyBmb3IgJywgcHJvZHVjdClcclxuXHJcbiAgICBwcm9kdWN0ID0gJycgICsgcHJvZHVjdFxyXG5cclxuICAgIGNvbnN0IHByb2R1Y3RfcmVsID0gcHJvZHVjdC5yZXBsYWNlKCdwcm9kdWN0cy8nLCcnKVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgZGVidWc6IGZhbHNlLFxyXG4gICAgICAgIHdhdGNoOiBmYWxzZSxcclxuICAgICAgICByb290OiAnLicsXHJcbiAgICAgICAgZW52OiAnYmF6YXItcmVsZWFzZScsXHJcbiAgICAgICAgcHJvZmlsZTogJyR7cm9vdH0vLm9zcmwuanNvbicsXHJcbiAgICAgICAgb3V0cHV0OiAnJHtwcm9kdWN0fS9iYXphci9yYXcuaHRtbCcsXHJcbiAgICAgICAgZm9ybWF0OiAnaHRtbCcsXHJcbiAgICAgICAgbW9kdWxlOiAncGxhc3RpY2h1Yi1wcm9kdWN0cycsXHJcbiAgICAgICAgY3dkOiBwYXRoLnJlc29sdmUoJy4nKSxcclxuICAgICAgICBjYWNoZTogZmFsc2UsXHJcbiAgICAgICAgb25Db21waWxlZDogb25Qcm9kdWN0LFxyXG4gICAgICAgIG9uQ29tcGlsZURvbmU6IG9uUHJvZHVjdENvbXBpbGVkLFxyXG4gICAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgICAgICBwcm9kdWN0LFxyXG4gICAgICAgICAgICBwcm9kdWN0X3JlbCxcclxuICAgICAgICAgICAgcm9vdDogcGF0aC5yZXNvbHZlKCcuJyksXHJcbiAgICAgICAgICAgIHByb2R1Y3RfcmVsYXRpdmU6ICcnICsgcHJvZHVjdF9yZWxcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBmb3J3YXJkX3NsYXNoID0gKHBhdGgpID0+IHtcclxuICAgIGNvbnN0IGlzRXh0ZW5kZWRMZW5ndGhQYXRoID0gL15cXFxcXFxcXFxcP1xcXFwvLnRlc3QocGF0aCk7XHJcbiAgICBjb25zdCBoYXNOb25Bc2NpaSA9IC9bXlxcdTAwMDAtXFx1MDA4MF0rLy50ZXN0KHBhdGgpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnRyb2wtcmVnZXhcclxuXHJcbiAgICBpZiAoaXNFeHRlbmRlZExlbmd0aFBhdGggfHwgaGFzTm9uQXNjaWkpIHtcclxuICAgICAgICByZXR1cm4gcGF0aDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZmlsZXMgPSAoZGlyLCBnbG9iKSA9PiBmZy5zeW5jKGdsb2IsIHtcclxuICAgIGRvdDogdHJ1ZSxcclxuICAgIGN3ZDogZGlyLFxyXG4gICAgYWJzb2x1dGU6IHRydWVcclxufSk7XHJcblxyXG5leHBvcnQgY29uc3QgTWFpbkFzc2VtYmx5ID0gKGRpcikgPT4ge1xyXG4gICAgY29uc3QgbWFpbnMgPSBmaWxlcyhkaXIsICcqKi9jYWQvKiovKkdsb2JhbCouKyhTTERBU00pJyk7XHJcbiAgICByZXR1cm4gbWFpbnNbMF07XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBmaWxlX3BhdGhfd2l0aF9leHQgPSAoZmlsZSwgZXh0KSA9PiB7XHJcbiAgICBjb25zdCBwYXJ0cyA9IHBhdGgucGFyc2UoZmlsZSk7XHJcbiAgICByZXR1cm4gcGF0aC5qb2luKHBhcnRzLmRpciwgcGFydHMubmFtZSArICcuJyArIGV4dCk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCB1bmlxdWVfYnkgPSAoYXJyLCBrZXkpID0+IHtcclxuICAgIHJldHVybiBbLi4ubmV3IE1hcChhcnIubWFwKGl0ZW0gPT4gW2l0ZW1ba2V5XSwgaXRlbV0pKS52YWx1ZXMoKV1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IG9uUHJvZHVjdCA9IChzcmMsIGRzdCwgY29udGVudCkgPT4ge1xyXG4gICAgY29uc3QgJCA9IGNoZWVyaW8ubG9hZChjb250ZW50LCB7XHJcbiAgICAgICAgeG1sTW9kZTogdHJ1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgJCgnYScpLmVhY2goZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICQodGhpcykuYXR0cihcInN0eWxlXCIsIFwiY29sb3I6IzRDNzRCOVwiKTtcclxuICAgIH0pXHJcblxyXG4gICAgJCgndGFibGUnKS5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkKHRoaXMpLmF0dHIoXCJzdHlsZVwiLCBcImRpc3BsYXk6dGFibGU7d2lkdGg6YXV0bzttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvXCIpO1xyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCQuaHRtbCgpKVxyXG59XHJcblxyXG5jb25zdCB1cGRhdGUgPSBhc3luYyAoZGJjb25maWcsIGRlc2NyaXB0aW9uLCBpZCkgPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICBjb25zdCBjb25uZWN0aW9uID0gbXlzcWwuY3JlYXRlQ29ubmVjdGlvbihkYmNvbmZpZyk7XHJcbiAgICAgICAgdmFyIHNxbCA9IG15c3FsLmZvcm1hdCgnVVBEQVRFIGNzY2FydF9wcm9kdWN0X2Rlc2NyaXB0aW9ucyBTRVQgZnVsbF9kZXNjcmlwdGlvbiA9ID8gV0hFUkUgY3NjYXJ0X3Byb2R1Y3RfZGVzY3JpcHRpb25zLnByb2R1Y3RfaWQgPSA/JyxcclxuICAgICAgICAgICAgW2Rlc2NyaXB0aW9uLCBpZF1cclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbm5lY3Rpb24ucXVlcnkoXHJcbiAgICAgICAgICAgIHNxbCxcclxuICAgICAgICAgICAgZnVuY3Rpb24gKGVyciwgcmVzdWx0cykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcignU1FMIEVycm9yJywgZXJyLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdHMpXHJcbiAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH0pXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBvblByb2R1Y3RDb21waWxlZCA9IChzcmMsIGRzdCwgb3B0aW9ucywgY29udGVudCkgPT4ge1xyXG4gICAgY29uc3QgY29uZmlnOiBhbnkgPSByZWFkKHBhdGgucmVzb2x2ZShvcHRpb25zLnZhcmlhYmxlcy5wcm9kdWN0ICsgJy9jb25maWcuanNvbicpLCAnanNvbicpO1xyXG5cclxuICAgIGNvbnRlbnQgPSBodG1sX2JlYXV0aWZ5KG1kMmh0bWwoY29udGVudCkpXHJcbiAgICB3cml0ZShwYXRoLnJlc29sdmUob3B0aW9ucy52YXJpYWJsZXMucHJvZHVjdCArICcvYmF6YXIvb3V0cHV0Lmh0bWwnKSwgY29udGVudClcclxuXHJcbiAgICBjb25zdCBjc2NhcnRJZCA9IGNvbmZpZy5jc2NhcnRJZFxyXG4gICAgaWYgKCFjc2NhcnRJZCkge1xyXG4gICAgICAgIGxvZ2dlci5lcnJvcihgSGF2ZSBubyBjc2NhcnQgaWQgZm9yICR7Y29uZmlnLnNsdWd9YClcclxuICAgICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIGNvbnN0IG9zckNvbmZpZyA9IENPTkZJR19ERUZBVUxUKCkgYXMgSU9TUkNvbmZpZyAgICBcclxuXHJcbiAgICBpZiAob3NyQ29uZmlnLmNzY2FydC5teXNxbCkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICB1cGRhdGUob3NyQ29uZmlnLmNzY2FydC5teXNxbCwgY29udGVudCwgY3NjYXJ0SWQpLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCd1cGRhdGVkIGNzY2FydCAnICsgY29uZmlnLm5hbWUpXHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKDEpXHJcbiAgICAgICAgICAgIH0pLmNhdGNoKChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yIHVwZGF0aW5nIENTQ2FydCcsIGUpXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSlcclxuICAgIH1lbHNle1xyXG4gICAgICAgIGxvZ2dlci5lcnJvcignSGF2ZSBubyBDU0NhcnQgTXlzcWwgY29uZmlnICEnKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXHJcbn1cclxuIl19
|