diff --git a/packages/base91/.vscode/launch.json b/packages/base91/.vscode/launch.json new file mode 100644 index 00000000..7e2ffef5 --- /dev/null +++ b/packages/base91/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "test-browser", + "type": "msedge", + "request": "launch", + "url": "http://localhost:8888", + "webRoot": "${workspaceFolder}", + "outFiles": [ + "${workspaceFolder}/**/*.js", + "${workspaceFolder}/**/*.c", + "!**/node_modules/**" + ], + }, + { + "name": "test-node", + "type": "node", + "request": "launch", + "runtimeArgs": [ + "run-script", + "test-node" + ], + "runtimeExecutable": "npm", + "skipFiles": [ + "/**" + ], + "outFiles": [ + "${workspaceFolder}/**/*.js", + "${workspaceFolder}/**/*.c", + "!**/node_modules/**" + ], + } + ] +} \ No newline at end of file diff --git a/packages/base91/.vscode/tasks.json b/packages/base91/.vscode/tasks.json new file mode 100644 index 00000000..8e72d0d8 --- /dev/null +++ b/packages/base91/.vscode/tasks.json @@ -0,0 +1,74 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "label": "build-types-watch", + "script": "build-types-watch", + "problemMatcher": [ + "$tsc-watch" + ], + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "build-ts-watch", + "script": "build-ts-watch", + "problemMatcher": [ + "$tsc-watch" + ], + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "build-cpp-watch", + "script": "build-cpp-watch", + "options": { + "cwd": "${workspaceFolder}/../.." + }, + "problemMatcher": { + "owner": "cpp", + "fileLocation": [ + "relative", + "${workspaceFolder}" + ], + "pattern": { + "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + }, + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "test-serve", + "script": "test-serve", + "presentation": { + "group": "group-build" + } + }, + { + "label": "build", + "dependsOn": [ + "build-types-watch", + "build-ts-watch", + "build-cpp-watch", + "test-serve" + ], + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} \ No newline at end of file diff --git a/packages/base91/esbuild.mjs b/packages/base91/esbuild.mjs index 4d15f622..a83a530e 100644 --- a/packages/base91/esbuild.mjs +++ b/packages/base91/esbuild.mjs @@ -3,7 +3,7 @@ import { browserTpl, neutralTpl, nodeTpl } from "@hpcc-js/esbuild-plugins"; // config --- await neutralTpl("src/index.ts", "dist/index"); await Promise.all([ - browserTpl("spec/index-browser.ts", "dist-test/index.browser"), - nodeTpl("spec/index-node.ts", "dist-test/index.node"), + browserTpl("spec/index-browser.ts", "dist-test/index.browser", undefined, undefined, undefined, ["@hpcc-js/wasm-base91"]), + nodeTpl("spec/index-node.ts", "dist-test/index.node", undefined, undefined, undefined, ["@hpcc-js/wasm-base91"]), ]); diff --git a/packages/base91/package.json b/packages/base91/package.json index c115bbfd..36209d97 100644 --- a/packages/base91/package.json +++ b/packages/base91/package.json @@ -28,6 +28,7 @@ "lint-skypack": "npx -y @skypack/package-check", "lint-eslint": "eslint src/**/*.ts spec/*.ts", "lint": "run-p lint-eslint", + "test-serve": "jasmine-browser-runner serve", "test-browser": "jasmine-browser-runner runSpecs", "test-node": "jasmine", "test": "run-s test-node test-browser", diff --git a/packages/base91/spec/support/jasmine-browser.mjs b/packages/base91/spec/support/jasmine-browser.mjs index 6ad6dafe..d92a3b0d 100644 --- a/packages/base91/spec/support/jasmine-browser.mjs +++ b/packages/base91/spec/support/jasmine-browser.mjs @@ -1,27 +1,35 @@ +import pkg from "../../package.json" with {type: "json"}; + export default { - srcDir: "src", - srcFiles: [ - "**/*.ts" - ], - specDir: "dist-test", - specFiles: [ - "index.browser.js" - ], - env: { - stopSpecOnExpectationFailure: false, - stopOnSpecFailure: false, - random: false - }, + srcDir: "src", + srcFiles: [ + "*.ts" + ], + specDir: "dist-test", + specFiles: [ + "*.browser.js" + ], + esmFilenameExtension: ".js", + importMap: { + imports: { + [pkg.name]: "dist/index.js" + } + }, + env: { + stopSpecOnExpectationFailure: false, + stopOnSpecFailure: false, + random: false + }, - // For security, listen only to localhost. You can also specify a different - // hostname or IP address, or remove the property or set it to "*" to listen - // to all network interfaces. - listenAddress: "localhost", + // For security, listen only to localhost. You can also specify a different + // hostname or IP address, or remove the property or set it to "*" to listen + // to all network interfaces. + listenAddress: "localhost", - // The hostname that the browser will use to connect to the server. - hostname: "localhost", + // The hostname that the browser will use to connect to the server. + hostname: "localhost", - browser: { - name: "headlessFirefox" - } + browser: { + name: "headlessFirefox" + } }; diff --git a/packages/base91/spec/support/jasmine.json b/packages/base91/spec/support/jasmine.json index 2098451f..2ac6faaf 100644 --- a/packages/base91/spec/support/jasmine.json +++ b/packages/base91/spec/support/jasmine.json @@ -1,10 +1,10 @@ { - "spec_dir": "dist-test", - "spec_files": [ - "index.node.js" - ], - "env": { - "stopSpecOnExpectationFailure": false, - "random": false - } + "spec_dir": "dist-test", + "spec_files": [ + "index.node.js" + ], + "env": { + "stopSpecOnExpectationFailure": false, + "random": false + } } \ No newline at end of file diff --git a/packages/base91/src-cpp/CMakeLists.txt b/packages/base91/src-cpp/CMakeLists.txt index 2f8b4f8e..2e1ddda3 100644 --- a/packages/base91/src-cpp/CMakeLists.txt +++ b/packages/base91/src-cpp/CMakeLists.txt @@ -39,4 +39,3 @@ set_target_properties(base91lib PROPERTIES LINK_FLAGS "${LINK_FLAGS}") target_link_libraries(base91lib PRIVATE unofficial::base91::base91 ) - diff --git a/packages/duckdb/.vscode/launch.json b/packages/duckdb/.vscode/launch.json new file mode 100644 index 00000000..7e2ffef5 --- /dev/null +++ b/packages/duckdb/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "test-browser", + "type": "msedge", + "request": "launch", + "url": "http://localhost:8888", + "webRoot": "${workspaceFolder}", + "outFiles": [ + "${workspaceFolder}/**/*.js", + "${workspaceFolder}/**/*.c", + "!**/node_modules/**" + ], + }, + { + "name": "test-node", + "type": "node", + "request": "launch", + "runtimeArgs": [ + "run-script", + "test-node" + ], + "runtimeExecutable": "npm", + "skipFiles": [ + "/**" + ], + "outFiles": [ + "${workspaceFolder}/**/*.js", + "${workspaceFolder}/**/*.c", + "!**/node_modules/**" + ], + } + ] +} \ No newline at end of file diff --git a/packages/duckdb/.vscode/tasks.json b/packages/duckdb/.vscode/tasks.json new file mode 100644 index 00000000..8e72d0d8 --- /dev/null +++ b/packages/duckdb/.vscode/tasks.json @@ -0,0 +1,74 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "label": "build-types-watch", + "script": "build-types-watch", + "problemMatcher": [ + "$tsc-watch" + ], + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "build-ts-watch", + "script": "build-ts-watch", + "problemMatcher": [ + "$tsc-watch" + ], + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "build-cpp-watch", + "script": "build-cpp-watch", + "options": { + "cwd": "${workspaceFolder}/../.." + }, + "problemMatcher": { + "owner": "cpp", + "fileLocation": [ + "relative", + "${workspaceFolder}" + ], + "pattern": { + "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + }, + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "test-serve", + "script": "test-serve", + "presentation": { + "group": "group-build" + } + }, + { + "label": "build", + "dependsOn": [ + "build-types-watch", + "build-ts-watch", + "build-cpp-watch", + "test-serve" + ], + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} \ No newline at end of file diff --git a/packages/duckdb/esbuild.mjs b/packages/duckdb/esbuild.mjs index 03504823..23e7004a 100644 --- a/packages/duckdb/esbuild.mjs +++ b/packages/duckdb/esbuild.mjs @@ -3,6 +3,6 @@ import { browserTpl, neutralTpl, nodeTpl } from "@hpcc-js/esbuild-plugins"; // config --- await browserTpl("src/index.ts", "dist/index"); await Promise.all([ - browserTpl("spec/index-browser.ts", "dist-test/index.browser") + browserTpl("spec/index-browser.ts", "dist-test/index.browser", undefined, undefined, undefined, ["@hpcc-js/wasm-duckdb"]) ]); diff --git a/packages/duckdb/package.json b/packages/duckdb/package.json index 1520f77a..bc800bb0 100644 --- a/packages/duckdb/package.json +++ b/packages/duckdb/package.json @@ -32,6 +32,7 @@ "lint-skypack": "npx -y @skypack/package-check", "lint-eslint": "eslint src/**/*.ts spec/*.ts", "lint": "run-p lint-eslint", + "test-serve": "jasmine-browser-runner serve", "test-browser": "jasmine-browser-runner runSpecs", "test": "run-s test-browser", "update": "npx -y npm-check-updates -u -t minor", diff --git a/packages/duckdb/spec/support/jasmine-browser.mjs b/packages/duckdb/spec/support/jasmine-browser.mjs index 6ad6dafe..d92a3b0d 100644 --- a/packages/duckdb/spec/support/jasmine-browser.mjs +++ b/packages/duckdb/spec/support/jasmine-browser.mjs @@ -1,27 +1,35 @@ +import pkg from "../../package.json" with {type: "json"}; + export default { - srcDir: "src", - srcFiles: [ - "**/*.ts" - ], - specDir: "dist-test", - specFiles: [ - "index.browser.js" - ], - env: { - stopSpecOnExpectationFailure: false, - stopOnSpecFailure: false, - random: false - }, + srcDir: "src", + srcFiles: [ + "*.ts" + ], + specDir: "dist-test", + specFiles: [ + "*.browser.js" + ], + esmFilenameExtension: ".js", + importMap: { + imports: { + [pkg.name]: "dist/index.js" + } + }, + env: { + stopSpecOnExpectationFailure: false, + stopOnSpecFailure: false, + random: false + }, - // For security, listen only to localhost. You can also specify a different - // hostname or IP address, or remove the property or set it to "*" to listen - // to all network interfaces. - listenAddress: "localhost", + // For security, listen only to localhost. You can also specify a different + // hostname or IP address, or remove the property or set it to "*" to listen + // to all network interfaces. + listenAddress: "localhost", - // The hostname that the browser will use to connect to the server. - hostname: "localhost", + // The hostname that the browser will use to connect to the server. + hostname: "localhost", - browser: { - name: "headlessFirefox" - } + browser: { + name: "headlessFirefox" + } }; diff --git a/packages/duckdb/spec/support/jasmine.json b/packages/duckdb/spec/support/jasmine.json index 2098451f..2ac6faaf 100644 --- a/packages/duckdb/spec/support/jasmine.json +++ b/packages/duckdb/spec/support/jasmine.json @@ -1,10 +1,10 @@ { - "spec_dir": "dist-test", - "spec_files": [ - "index.node.js" - ], - "env": { - "stopSpecOnExpectationFailure": false, - "random": false - } + "spec_dir": "dist-test", + "spec_files": [ + "index.node.js" + ], + "env": { + "stopSpecOnExpectationFailure": false, + "random": false + } } \ No newline at end of file diff --git a/packages/expat/.vscode/launch.json b/packages/expat/.vscode/launch.json new file mode 100644 index 00000000..7e2ffef5 --- /dev/null +++ b/packages/expat/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "test-browser", + "type": "msedge", + "request": "launch", + "url": "http://localhost:8888", + "webRoot": "${workspaceFolder}", + "outFiles": [ + "${workspaceFolder}/**/*.js", + "${workspaceFolder}/**/*.c", + "!**/node_modules/**" + ], + }, + { + "name": "test-node", + "type": "node", + "request": "launch", + "runtimeArgs": [ + "run-script", + "test-node" + ], + "runtimeExecutable": "npm", + "skipFiles": [ + "/**" + ], + "outFiles": [ + "${workspaceFolder}/**/*.js", + "${workspaceFolder}/**/*.c", + "!**/node_modules/**" + ], + } + ] +} \ No newline at end of file diff --git a/packages/expat/.vscode/tasks.json b/packages/expat/.vscode/tasks.json new file mode 100644 index 00000000..8e72d0d8 --- /dev/null +++ b/packages/expat/.vscode/tasks.json @@ -0,0 +1,74 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "label": "build-types-watch", + "script": "build-types-watch", + "problemMatcher": [ + "$tsc-watch" + ], + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "build-ts-watch", + "script": "build-ts-watch", + "problemMatcher": [ + "$tsc-watch" + ], + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "build-cpp-watch", + "script": "build-cpp-watch", + "options": { + "cwd": "${workspaceFolder}/../.." + }, + "problemMatcher": { + "owner": "cpp", + "fileLocation": [ + "relative", + "${workspaceFolder}" + ], + "pattern": { + "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + }, + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "test-serve", + "script": "test-serve", + "presentation": { + "group": "group-build" + } + }, + { + "label": "build", + "dependsOn": [ + "build-types-watch", + "build-ts-watch", + "build-cpp-watch", + "test-serve" + ], + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} \ No newline at end of file diff --git a/packages/expat/esbuild.mjs b/packages/expat/esbuild.mjs index 4d15f622..b2f6e729 100644 --- a/packages/expat/esbuild.mjs +++ b/packages/expat/esbuild.mjs @@ -3,7 +3,7 @@ import { browserTpl, neutralTpl, nodeTpl } from "@hpcc-js/esbuild-plugins"; // config --- await neutralTpl("src/index.ts", "dist/index"); await Promise.all([ - browserTpl("spec/index-browser.ts", "dist-test/index.browser"), - nodeTpl("spec/index-node.ts", "dist-test/index.node"), + browserTpl("spec/index-browser.ts", "dist-test/index.browser", undefined, undefined, undefined, ["@hpcc-js/wasm-expat"]), + nodeTpl("spec/index-node.ts", "dist-test/index.node", undefined, undefined, undefined, ["@hpcc-js/wasm-expat"]), ]); diff --git a/packages/expat/package.json b/packages/expat/package.json index 089e07b1..54940327 100644 --- a/packages/expat/package.json +++ b/packages/expat/package.json @@ -28,6 +28,7 @@ "lint-skypack": "npx -y @skypack/package-check", "lint-eslint": "eslint src/**/*.ts spec/*.ts", "lint": "run-p lint-eslint", + "test-serve": "jasmine-browser-runner serve", "test-browser": "jasmine-browser-runner runSpecs", "test-node": "jasmine", "test": "run-s test-node test-browser", diff --git a/packages/expat/spec/support/jasmine-browser.mjs b/packages/expat/spec/support/jasmine-browser.mjs index 6ad6dafe..d92a3b0d 100644 --- a/packages/expat/spec/support/jasmine-browser.mjs +++ b/packages/expat/spec/support/jasmine-browser.mjs @@ -1,27 +1,35 @@ +import pkg from "../../package.json" with {type: "json"}; + export default { - srcDir: "src", - srcFiles: [ - "**/*.ts" - ], - specDir: "dist-test", - specFiles: [ - "index.browser.js" - ], - env: { - stopSpecOnExpectationFailure: false, - stopOnSpecFailure: false, - random: false - }, + srcDir: "src", + srcFiles: [ + "*.ts" + ], + specDir: "dist-test", + specFiles: [ + "*.browser.js" + ], + esmFilenameExtension: ".js", + importMap: { + imports: { + [pkg.name]: "dist/index.js" + } + }, + env: { + stopSpecOnExpectationFailure: false, + stopOnSpecFailure: false, + random: false + }, - // For security, listen only to localhost. You can also specify a different - // hostname or IP address, or remove the property or set it to "*" to listen - // to all network interfaces. - listenAddress: "localhost", + // For security, listen only to localhost. You can also specify a different + // hostname or IP address, or remove the property or set it to "*" to listen + // to all network interfaces. + listenAddress: "localhost", - // The hostname that the browser will use to connect to the server. - hostname: "localhost", + // The hostname that the browser will use to connect to the server. + hostname: "localhost", - browser: { - name: "headlessFirefox" - } + browser: { + name: "headlessFirefox" + } }; diff --git a/packages/expat/spec/support/jasmine.json b/packages/expat/spec/support/jasmine.json index 2098451f..2ac6faaf 100644 --- a/packages/expat/spec/support/jasmine.json +++ b/packages/expat/spec/support/jasmine.json @@ -1,10 +1,10 @@ { - "spec_dir": "dist-test", - "spec_files": [ - "index.node.js" - ], - "env": { - "stopSpecOnExpectationFailure": false, - "random": false - } + "spec_dir": "dist-test", + "spec_files": [ + "index.node.js" + ], + "env": { + "stopSpecOnExpectationFailure": false, + "random": false + } } \ No newline at end of file diff --git a/packages/graphviz/.vscode/launch.json b/packages/graphviz/.vscode/launch.json new file mode 100644 index 00000000..7e2ffef5 --- /dev/null +++ b/packages/graphviz/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "test-browser", + "type": "msedge", + "request": "launch", + "url": "http://localhost:8888", + "webRoot": "${workspaceFolder}", + "outFiles": [ + "${workspaceFolder}/**/*.js", + "${workspaceFolder}/**/*.c", + "!**/node_modules/**" + ], + }, + { + "name": "test-node", + "type": "node", + "request": "launch", + "runtimeArgs": [ + "run-script", + "test-node" + ], + "runtimeExecutable": "npm", + "skipFiles": [ + "/**" + ], + "outFiles": [ + "${workspaceFolder}/**/*.js", + "${workspaceFolder}/**/*.c", + "!**/node_modules/**" + ], + } + ] +} \ No newline at end of file diff --git a/packages/graphviz/.vscode/tasks.json b/packages/graphviz/.vscode/tasks.json new file mode 100644 index 00000000..8e72d0d8 --- /dev/null +++ b/packages/graphviz/.vscode/tasks.json @@ -0,0 +1,74 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "label": "build-types-watch", + "script": "build-types-watch", + "problemMatcher": [ + "$tsc-watch" + ], + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "build-ts-watch", + "script": "build-ts-watch", + "problemMatcher": [ + "$tsc-watch" + ], + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "build-cpp-watch", + "script": "build-cpp-watch", + "options": { + "cwd": "${workspaceFolder}/../.." + }, + "problemMatcher": { + "owner": "cpp", + "fileLocation": [ + "relative", + "${workspaceFolder}" + ], + "pattern": { + "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + }, + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "test-serve", + "script": "test-serve", + "presentation": { + "group": "group-build" + } + }, + { + "label": "build", + "dependsOn": [ + "build-types-watch", + "build-ts-watch", + "build-cpp-watch", + "test-serve" + ], + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} \ No newline at end of file diff --git a/packages/graphviz/esbuild.mjs b/packages/graphviz/esbuild.mjs index 6e053b92..1f4e89d2 100644 --- a/packages/graphviz/esbuild.mjs +++ b/packages/graphviz/esbuild.mjs @@ -3,9 +3,9 @@ import { browserTpl, neutralTpl, nodeTpl } from "@hpcc-js/esbuild-plugins"; // config --- await neutralTpl("src/index.ts", "dist/index"); await Promise.all([ - browserTpl("spec/index-browser.ts", "dist-test/index.browser"), + browserTpl("spec/index-browser.ts", "dist-test/index.browser", undefined, undefined, undefined, ["@hpcc-js/wasm-graphviz"]), browserTpl("spec/worker-browser.ts", "dist-test/worker.browser"), - nodeTpl("spec/index-node.ts", "dist-test/index.node"), - nodeTpl("spec/worker-node.ts", "dist-test/worker.node") + nodeTpl("spec/index-node.ts", "dist-test/index.node", undefined, undefined, undefined, ["@hpcc-js/wasm-graphviz"]), + nodeTpl("spec/worker-node.ts", "dist-test/worker.node", undefined, undefined, undefined, ["@hpcc-js/wasm-graphviz"]) ]); diff --git a/packages/graphviz/package.json b/packages/graphviz/package.json index ab7144b3..5113e9a1 100644 --- a/packages/graphviz/package.json +++ b/packages/graphviz/package.json @@ -28,6 +28,7 @@ "lint-skypack": "npx -y @skypack/package-check", "lint-eslint": "eslint src/**/*.ts spec/*.ts", "lint": "run-p lint-eslint", + "test-serve": "jasmine-browser-runner serve", "test-browser": "jasmine-browser-runner runSpecs", "test-node": "jasmine", "test": "run-s test-node test-browser", diff --git a/packages/graphviz/spec/browser-tests.ts b/packages/graphviz/spec/browser-tests.ts index bbf584c7..1393e8c8 100644 --- a/packages/graphviz/spec/browser-tests.ts +++ b/packages/graphviz/spec/browser-tests.ts @@ -4,7 +4,6 @@ import { Graphviz } from "@hpcc-js/wasm-graphviz"; jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000; describe("worker-browser", function () { - console.log("worker-esm-0"); let v; it("fetch version", async function () { @@ -23,16 +22,14 @@ describe("worker-browser", function () { it("worker-esm", function (done) { new Promise(() => { - console.log("worker-esm-2"); - const myWorker = new Worker("__spec__/worker.browser.js"); + const myWorker = new Worker("__spec__/worker.browser.js", { type: "module" }); expect(myWorker).to.be.instanceOf(Worker); myWorker.onmessage = function (e) { expect(e.data).to.deep.equal(data + v); done(); }; - myWorker.onerror = function (e) { - console.log(e); - done.fail(e?.error?.message ?? e.message); + myWorker.onerror = function (e: Event) { + done.fail(e.type); }; myWorker.postMessage(data); }); diff --git a/packages/graphviz/spec/index-browser.ts b/packages/graphviz/spec/index-browser.ts index a0bf0e52..59000d77 100644 --- a/packages/graphviz/spec/index-browser.ts +++ b/packages/graphviz/spec/index-browser.ts @@ -1,3 +1,2 @@ - -export * from "./graphviz.js"; +// export * from "./graphviz.js"; export * from "./browser-tests.js"; diff --git a/packages/graphviz/spec/support/jasmine-browser.mjs b/packages/graphviz/spec/support/jasmine-browser.mjs index 21b66875..77093fa7 100644 --- a/packages/graphviz/spec/support/jasmine-browser.mjs +++ b/packages/graphviz/spec/support/jasmine-browser.mjs @@ -1,28 +1,35 @@ +import pkg from "../../package.json" with {type: "json"}; + export default { - srcDir: "src", - srcFiles: [ - "**/*.ts" - ], - specDir: "dist-test", - specFiles: [ - "index.browser.js" - ], - env: { - stopSpecOnExpectationFailure: false, - stopOnSpecFailure: false, - random: false - }, - verbose: true, + srcDir: "src", + srcFiles: [ + "*.ts" + ], + specDir: "dist-test", + specFiles: [ + "*.browser.js" + ], + esmFilenameExtension: ".js", + importMap: { + imports: { + [pkg.name]: "/dist/index.js" + } + }, + env: { + stopSpecOnExpectationFailure: false, + stopOnSpecFailure: false, + random: false + }, - // For security, listen only to localhost. You can also specify a different - // hostname or IP address, or remove the property or set it to "*" to listen - // to all network interfaces. - listenAddress: "localhost", + // For security, listen only to localhost. You can also specify a different + // hostname or IP address, or remove the property or set it to "*" to listen + // to all network interfaces. + listenAddress: "localhost", - // The hostname that the browser will use to connect to the server. - hostname: "localhost", + // The hostname that the browser will use to connect to the server. + hostname: "localhost", - browser: { - name: "headlessFirefox" - } + browser: { + name: "headlessFirefox" + } }; diff --git a/packages/graphviz/spec/support/jasmine.json b/packages/graphviz/spec/support/jasmine.json index 2098451f..2ac6faaf 100644 --- a/packages/graphviz/spec/support/jasmine.json +++ b/packages/graphviz/spec/support/jasmine.json @@ -1,10 +1,10 @@ { - "spec_dir": "dist-test", - "spec_files": [ - "index.node.js" - ], - "env": { - "stopSpecOnExpectationFailure": false, - "random": false - } + "spec_dir": "dist-test", + "spec_files": [ + "index.node.js" + ], + "env": { + "stopSpecOnExpectationFailure": false, + "random": false + } } \ No newline at end of file diff --git a/packages/graphviz/spec/worker-browser.ts b/packages/graphviz/spec/worker-browser.ts index 7c000aef..c1cd78ed 100644 --- a/packages/graphviz/spec/worker-browser.ts +++ b/packages/graphviz/spec/worker-browser.ts @@ -1,8 +1,8 @@ import { Graphviz } from "@hpcc-js/wasm-graphviz"; -onmessage = async function (e) { +self.onmessage = async function (e) { const graphviz = await Graphviz.load(); const v = graphviz.version(); Graphviz.unload(); - postMessage(e.data + v); + self.postMessage(e.data + v); }; diff --git a/packages/llama/.vscode/launch.json b/packages/llama/.vscode/launch.json index 0fa7b74a..7e2ffef5 100644 --- a/packages/llama/.vscode/launch.json +++ b/packages/llama/.vscode/launch.json @@ -5,12 +5,13 @@ "name": "test-browser", "type": "msedge", "request": "launch", - "url": "file://${workspaceRoot}/test.html", - "webRoot": "${workspaceRoot}", - "sourceMapPathOverrides": { - "webpack:///./*": "${workspaceRoot}/*", - "webpack:///*": "/*" - }, + "url": "http://localhost:8888", + "webRoot": "${workspaceFolder}", + "outFiles": [ + "${workspaceFolder}/**/*.js", + "${workspaceFolder}/**/*.c", + "!**/node_modules/**" + ], }, { "name": "test-node", @@ -29,25 +30,6 @@ "${workspaceFolder}/**/*.c", "!**/node_modules/**" ], - }, - { - "name": "index-docs", - "type": "node", - "program": "${workspaceFolder}/dist-test/index-docs.node.js", - "request": "launch", - "skipFiles": [ - "/**" - ] - }, - { - "name": "esbuild", - "type": "node", - "program": "${workspaceFolder}/esbuild.mjs", - "request": "launch", - "args": [], - "skipFiles": [ - "/**" - ] } ] } \ No newline at end of file diff --git a/packages/llama/.vscode/tasks.json b/packages/llama/.vscode/tasks.json index 44163830..8e72d0d8 100644 --- a/packages/llama/.vscode/tasks.json +++ b/packages/llama/.vscode/tasks.json @@ -51,8 +51,8 @@ }, { "type": "npm", - "label": "Web Server", - "script": "serve", + "label": "test-serve", + "script": "test-serve", "presentation": { "group": "group-build" } @@ -62,7 +62,8 @@ "dependsOn": [ "build-types-watch", "build-ts-watch", - "build-cpp-watch" + "build-cpp-watch", + "test-serve" ], "group": { "kind": "build", diff --git a/packages/llama/esbuild.mjs b/packages/llama/esbuild.mjs index a19e9b1c..9daafefd 100644 --- a/packages/llama/esbuild.mjs +++ b/packages/llama/esbuild.mjs @@ -1,9 +1,9 @@ -import { nodeTpl, browserTpl, neutralTpl } from "@hpcc-js/esbuild-plugins"; +import { browserTpl, neutralTpl, nodeTpl } from "@hpcc-js/esbuild-plugins"; // config --- await neutralTpl("src/index.ts", "dist/index"); - await Promise.all([ - browserTpl("spec/index-browser.ts", "dist-test/index.browser"), - nodeTpl("spec/index-node.ts", "dist-test/index.node"), + browserTpl("spec/index-browser.ts", "dist-test/index.browser", undefined, undefined, undefined, ["@hpcc-js/wasm-llama"]), + nodeTpl("spec/index-node.ts", "dist-test/index.node", undefined, undefined, undefined, ["@hpcc-js/wasm-llama"]), ]); + diff --git a/packages/llama/package.json b/packages/llama/package.json index ba29c9fe..7b6f3771 100644 --- a/packages/llama/package.json +++ b/packages/llama/package.json @@ -30,6 +30,7 @@ "lint-skypack": "npx -y @skypack/package-check", "lint-eslint": "eslint src/**/*.ts spec/*.ts", "lint": "run-p lint-eslint", + "test-serve": "jasmine-browser-runner serve", "test-browser": "jasmine-browser-runner runSpecs", "test-node": "jasmine", "test": "run-s test-node test-browser", diff --git a/packages/llama/spec/support/jasmine-browser.mjs b/packages/llama/spec/support/jasmine-browser.mjs index 6ad6dafe..d92a3b0d 100644 --- a/packages/llama/spec/support/jasmine-browser.mjs +++ b/packages/llama/spec/support/jasmine-browser.mjs @@ -1,27 +1,35 @@ +import pkg from "../../package.json" with {type: "json"}; + export default { - srcDir: "src", - srcFiles: [ - "**/*.ts" - ], - specDir: "dist-test", - specFiles: [ - "index.browser.js" - ], - env: { - stopSpecOnExpectationFailure: false, - stopOnSpecFailure: false, - random: false - }, + srcDir: "src", + srcFiles: [ + "*.ts" + ], + specDir: "dist-test", + specFiles: [ + "*.browser.js" + ], + esmFilenameExtension: ".js", + importMap: { + imports: { + [pkg.name]: "dist/index.js" + } + }, + env: { + stopSpecOnExpectationFailure: false, + stopOnSpecFailure: false, + random: false + }, - // For security, listen only to localhost. You can also specify a different - // hostname or IP address, or remove the property or set it to "*" to listen - // to all network interfaces. - listenAddress: "localhost", + // For security, listen only to localhost. You can also specify a different + // hostname or IP address, or remove the property or set it to "*" to listen + // to all network interfaces. + listenAddress: "localhost", - // The hostname that the browser will use to connect to the server. - hostname: "localhost", + // The hostname that the browser will use to connect to the server. + hostname: "localhost", - browser: { - name: "headlessFirefox" - } + browser: { + name: "headlessFirefox" + } }; diff --git a/packages/llama/spec/support/jasmine.json b/packages/llama/spec/support/jasmine.json index 2098451f..2ac6faaf 100644 --- a/packages/llama/spec/support/jasmine.json +++ b/packages/llama/spec/support/jasmine.json @@ -1,10 +1,10 @@ { - "spec_dir": "dist-test", - "spec_files": [ - "index.node.js" - ], - "env": { - "stopSpecOnExpectationFailure": false, - "random": false - } + "spec_dir": "dist-test", + "spec_files": [ + "index.node.js" + ], + "env": { + "stopSpecOnExpectationFailure": false, + "random": false + } } \ No newline at end of file diff --git a/packages/wasm/.vscode/launch.json b/packages/wasm/.vscode/launch.json new file mode 100644 index 00000000..7e2ffef5 --- /dev/null +++ b/packages/wasm/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "test-browser", + "type": "msedge", + "request": "launch", + "url": "http://localhost:8888", + "webRoot": "${workspaceFolder}", + "outFiles": [ + "${workspaceFolder}/**/*.js", + "${workspaceFolder}/**/*.c", + "!**/node_modules/**" + ], + }, + { + "name": "test-node", + "type": "node", + "request": "launch", + "runtimeArgs": [ + "run-script", + "test-node" + ], + "runtimeExecutable": "npm", + "skipFiles": [ + "/**" + ], + "outFiles": [ + "${workspaceFolder}/**/*.js", + "${workspaceFolder}/**/*.c", + "!**/node_modules/**" + ], + } + ] +} \ No newline at end of file diff --git a/packages/wasm/.vscode/tasks.json b/packages/wasm/.vscode/tasks.json new file mode 100644 index 00000000..8e72d0d8 --- /dev/null +++ b/packages/wasm/.vscode/tasks.json @@ -0,0 +1,74 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "label": "build-types-watch", + "script": "build-types-watch", + "problemMatcher": [ + "$tsc-watch" + ], + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "build-ts-watch", + "script": "build-ts-watch", + "problemMatcher": [ + "$tsc-watch" + ], + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "build-cpp-watch", + "script": "build-cpp-watch", + "options": { + "cwd": "${workspaceFolder}/../.." + }, + "problemMatcher": { + "owner": "cpp", + "fileLocation": [ + "relative", + "${workspaceFolder}" + ], + "pattern": { + "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + }, + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "test-serve", + "script": "test-serve", + "presentation": { + "group": "group-build" + } + }, + { + "label": "build", + "dependsOn": [ + "build-types-watch", + "build-ts-watch", + "build-cpp-watch", + "test-serve" + ], + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} \ No newline at end of file diff --git a/packages/wasm/esbuild.mjs b/packages/wasm/esbuild.mjs index 681d7767..c9be669f 100644 --- a/packages/wasm/esbuild.mjs +++ b/packages/wasm/esbuild.mjs @@ -1,4 +1,4 @@ -import { bothTpl, browserTpl, nodeTpl } from "@hpcc-js/esbuild-plugins"; +import { browserTpl, bothTpl, nodeTpl } from "@hpcc-js/esbuild-plugins"; import { copyFile } from "fs/promises"; import * as path from "path"; @@ -13,8 +13,8 @@ await Promise.all([ await bothTpl("src/index.ts", "dist/index", undefined, "@hpcc-js/wasm", ["./base91.js", "./duckdb.js", "./expat.js", "./graphviz.js", "./zstd.js"]); await Promise.all([ - browserTpl("spec/index-browser.ts", "dist-test/index.browser"), - nodeTpl("spec/index-node.ts", "dist-test/index.node"), + browserTpl("spec/index-browser.ts", "dist-test/index.browser", undefined, undefined, undefined, ["@hpcc-js/wasm"]), + nodeTpl("spec/index-node.ts", "dist-test/index.node", undefined, undefined, undefined, ["@hpcc-js/wasm"]), ]); await Promise.all([ diff --git a/packages/wasm/package.json b/packages/wasm/package.json index a49ed1cb..abd6b2fa 100644 --- a/packages/wasm/package.json +++ b/packages/wasm/package.json @@ -67,6 +67,7 @@ "lint-skypack": "npx -y @skypack/package-check", "lint-eslint": "eslint src/**/*.ts spec/*.ts", "lint": "run-p lint-eslint", + "test-serve": "jasmine-browser-runner serve", "test-browser": "jasmine-browser-runner runSpecs", "test-node": "jasmine", "test": "run-s test-node test-browser", diff --git a/packages/wasm/spec/support/jasmine-browser.mjs b/packages/wasm/spec/support/jasmine-browser.mjs index 6ad6dafe..d92a3b0d 100644 --- a/packages/wasm/spec/support/jasmine-browser.mjs +++ b/packages/wasm/spec/support/jasmine-browser.mjs @@ -1,27 +1,35 @@ +import pkg from "../../package.json" with {type: "json"}; + export default { - srcDir: "src", - srcFiles: [ - "**/*.ts" - ], - specDir: "dist-test", - specFiles: [ - "index.browser.js" - ], - env: { - stopSpecOnExpectationFailure: false, - stopOnSpecFailure: false, - random: false - }, + srcDir: "src", + srcFiles: [ + "*.ts" + ], + specDir: "dist-test", + specFiles: [ + "*.browser.js" + ], + esmFilenameExtension: ".js", + importMap: { + imports: { + [pkg.name]: "dist/index.js" + } + }, + env: { + stopSpecOnExpectationFailure: false, + stopOnSpecFailure: false, + random: false + }, - // For security, listen only to localhost. You can also specify a different - // hostname or IP address, or remove the property or set it to "*" to listen - // to all network interfaces. - listenAddress: "localhost", + // For security, listen only to localhost. You can also specify a different + // hostname or IP address, or remove the property or set it to "*" to listen + // to all network interfaces. + listenAddress: "localhost", - // The hostname that the browser will use to connect to the server. - hostname: "localhost", + // The hostname that the browser will use to connect to the server. + hostname: "localhost", - browser: { - name: "headlessFirefox" - } + browser: { + name: "headlessFirefox" + } }; diff --git a/packages/wasm/spec/support/jasmine.json b/packages/wasm/spec/support/jasmine.json index 2098451f..2ac6faaf 100644 --- a/packages/wasm/spec/support/jasmine.json +++ b/packages/wasm/spec/support/jasmine.json @@ -1,10 +1,10 @@ { - "spec_dir": "dist-test", - "spec_files": [ - "index.node.js" - ], - "env": { - "stopSpecOnExpectationFailure": false, - "random": false - } + "spec_dir": "dist-test", + "spec_files": [ + "index.node.js" + ], + "env": { + "stopSpecOnExpectationFailure": false, + "random": false + } } \ No newline at end of file diff --git a/packages/zstd/.vscode/launch.json b/packages/zstd/.vscode/launch.json new file mode 100644 index 00000000..7e2ffef5 --- /dev/null +++ b/packages/zstd/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "test-browser", + "type": "msedge", + "request": "launch", + "url": "http://localhost:8888", + "webRoot": "${workspaceFolder}", + "outFiles": [ + "${workspaceFolder}/**/*.js", + "${workspaceFolder}/**/*.c", + "!**/node_modules/**" + ], + }, + { + "name": "test-node", + "type": "node", + "request": "launch", + "runtimeArgs": [ + "run-script", + "test-node" + ], + "runtimeExecutable": "npm", + "skipFiles": [ + "/**" + ], + "outFiles": [ + "${workspaceFolder}/**/*.js", + "${workspaceFolder}/**/*.c", + "!**/node_modules/**" + ], + } + ] +} \ No newline at end of file diff --git a/packages/zstd/.vscode/tasks.json b/packages/zstd/.vscode/tasks.json new file mode 100644 index 00000000..8e72d0d8 --- /dev/null +++ b/packages/zstd/.vscode/tasks.json @@ -0,0 +1,74 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "label": "build-types-watch", + "script": "build-types-watch", + "problemMatcher": [ + "$tsc-watch" + ], + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "build-ts-watch", + "script": "build-ts-watch", + "problemMatcher": [ + "$tsc-watch" + ], + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "build-cpp-watch", + "script": "build-cpp-watch", + "options": { + "cwd": "${workspaceFolder}/../.." + }, + "problemMatcher": { + "owner": "cpp", + "fileLocation": [ + "relative", + "${workspaceFolder}" + ], + "pattern": { + "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + }, + "presentation": { + "group": "group-build" + } + }, + { + "type": "npm", + "label": "test-serve", + "script": "test-serve", + "presentation": { + "group": "group-build" + } + }, + { + "label": "build", + "dependsOn": [ + "build-types-watch", + "build-ts-watch", + "build-cpp-watch", + "test-serve" + ], + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} \ No newline at end of file diff --git a/packages/zstd/esbuild.mjs b/packages/zstd/esbuild.mjs index 4d15f622..95d5f6bd 100644 --- a/packages/zstd/esbuild.mjs +++ b/packages/zstd/esbuild.mjs @@ -3,7 +3,7 @@ import { browserTpl, neutralTpl, nodeTpl } from "@hpcc-js/esbuild-plugins"; // config --- await neutralTpl("src/index.ts", "dist/index"); await Promise.all([ - browserTpl("spec/index-browser.ts", "dist-test/index.browser"), - nodeTpl("spec/index-node.ts", "dist-test/index.node"), + browserTpl("spec/index-browser.ts", "dist-test/index.browser", undefined, undefined, undefined, ["@hpcc-js/wasm-zstd"]), + nodeTpl("spec/index-node.ts", "dist-test/index.node", undefined, undefined, undefined, ["@hpcc-js/wasm-zstd"]), ]); diff --git a/packages/zstd/package.json b/packages/zstd/package.json index ad64a6a3..42e20c50 100644 --- a/packages/zstd/package.json +++ b/packages/zstd/package.json @@ -28,6 +28,7 @@ "lint-skypack": "npx -y @skypack/package-check", "lint-eslint": "eslint src/**/*.ts spec/*.ts", "lint": "run-p lint-eslint", + "test-serve": "jasmine-browser-runner serve", "test-browser": "jasmine-browser-runner runSpecs", "test-node": "jasmine", "test": "run-s test-node test-browser", diff --git a/packages/zstd/spec/support/jasmine-browser.mjs b/packages/zstd/spec/support/jasmine-browser.mjs index 6ad6dafe..d92a3b0d 100644 --- a/packages/zstd/spec/support/jasmine-browser.mjs +++ b/packages/zstd/spec/support/jasmine-browser.mjs @@ -1,27 +1,35 @@ +import pkg from "../../package.json" with {type: "json"}; + export default { - srcDir: "src", - srcFiles: [ - "**/*.ts" - ], - specDir: "dist-test", - specFiles: [ - "index.browser.js" - ], - env: { - stopSpecOnExpectationFailure: false, - stopOnSpecFailure: false, - random: false - }, + srcDir: "src", + srcFiles: [ + "*.ts" + ], + specDir: "dist-test", + specFiles: [ + "*.browser.js" + ], + esmFilenameExtension: ".js", + importMap: { + imports: { + [pkg.name]: "dist/index.js" + } + }, + env: { + stopSpecOnExpectationFailure: false, + stopOnSpecFailure: false, + random: false + }, - // For security, listen only to localhost. You can also specify a different - // hostname or IP address, or remove the property or set it to "*" to listen - // to all network interfaces. - listenAddress: "localhost", + // For security, listen only to localhost. You can also specify a different + // hostname or IP address, or remove the property or set it to "*" to listen + // to all network interfaces. + listenAddress: "localhost", - // The hostname that the browser will use to connect to the server. - hostname: "localhost", + // The hostname that the browser will use to connect to the server. + hostname: "localhost", - browser: { - name: "headlessFirefox" - } + browser: { + name: "headlessFirefox" + } }; diff --git a/packages/zstd/spec/support/jasmine.json b/packages/zstd/spec/support/jasmine.json index 2098451f..2ac6faaf 100644 --- a/packages/zstd/spec/support/jasmine.json +++ b/packages/zstd/spec/support/jasmine.json @@ -1,10 +1,10 @@ { - "spec_dir": "dist-test", - "spec_files": [ - "index.node.js" - ], - "env": { - "stopSpecOnExpectationFailure": false, - "random": false - } + "spec_dir": "dist-test", + "spec_files": [ + "index.node.js" + ], + "env": { + "stopSpecOnExpectationFailure": false, + "random": false + } } \ No newline at end of file