change(web): use different output directory for tests

Put production module and test modules in different output subdirectories.
This addresses code review comments.
This commit is contained in:
Eberhard Beilharz 2024-07-22 17:58:33 +02:00
parent 9de6818ed5
commit 6e41faec52
No known key found for this signature in database
GPG key ID: E9140597606020D3
8 changed files with 36 additions and 26 deletions

View file

@ -46,26 +46,27 @@ function do_build() {
# Base product - the main keyboard processor
builder_echo "Bundle base product - the main keyboard processor"
${BUNDLE_CMD} "${KEYMAN_ROOT}/common/web/keyboard-processor/build/obj/src/index.js" \
${BUNDLE_CMD} "${KEYMAN_ROOT}/common/web/keyboard-processor/build/obj/index.js" \
--out "${KEYMAN_ROOT}/common/web/keyboard-processor/build/lib/index.mjs" \
--format esm
# The DOM-oriented keyboard loader
builder_echo "Bundle the DOM-oriented keyboard loader"
${BUNDLE_CMD} "${KEYMAN_ROOT}/common/web/keyboard-processor/build/obj/src/keyboards/loaders/dom-keyboard-loader.js" \
${BUNDLE_CMD} "${KEYMAN_ROOT}/common/web/keyboard-processor/build/obj/keyboards/loaders/dom-keyboard-loader.js" \
--out "${KEYMAN_ROOT}/common/web/keyboard-processor/build/lib/dom-keyboard-loader.mjs" \
--format esm
# The Node-oriented keyboard loader
builder_echo "Bundle the Node-oriented keyboard loader"
${BUNDLE_CMD} "${KEYMAN_ROOT}/common/web/keyboard-processor/build/obj/src/keyboards/loaders/node-keyboard-loader.js" \
${BUNDLE_CMD} "${KEYMAN_ROOT}/common/web/keyboard-processor/build/obj/keyboards/loaders/node-keyboard-loader.js" \
--out "${KEYMAN_ROOT}/common/web/keyboard-processor/build/lib/node-keyboard-loader.mjs" \
--format esm \
--platform node
# Tests
${BUNDLE_CMD} "${KEYMAN_ROOT}/common/web/keyboard-processor/build/obj/tests/dom/cases/domKeyboardLoader.spec.js" \
--out "${KEYMAN_ROOT}/common/web/keyboard-processor/build/lib/ndomKeyboardLoader.spec.mjs" \
builder_echo "Bundle tests"
${BUNDLE_CMD} "${KEYMAN_ROOT}/common/web/keyboard-processor/build/tests/dom/cases/domKeyboardLoader.spec.js" \
--out "${KEYMAN_ROOT}/common/web/keyboard-processor/build/tests/dom/domKeyboardLoader.spec.mjs" \
--format esm
# Declaration bundling.

View file

@ -35,22 +35,22 @@
"@keymanapp/web-utils": "*"
},
"type": "module",
"main": "./build/obj/src/index.js",
"types": "./build/obj/src/index.d.ts",
"main": "./build/obj/index.js",
"types": "./build/obj/index.d.ts",
"exports": {
".": {
"es6-bundling": "./src/index.ts",
"default": "./build/obj/src/index.js"
"default": "./build/obj/index.js"
},
"./node-keyboard-loader": {
"es6-bundling": "./src/keyboards/loaders/node-keyboard-loader.ts",
"types": "./build/obj/src/keyboards/loaders/node-keyboard-loader.d.ts",
"import": "./build/obj/src/keyboards/loaders/node-keyboard-loader.js"
"types": "./build/obj/keyboards/loaders/node-keyboard-loader.d.ts",
"import": "./build/obj/keyboards/loaders/node-keyboard-loader.js"
},
"./dom-keyboard-loader": {
"es6-bundling": "./src/keyboards/loaders/dom-keyboard-loader.ts",
"types": "./build/obj/src/keyboards/loaders/dom-keyboard-loader.d.ts",
"import": "./build/obj/src/keyboards/loaders/dom-keyboard-loader.js"
"types": "./build/obj/keyboards/loaders/dom-keyboard-loader.d.ts",
"import": "./build/obj/keyboards/loaders/dom-keyboard-loader.js"
},
"./lib": {
"types": "./build/lib/index.d.ts",
@ -64,6 +64,6 @@
"types": "./build/lib/dom-keyboard-loader.d.ts",
"import": "./build/lib/dom-keyboard-loader.mjs"
},
"./obj/*.js": "./build/obj/src/*.js"
"./obj/*.js": "./build/obj/*.js"
}
}

View file

@ -2,8 +2,8 @@
"extends": "../../../../tsconfig.kmw-main-base.json",
"compilerOptions": {
"baseUrl": "../../../",
"outDir": "../../../build/obj/src/keyboards/loaders/",
"tsBuildInfoFile": "../../../build/obj/src/keyboards/loaders/tsconfig.dom.tsbuildinfo",
"outDir": "../../../build/obj/keyboards/loaders/",
"tsBuildInfoFile": "../../../build/obj/keyboards/loaders/tsconfig.dom.tsbuildinfo",
"rootDir": "."
},
"references": [

View file

@ -3,8 +3,8 @@
"compilerOptions": {
"types": [ "node" ],
"baseUrl": "../../../",
"outDir": "../../../build/obj/src/keyboards/loaders/",
"tsBuildInfoFile": "../../../build/obj/src/keyboards/loaders/tsconfig.node.tsbuildinfo",
"outDir": "../../../build/obj/keyboards/loaders/",
"tsBuildInfoFile": "../../../build/obj/keyboards/loaders/tsconfig.node.tsbuildinfo",
"rootDir": "."
},
"references": [

View file

@ -21,7 +21,7 @@ export default {
concurrency: 10,
nodeResolve: true,
files: [
'build/lib/**/*.spec.mjs'
'build/tests/dom/**/*.spec.mjs'
],
middleware: [
// Rewrites short-hand paths for test resources, making them fully relative to the repo root.

View file

@ -0,0 +1,11 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"baseUrl": "../",
"outDir": "../build/tests/",
"tsBuildInfoFile": "../build/tests/tsconfig.tsbuildinfo",
"rootDir": "./"
},
"include": [ "./dom/**/*.ts"],
"exclude": []
}

View file

@ -4,11 +4,12 @@
"baseUrl": "./",
"outDir": "build/obj/",
"tsBuildInfoFile": "build/obj/tsconfig.all.tsbuildinfo",
"rootDir": "."
"rootDir": "./src/"
},
"references": [
{ "path": "./src/keyboards/loaders/tsconfig.dom.json" },
{ "path": "./src/keyboards/loaders/tsconfig.node.json" }
{ "path": "./src/keyboards/loaders/tsconfig.node.json" },
{ "path": "./tests/tsconfig.json" },
],
// Actual main-body compilation is in tsconfig.json. This config is just a wrapper
// to trigger all three components at once.

View file

@ -4,8 +4,8 @@
"compilerOptions": {
"baseUrl": "./",
"outDir": "build/obj/",
"tsBuildInfoFile": "build/obj/src/tsconfig.tsbuildinfo",
"rootDir": "."
"tsBuildInfoFile": "build/obj/tsconfig.tsbuildinfo",
"rootDir": "./src/"
},
"references": [
{ "path": "../types" },
@ -13,9 +13,6 @@
{ "path": "../keyman-version/" },
{ "path": "../utils/" }
],
"include": [
"./src/**/*.ts",
"./tests/dom/**/*.ts",
],
"include": [ "./src/**/*.ts"],
"exclude": ["./src/keyboards/loaders/**/*.ts"]
}