Skip to content

Commit

Permalink
feat: ✨ support tool options
Browse files Browse the repository at this point in the history
  • Loading branch information
huruji committed Jan 14, 2019
1 parent c92d1f7 commit bde0b22
Showing 1 changed file with 31 additions and 20 deletions.
51 changes: 31 additions & 20 deletions lib/plugin.js
Original file line number Diff line number Diff line change
@@ -1,33 +1,44 @@
const fs = require('fs')
const fs = require('fs');

class ErudaPlugin {
constructor(options = {
force: false
}) {
this.options = options
constructor(
options = {
force: false,
tool: []
}
) {
this.options = options;
}

apply(compiler) {
const options = this.options;
if (compiler.options.mode !== 'development' && !options.force) return;
compiler.hooks.emit.tap('ErudaPlugin', (compilation) => {
const eruda = fs.readFileSync(require.resolve('eruda'))
const eruda = fs.readFileSync(require.resolve('eruda'));
const assets = compilation.assets;

return new Promise((resolve, reject) => {
Object.keys(assets).forEach(e => {
if (!/\.js$/.test(e)) return
let source = assets[e].source()
let initParams = ''
if (options.tool.length) {
initParams = {
tool: options.tool
}
}
return new Promise((resolve) => {
Object.keys(assets).forEach((e) => {
if (!/\.js$/.test(e)) return;
let source = assets[e].source();
const erudaCode = `\n;(function() {
${eruda};
eruda.init();
})()`
source += erudaCode
compilation.assets[e].source = () => source
compilation.assets[e].size = () => source.length
})
resolve()
})
})
eruda.init(${JSON.stringify(initParams)});
})()`;
source += erudaCode;
compilation.assets[e].source = () => source;
compilation.assets[e].size = () => source.length;
});
resolve();
});
});
}
}

module.exports = ErudaPlugin
module.exports = ErudaPlugin;

0 comments on commit bde0b22

Please sign in to comment.