Skip to content

Commit c4d9922

Browse files
authored
feat: fix for old compilers (#26)
this uses a new tool that I wrote for compiling output of a CJS target for browsers along with Node.js, this solves the export missmatch for older compilers by pointing the old browser field
1 parent b357efd commit c4d9922

File tree

4 files changed

+45
-36
lines changed

4 files changed

+45
-36
lines changed

bases/base64.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,11 @@ const base64pad = create('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01
4141
const base64url = create('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_')
4242
const base64urlpad = create('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=')
4343

44-
export default [
44+
const ex = [
4545
{ prefix: 'm', name: 'base64', ...base64 },
4646
{ prefix: 'M', name: 'base64pad', ...base64pad },
4747
{ prefix: 'u', name: 'base64url', ...base64url },
4848
{ prefix: 'U', name: 'base64urlpad', ...base64urlpad }
4949
]
50+
ex.b64 = b64
51+
export default ex

package.json

Lines changed: 41 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,80 +5,100 @@
55
"main": "index.js",
66
"type": "module",
77
"scripts": {
8-
"build": "rollup --config rollup.config.js",
8+
"build": "npx @mikeal/limbo test/test-*.js",
99
"prepublishOnly": "npm run build",
1010
"lint": "standard",
11-
"test:cjs": "rm -rf dist && npm run build && mocha dist/test/test-*.cjs",
11+
"test:cjs": "rm -rf dist && npm run build && mocha dist/cjs-node/test/test-*.cjs && npm run test:cjs:browser",
1212
"test:node": "hundreds mocha test/test-*.js",
13-
"test:browser": "polendina --webpack-config polendina.webpack.config.cjs --cleanup test/test-*.js",
14-
"test": "npm run lint && npm run test:node && npm run test:browser && npm run test:cjs",
13+
"test:cjs:browser": "polendina --cleanup dist/cjs-browser/test/test-*.js",
14+
"test": "npm run lint && npm run test:node && npm run test:cjs",
1515
"coverage": "c8 --reporter=html mocha test/test-*.js && npx st -d coverage -p 8080"
1616
},
1717
"keywords": [],
1818
"author": "Mikeal Rogers <[email protected]> (https://www.mikealrogers.com/)",
1919
"license": "(Apache-2.0 AND MIT)",
2020
"browser": {
21-
"./hashes/sha2.js": "./hashes/sha2-browser.js",
22-
"./bases/_base64.js": "./bases/_base64-browser.js"
21+
"./bases/_base64-browser.js": "./dist/cjs-browser/bases/_base64-browser.js",
22+
"./bases/base16.js": "./dist/cjs-browser/bases/base16.js",
23+
"./bases/base32.js": "./dist/cjs-browser/bases/base32.js",
24+
"./bases/base58.js": "./dist/cjs-browser/bases/base58.js",
25+
"./bases/base64.js": "./dist/cjs-browser/bases/base64.js",
26+
"./basics.js": "./dist/cjs-browser/basics.js",
27+
"./bytes.js": "./dist/cjs-browser/bytes.js",
28+
"./cid.js": "./dist/cjs-browser/cid.js",
29+
"./codecs/json.js": "./dist/cjs-browser/codecs/json.js",
30+
"./codecs/raw.js": "./dist/cjs-browser/codecs/raw.js",
31+
"./hashes/sha2-browser.js": "./dist/cjs-browser/hashes/sha2-browser.js",
32+
"./index.js": "./dist/cjs-browser/index.js",
33+
"./legacy.js": "./dist/cjs-browser/legacy.js",
34+
"./test/fixtures/invalid-multihash.js": "./dist/cjs-browser/test/fixtures/invalid-multihash.js",
35+
"./test/fixtures/valid-multihash.js": "./dist/cjs-browser/test/fixtures/valid-multihash.js",
36+
"./test/test-bytes.js": "./dist/cjs-browser/test/test-bytes.js",
37+
"./test/test-cid.js": "./dist/cjs-browser/test/test-cid.js",
38+
"./test/test-errors.js": "./dist/cjs-browser/test/test-errors.js",
39+
"./test/test-legacy.js": "./dist/cjs-browser/test/test-legacy.js",
40+
"./test/test-multibase.js": "./dist/cjs-browser/test/test-multibase.js",
41+
"./test/test-multicodec.js": "./dist/cjs-browser/test/test-multicodec.js",
42+
"./test/test-multihash.js": "./dist/cjs-browser/test/test-multihash.js"
2343
},
2444
"exports": {
2545
".": {
2646
"import": "./index.js",
27-
"require": "./dist/index.cjs"
47+
"require": "./dist/cjs-node/index.cjs"
2848
},
2949
"./index.js": {
3050
"import": "./index.js",
31-
"require": "./dist/index.cjs"
51+
"require": "./dist/cjs-node/index.cjs"
3252
},
3353
"./basics.js": {
3454
"import": "./basics.js",
35-
"require": "./dist/basics.cjs"
55+
"require": "./dist/cjs-node/basics.cjs"
3656
},
3757
"./bytes.js": {
3858
"import": "./bytes.js",
39-
"require": "./dist/bytes.cjs"
59+
"require": "./dist/cjs-node/bytes.cjs"
4060
},
4161
"./cid.js": {
4262
"import": "./cid.js",
43-
"require": "./dist/cid.cjs"
63+
"require": "./dist/cjs-node/cid.cjs"
4464
},
4565
"./legacy.js": {
4666
"import": "./legacy.js",
47-
"require": "./dist/legacy.cjs"
67+
"require": "./dist/cjs-node/legacy.cjs"
4868
},
4969
"./bases/_base64.js": {
5070
"browser": "./bases/_base64-browser.js",
5171
"import": "./bases/_base64.js",
52-
"require": "./dist/bases/_base64.cjs"
72+
"require": "./dist/cjs-node/bases/_base64.cjs"
5373
},
5474
"./bases/base16.js": {
5575
"import": "./bases/base16.js",
56-
"require": "./dist/bases/base16.cjs"
76+
"require": "./dist/cjs-node/bases/base16.cjs"
5777
},
5878
"./bases/base32.js": {
5979
"import": "./bases/base32.js",
60-
"require": "./dist/bases/base32.cjs"
80+
"require": "./dist/cjs-node/bases/base32.cjs"
6181
},
6282
"./bases/base58.js": {
6383
"import": "./bases/base58.js",
64-
"require": "./dist/bases/base58.cjs"
84+
"require": "./dist/cjs-node/bases/base58.cjs"
6585
},
6686
"./bases/base64.js": {
6787
"import": "./bases/base64.js",
68-
"require": "./dist/bases/base64.cjs"
88+
"require": "./dist/cjs-node/bases/base64.cjs"
6989
},
7090
"./hashes/sha2.js": {
7191
"browser": "./hashes/sha2-browser.js",
7292
"import": "./hashes/sha2.js",
73-
"require": "./dist/hashes/sha2.cjs"
93+
"require": "./dist/cjs-node/hashes/sha2.cjs"
7494
},
7595
"./codecs/json.js": {
7696
"import": "./codecs/json.js",
77-
"require": "./dist/codecs/json.cjs"
97+
"require": "./dist/cjs-node/codecs/json.cjs"
7898
},
7999
"./codecs/raw.js": {
80100
"import": "./codecs/raw.js",
81-
"require": "./dist/codecs/raw.cjs"
101+
"require": "./dist/cjs-node/codecs/raw.cjs"
82102
}
83103
},
84104
"devDependencies": {
@@ -113,4 +133,4 @@
113133
"url": "https://github.com/multiformats/js-multiformats/issues"
114134
},
115135
"homepage": "https://github.com/multiformats/js-multiformats#readme"
116-
}
136+
}

polendina.webpack.config.cjs

Lines changed: 0 additions & 12 deletions
This file was deleted.

test/test-multibase.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import base32 from 'multiformats/bases/base32.js'
77
import base58 from 'multiformats/bases/base58.js'
88
import base64 from 'multiformats/bases/base64.js'
99
import basics from 'multiformats/basics.js'
10-
import { __browser } from 'multiformats/bases/_base64.js'
1110
const basicsMultibase = basics.multibase
1211
const same = assert.deepStrictEqual
1312
const test = it
@@ -29,7 +28,7 @@ describe('multibase', () => {
2928
multibase.add(base58)
3029
multibase.add(base64)
3130
test('browser', () => {
32-
same(!!__browser, !!process.browser)
31+
same(!!base64.b64.__browser, !!process.browser)
3332
})
3433

3534
for (const base of ['base16', 'base32', 'base58btc', 'base64']) {

0 commit comments

Comments
 (0)