Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As a developer
I would like to use @noir-lang/* packages in browser and nodejs
so that I don't have to maintain separate code bases.
Changes supporting this case:
barretenberg.js/exports/index.mjs
index file supporting ESM style of usage, eg.import ... from ...
barretenberg.js/package.json
yarn package
script to emit bothESM
andCommonJS
package versions into their own directories (dest
commonjs folder kept for compatibility with previous code)import/require
stylebarretenberg.js/src/crypto/random/index.ts
checks forself
first as otherwisewindow
check fails when running in WebWorker, adds an error to make debugging problems a bit easierbarretenberg.js/src/index.ts
adds index with exports for compatibilitybarretenberg.js/src/iso_fetch/index.ts
again usingself
first to avoid execution problems in WebWorkerbarretenberg.js/src/wasm/barretenberg.wasm
pre-built wasm binarybarretenberg.js/src/wasm/barretenberg_wasm.ts
relies onimport.meta
for loading wasm in browser environment, patches this when building for CommonJSbarretenberg.js/src/wasm/index.ts
relies onimport.meta
for loading wasm in browser environment, patches this when building for CommonJSbarretenberg.js/src/wasm/worker_factory.ts
relies onimport.meta
for loading wasm in browser environment, patches this when building for CommonJS, branches differently for node and browser as ThreadJS does not support this way of handling workers (attempts to fix path).