Files
xahau.js/weback.test.config.js
Caleb Kniffen 38b385969b feat: remove Buffer support and bundle polyfill (#2526)
- Removes need for bundlers to polyfill the `Buffer` class. `UInt8Array` are used instead which are native to the browser and node.
- Reduces bundle size 7.1kb gzipped and eliminates 4 runtime dependencies: `base-x`, `base64-js`, `buffer`, and `ieee754`.

BREAKING CHANGE: All methods that previously took a `Buffer` now accept a `UInt8Array`.

---------

Co-authored-by: Jackson Mills <jmills@ripple.com>
2024-02-01 13:53:41 -06:00

62 lines
1.3 KiB
JavaScript

"use strict";
const assert = require("assert");
const path = require("path");
const webpack = require("webpack");
function webpackForTest(testFileName, basePath) {
const match = testFileName.match(/\/?([^\/]*)\.ts$/);
if (!match) {
assert(false, "wrong filename:" + testFileName);
}
return {
mode: "production",
cache: true,
entry: testFileName,
output: {
library: match[1].replace(/-/g, "_"),
path: path.join(basePath, "./testCompiledForWeb/"),
filename: match[1] + ".js",
},
plugins: [
new webpack.DefinePlugin({
"process.stdout": {},
}),
new webpack.ProvidePlugin({ process: "process/browser" }),
],
module: {
rules: [
// Compile compile the tests
{
test: /\.ts$/,
use: [
{
loader: "ts-loader",
options: {
compilerOptions: {
lib: ["esnext", "dom"],
composite: false,
declaration: false,
declarationMap: false,
},
},
},
],
},
],
},
node: {
global: true,
__filename: false,
__dirname: true,
},
resolve: {
extensions: [".ts", ".js", ".json"],
},
};
}
module.exports = {
webpackForTest,
};