Sha256: eaf0b7a131b32d6ca3598e1bda4af84a48e919877bac08dd727fbcedddea394d

Contents?: true

Size: 1.42 KB

Versions: 28

Compression:

Stored size: 1.42 KB

Contents

/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	Author Tobias Koppers @sokra
*/
"use strict";

const Template = require("../Template");
const WasmMainTemplatePlugin = require("../wasm/WasmMainTemplatePlugin");

class ReadFileCompileWasmTemplatePlugin {
	constructor(options) {
		this.options = options || {};
	}

	apply(compiler) {
		compiler.hooks.thisCompilation.tap(
			"ReadFileCompileWasmTemplatePlugin",
			compilation => {
				const generateLoadBinaryCode = path =>
					Template.asString([
						"new Promise(function (resolve, reject) {",
						Template.indent([
							"var { readFile } = require('fs');",
							"var { join } = require('path');",
							"",
							"try {",
							Template.indent([
								`readFile(join(__dirname, ${path}), function(err, buffer){`,
								Template.indent([
									"if (err) return reject(err);",
									"",
									"// Fake fetch response",
									"resolve({",
									Template.indent([
										"arrayBuffer() { return Promise.resolve(buffer); }"
									]),
									"});"
								]),
								"});"
							]),
							"} catch (err) { reject(err); }"
						]),
						"})"
					]);

				const plugin = new WasmMainTemplatePlugin(
					Object.assign(
						{
							generateLoadBinaryCode,
							supportsStreaming: false
						},
						this.options
					)
				);
				plugin.apply(compilation.mainTemplate);
			}
		);
	}
}

module.exports = ReadFileCompileWasmTemplatePlugin;

Version data entries

28 entries across 27 versions & 9 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
disco_app-0.18.0 test/dummy/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
disco_app-0.18.2 test/dummy/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
disco_app-0.16.1 test/dummy/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
disco_app-0.15.2 test/dummy/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
disco_app-0.18.4 test/dummy/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
disco_app-0.18.1 test/dummy/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
disco_app-0.14.0 test/dummy/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
tang-0.2.1 spec/tang_app/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
groonga-client-model-6.0.0 test/apps/rails6.1.3/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
groonga-client-model-6.0.0 test/apps/rails6.0.3.5/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
ruby2js-4.0.4 lib/tasks/testrails/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
ruby2js-4.0.3 lib/tasks/testrails/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
tang-0.2.0 spec/tang_app/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
tang-0.1.0 spec/tang_app/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
tang-0.0.9 spec/tang_app/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
enju_library-0.3.8 spec/dummy/node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js
jester-data-8.0.0 node_modules/webpack/lib/node/ReadFileCompileWasmTemplatePlugin.js