From e85ebfea315f1e6a7abb8d3d09bfe9666606ec04 Mon Sep 17 00:00:00 2001 From: Jeff Raymakers Date: Tue, 26 Sep 2023 11:54:40 -0700 Subject: [PATCH] esbuild-browser example using coi --- examples/esbuild-browser/.gitignore | 1 + examples/esbuild-browser/bundle.mjs | 27 +++++++++++++++++++++++++++ examples/esbuild-browser/index.ts | 5 +++++ examples/esbuild-browser/package.json | 4 +++- examples/esbuild-browser/serve.json | 11 +++++++++++ 5 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 examples/esbuild-browser/serve.json diff --git a/examples/esbuild-browser/.gitignore b/examples/esbuild-browser/.gitignore index 0b55ae729..7e5256ac9 100644 --- a/examples/esbuild-browser/.gitignore +++ b/examples/esbuild-browser/.gitignore @@ -1,3 +1,4 @@ /node_modules /*.wasm /*.js +/*.js.map diff --git a/examples/esbuild-browser/bundle.mjs b/examples/esbuild-browser/bundle.mjs index 95bc38c51..1f7e7c77a 100644 --- a/examples/esbuild-browser/bundle.mjs +++ b/examples/esbuild-browser/bundle.mjs @@ -12,8 +12,35 @@ function printErr(err) { fs.copyFile(path.resolve(DUCKDB_DIST, 'duckdb-mvp.wasm'), './duckdb-mvp.wasm', printErr); fs.copyFile(path.resolve(DUCKDB_DIST, 'duckdb-eh.wasm'), './duckdb-eh.wasm', printErr); +fs.copyFile(path.resolve(DUCKDB_DIST, 'duckdb-coi.wasm'), './duckdb-coi.wasm', printErr); fs.copyFile(path.resolve(DUCKDB_DIST, 'duckdb-browser-mvp.worker.js'), './duckdb-browser-mvp.worker.js', printErr); +fs.copyFile( + path.resolve(DUCKDB_DIST, 'duckdb-browser-mvp.worker.js.map'), + './duckdb-browser-mvp.worker.js.map', + printErr, +); fs.copyFile(path.resolve(DUCKDB_DIST, 'duckdb-browser-eh.worker.js'), './duckdb-browser-eh.worker.js', printErr); +fs.copyFile( + path.resolve(DUCKDB_DIST, 'duckdb-browser-eh.worker.js.map'), + './duckdb-browser-eh.worker.js.map', + printErr, +); +fs.copyFile(path.resolve(DUCKDB_DIST, 'duckdb-browser-coi.worker.js'), './duckdb-browser-coi.worker.js', printErr); +fs.copyFile( + path.resolve(DUCKDB_DIST, 'duckdb-browser-coi.worker.js.map'), + './duckdb-browser-coi.worker.js.map', + printErr, +); +fs.copyFile( + path.resolve(DUCKDB_DIST, 'duckdb-browser-coi.pthread.worker.js'), + './duckdb-browser-coi.pthread.worker.js', + printErr, +); +fs.copyFile( + path.resolve(DUCKDB_DIST, 'duckdb-browser-coi.pthread.worker.js.map'), + './duckdb-browser-coi.pthread.worker.js.map', + printErr, +); esbuild.build({ entryPoints: ['./index.ts'], diff --git a/examples/esbuild-browser/index.ts b/examples/esbuild-browser/index.ts index 67689df68..a940390d9 100644 --- a/examples/esbuild-browser/index.ts +++ b/examples/esbuild-browser/index.ts @@ -12,6 +12,11 @@ import * as arrow from 'apache-arrow'; mainModule: './duckdb-eh.wasm', mainWorker: './duckdb-browser-eh.worker.js', }, + coi: { + mainModule: './duckdb-coi.wasm', + mainWorker: './duckdb-browser-coi.worker.js', + pthreadWorker: './duckdb-browser-coi.pthread.worker.js', + }, }); const logger = new duckdb.ConsoleLogger(); diff --git a/examples/esbuild-browser/package.json b/examples/esbuild-browser/package.json index 6d1a97623..4faf9f1c7 100644 --- a/examples/esbuild-browser/package.json +++ b/examples/esbuild-browser/package.json @@ -10,10 +10,12 @@ "devDependencies": { "esbuild": "^0.19.5", "http-server": "^14.1.1", + "serve": "^14.2.1", "typescript": "^5.2.2" }, "scripts": { "build": "node ./bundle.mjs && tsc --noEmit", - "server": "http-server" + "server": "http-server", + "server-coi": "serve" } } diff --git a/examples/esbuild-browser/serve.json b/examples/esbuild-browser/serve.json new file mode 100644 index 000000000..825afee00 --- /dev/null +++ b/examples/esbuild-browser/serve.json @@ -0,0 +1,11 @@ +{ + "headers": [ + { + "source": "*", + "headers": [ + { "key": "Cross-Origin-Embedder-Policy", "value": "require-corp" }, + { "key": "Cross-Origin-Opener-Policy", "value": "same-origin" } + ] + } + ] +}