mirror of
https://github.com/pysunday/rs-reverse.git
synced 2025-04-22 08:09:17 +08:00
57 lines
1.8 KiB
JavaScript
57 lines
1.8 KiB
JavaScript
const Coder = require('./handler/Coder');
|
||
const paths = require('@utils/paths');
|
||
const fs = require('fs');
|
||
const logger = require('@utils/logger');
|
||
|
||
module.exports = function (ts, immucfg, mate = {}) {
|
||
const startTime = new Date().getTime();
|
||
const coder = new Coder(ts, immucfg);
|
||
const { code, $_ts } = coder.run();
|
||
const files = [
|
||
immucfg ? {
|
||
name: 'makecode_input_ts',
|
||
desc: 'url方式提取的ts:',
|
||
text: JSON.stringify(ts),
|
||
extend: 'json',
|
||
} : null,
|
||
immucfg ? {
|
||
name: 'makecode_input_immucfg',
|
||
desc: 'url方式提取的静态文本:',
|
||
text: JSON.stringify(immucfg),
|
||
extend: 'json',
|
||
} : null,
|
||
mate.jscode ? {
|
||
name: 'makecode_input_js',
|
||
desc: 'url方式提取的javascript代码:',
|
||
text: mate.jscode.code,
|
||
extend: 'js',
|
||
} : null,
|
||
mate.html ? {
|
||
name: 'makecode_input_html',
|
||
desc: 'url方式提取的html代码:',
|
||
text: mate.html.code,
|
||
extend: 'html',
|
||
newLine: true,
|
||
} : null,
|
||
{
|
||
name: 'makecode_output_ts',
|
||
desc: '程序生成的ts:',
|
||
text: JSON.stringify($_ts),
|
||
extend: 'json',
|
||
},
|
||
{
|
||
name: 'makecode_output_code',
|
||
desc: '程序生成的动态代码:',
|
||
text: '// 该行标记来源,非动态代码生成: ' + JSON.stringify(ts) + '\n\n' + code,
|
||
extend: 'js',
|
||
},
|
||
].filter(Boolean).map(it => ({ ...it, filepath: `${paths.outputResolve(it.name)}.${it.extend}` }))
|
||
if (!fs.existsSync(paths.outputPath)) fs.mkdirSync(paths.outputPath);
|
||
files.forEach(({ filepath, text }) => fs.writeFileSync(filepath, text))
|
||
logger.info([
|
||
`生成动态代码成功!用时:${new Date().getTime() - startTime}ms\n`,
|
||
...files.reduce((ans, it, idx) => ([...ans, `${it.desc}${it.filepath}${idx === files.length - 1 || it.newLine ? '\n' : ''}`]), []),
|
||
].join('\n '));
|
||
}
|
||
|