forked from mystiq/hydrogen-web
add bs58 as a dependency
override some of its imports as they would just add a lot of nodejs fluff that needs stubbing out for a browser.
This commit is contained in:
parent
0c6b6b18f1
commit
ff09f82f81
5 changed files with 51 additions and 2 deletions
|
@ -48,6 +48,7 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"another-json": "^0.2.0",
|
"another-json": "^0.2.0",
|
||||||
|
"bs58": "^4.0.1",
|
||||||
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.4.tgz"
|
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.4.tgz"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
6
scripts/package-overrides/buffer/index.js
Normal file
6
scripts/package-overrides/buffer/index.js
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
module.exports = class Buffer {
|
||||||
|
static isBuffer() {return false;}
|
||||||
|
static from(arrayBuffer) {return arrayBuffer;}
|
||||||
|
static allocUnsafe(size) {return Buffer.alloc(size);}
|
||||||
|
static alloc(size) {return new Uint8Array(size);}
|
||||||
|
};
|
1
scripts/package-overrides/safe-buffer/index.js
Normal file
1
scripts/package-overrides/safe-buffer/index.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
module.exports.Buffer = require("buffer");
|
|
@ -22,18 +22,34 @@ import { fileURLToPath } from 'url';
|
||||||
import { dirname } from 'path';
|
import { dirname } from 'path';
|
||||||
// needed to translate commonjs modules to esm
|
// needed to translate commonjs modules to esm
|
||||||
import commonjs from '@rollup/plugin-commonjs';
|
import commonjs from '@rollup/plugin-commonjs';
|
||||||
// multi-entry plugin so we can add polyfill file to main
|
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
||||||
import {removeDirIfExists} from "./common.mjs";
|
import {removeDirIfExists} from "./common.mjs";
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
const __dirname = dirname(__filename);
|
const __dirname = dirname(__filename);
|
||||||
const projectDir = path.join(__dirname, "../");
|
const projectDir = path.join(__dirname, "../");
|
||||||
|
|
||||||
|
/** function used to resolve common-js require calls below. */
|
||||||
|
function packageIterator(request, start, defaultIterator) {
|
||||||
|
// this is just working for bs58, would need to tune it further for other dependencies
|
||||||
|
if (request === "safe-buffer") {
|
||||||
|
return [path.join(projectDir, "/scripts/package-overrides/safe-buffer")];
|
||||||
|
} else if (request === "buffer/") {
|
||||||
|
return [path.join(projectDir, "/scripts/package-overrides/buffer")];
|
||||||
|
} else {
|
||||||
|
return defaultIterator();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function commonjsToESM(src, dst) {
|
async function commonjsToESM(src, dst) {
|
||||||
// create js bundle
|
// create js bundle
|
||||||
const bundle = await rollup({
|
const bundle = await rollup({
|
||||||
input: src,
|
input: src,
|
||||||
plugins: [commonjs()]
|
plugins: [commonjs(), nodeResolve({
|
||||||
|
browser: true,
|
||||||
|
preferBuiltins: false,
|
||||||
|
customResolveOptions: {packageIterator}
|
||||||
|
})]
|
||||||
});
|
});
|
||||||
const {output} = await bundle.generate({
|
const {output} = await bundle.generate({
|
||||||
format: 'es'
|
format: 'es'
|
||||||
|
@ -59,6 +75,12 @@ async function populateLib() {
|
||||||
path.join(modulesDir, 'another-json/another-json.js'),
|
path.join(modulesDir, 'another-json/another-json.js'),
|
||||||
path.join(libDir, "another-json/index.js")
|
path.join(libDir, "another-json/index.js")
|
||||||
);
|
);
|
||||||
|
// transpile bs58 to esm
|
||||||
|
await fs.mkdir(path.join(libDir, "bs58/"));
|
||||||
|
await commonjsToESM(
|
||||||
|
path.join(modulesDir, 'bs58/index.js'),
|
||||||
|
path.join(libDir, "bs58/index.js")
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
populateLib();
|
populateLib();
|
||||||
|
|
19
yarn.lock
19
yarn.lock
|
@ -931,6 +931,13 @@ balanced-match@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||||
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
||||||
|
|
||||||
|
base-x@^3.0.2:
|
||||||
|
version "3.0.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d"
|
||||||
|
integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==
|
||||||
|
dependencies:
|
||||||
|
safe-buffer "^5.0.1"
|
||||||
|
|
||||||
boolbase@~1.0.0:
|
boolbase@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
|
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
|
||||||
|
@ -954,6 +961,13 @@ browserslist@^4.12.0, browserslist@^4.8.5:
|
||||||
escalade "^3.0.2"
|
escalade "^3.0.2"
|
||||||
node-releases "^1.1.60"
|
node-releases "^1.1.60"
|
||||||
|
|
||||||
|
bs58@^4.0.1:
|
||||||
|
version "4.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a"
|
||||||
|
integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo=
|
||||||
|
dependencies:
|
||||||
|
base-x "^3.0.2"
|
||||||
|
|
||||||
builtin-modules@^3.1.0:
|
builtin-modules@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484"
|
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484"
|
||||||
|
@ -1726,6 +1740,11 @@ rollup@^2.26.4:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents "~2.1.2"
|
fsevents "~2.1.2"
|
||||||
|
|
||||||
|
safe-buffer@^5.0.1:
|
||||||
|
version "5.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
||||||
|
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
||||||
|
|
||||||
safe-buffer@~5.1.1:
|
safe-buffer@~5.1.1:
|
||||||
version "5.1.2"
|
version "5.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
||||||
|
|
Loading…
Reference in a new issue