Skip to content

Commit 58b361d

Browse files
authored
Migrate to rollup. FIx sha256 browser dependency. Remove esbuild. Add esm browser build (#27)
1 parent 89623bb commit 58b361d

File tree

13 files changed

+2582
-1278
lines changed

13 files changed

+2582
-1278
lines changed

config/rollup.config.mjs

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import commonJS from '@rollup/plugin-commonjs';
2+
import { nodeResolve } from '@rollup/plugin-node-resolve';
3+
import terser from '@rollup/plugin-terser';
4+
import typescript from '@rollup/plugin-typescript';
5+
import tsConfig from '../tsconfig.json' assert { type: 'json' };
6+
import packageJson from '../package.json' assert { type: 'json' };
7+
8+
const external = Object.keys(packageJson.peerDependencies || {});
9+
10+
const config = {
11+
input: 'src/index.ts',
12+
external,
13+
output: [
14+
{
15+
format: 'es',
16+
file: packageJson.exports['.'].browser,
17+
sourcemap: true
18+
}
19+
],
20+
treeshake: {
21+
preset: 'smallest'
22+
}
23+
};
24+
25+
export default [
26+
// esm browser
27+
{
28+
...config,
29+
plugins: [
30+
typescript({
31+
compilerOptions: {
32+
...tsConfig.compilerOptions
33+
}
34+
}),
35+
commonJS(),
36+
nodeResolve({
37+
browser: true
38+
}),
39+
terser()
40+
]
41+
},
42+
// umd browser
43+
{
44+
...config,
45+
external: [],
46+
plugins: [
47+
typescript({
48+
compilerOptions: {
49+
...tsConfig.compilerOptions
50+
}
51+
}),
52+
commonJS(),
53+
nodeResolve({
54+
browser: true
55+
}),
56+
terser()
57+
],
58+
output: [
59+
{
60+
format: 'iife',
61+
file: packageJson.exports['.'].umd,
62+
name: 'Iden3Core',
63+
sourcemap: true
64+
}
65+
]
66+
}
67+
];

config/tsconfig.esm.json

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

index.html

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,36 @@
11
<!DOCTYPE html>
22
<html lang="en">
3-
4-
<head>
5-
<meta charset="UTF-8">
6-
<meta http-equiv="X-UA-Compatible"
7-
content="IE=edge">
8-
<meta name="viewport"
9-
content="width=device-width, initial-scale=1.0">
10-
<script src="./dist/umd/index.js"></script>
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<script src="./dist/browser/umd/index.js"></script>
118
<title>Test</title>
12-
</head>
9+
<script type="importmap">
10+
{
11+
"imports": {
12+
"@iden3/js-crypto": "./node_modules/@iden3/js-crypto/dist/browser/esm/index.js"
13+
}
14+
}
15+
</script>
16+
</head>
1317

14-
<body>
15-
Test UMD script work
16-
</body>
17-
<script>
18-
const claim = Iden3Core.Claim.newClaim(new Iden3Core.SchemaHash(), Iden3Core.ClaimOptions.withFlagUpdatable(true));
19-
const { index, value } = claim.rawSlots();
20-
console.log(index, value, claim);
21-
console.log(claim.hIndex());
22-
console.assert(claim.value.length === 4);
23-
</script>
18+
<body>
19+
Test UMD/ESM script work
2420

21+
<script type="module">
22+
import * as esm from './dist/browser/esm/index.js';
23+
function test(module) {
24+
const { Claim, SchemaHash, ClaimOptions, BytesHelper } = module;
25+
const claim = Claim.newClaim(new SchemaHash(), ClaimOptions.withFlagUpdatable(true));
26+
const { index, value } = claim.rawSlots();
27+
console.log(index, value, claim);
28+
console.log(claim.hIndex());
29+
console.assert(claim.value.length === 4);
30+
console.log(BytesHelper.hashBytes('test'));
31+
}
32+
test(esm);
33+
test(Iden3Core);
34+
</script>
35+
</body>
2536
</html>

0 commit comments

Comments
 (0)