2017-11-12 01:48:29 +08:00
|
|
|
/*
|
|
|
|
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
|
|
|
Author Tobias Koppers @sokra
|
|
|
|
|
*/
|
|
|
|
|
"use strict";
|
|
|
|
|
|
2018-04-28 01:02:02 +08:00
|
|
|
const WasmMainTemplatePlugin = require("../wasm/WasmMainTemplatePlugin");
|
2017-11-12 01:48:29 +08:00
|
|
|
|
|
|
|
|
class ReadFileCompileWasmTemplatePlugin {
|
|
|
|
|
apply(compiler) {
|
2018-02-25 09:00:20 +08:00
|
|
|
compiler.hooks.thisCompilation.tap(
|
|
|
|
|
"ReadFileCompileWasmTemplatePlugin",
|
|
|
|
|
compilation => {
|
2018-03-15 02:05:05 +08:00
|
|
|
const generateLoadBinaryCode = path => `new Promise(function (resolve, reject) {
|
2018-03-29 19:40:27 +08:00
|
|
|
var {readFile} = require("fs");
|
|
|
|
|
var {join} = require("path");
|
2018-03-15 02:05:05 +08:00
|
|
|
|
2018-03-29 19:40:27 +08:00
|
|
|
try {
|
|
|
|
|
readFile(join(__dirname, ${path}), function(err, buffer){
|
|
|
|
|
if (err) return reject(err);
|
|
|
|
|
|
|
|
|
|
// Fake fetch response
|
|
|
|
|
resolve({
|
|
|
|
|
arrayBuffer() {
|
|
|
|
|
return Promise.resolve(buffer)
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
} catch (err) {
|
|
|
|
|
reject(err);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
`;
|
2018-03-15 02:05:05 +08:00
|
|
|
|
2018-04-28 01:02:02 +08:00
|
|
|
new WasmMainTemplatePlugin(generateLoadBinaryCode).apply(
|
|
|
|
|
compilation.mainTemplate
|
2018-03-15 02:05:05 +08:00
|
|
|
);
|
2018-02-25 09:00:20 +08:00
|
|
|
}
|
|
|
|
|
);
|
2017-11-12 01:48:29 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports = ReadFileCompileWasmTemplatePlugin;
|