From 4e8ab44379ac98ab57f3fce48312947e2aca9608 Mon Sep 17 00:00:00 2001 From: Sam Tolmay Date: Sun, 7 Nov 2021 19:15:51 +0200 Subject: [PATCH] chore: Build @lowdefy/build with swc. --- .pnp.cjs | 303 +----------------- packages/ajv/src/validate.js | 1 + packages/build/.babelrc | 12 - packages/build/.swcrc | 17 + packages/build/.swcrc.test | 16 + .../build/{jest.config.js => jest.config.cjs} | 5 +- packages/build/package.json | 19 +- packages/build/run.js | 6 +- packages/build/src/index.js | 2 +- .../build/src/utils/formatErrorMessage.js | 2 +- .../src/utils/formatErrorMessage.test.js | 8 +- packages/build/webpack.config.js | 52 --- yarn.lock | 11 +- 13 files changed, 60 insertions(+), 394 deletions(-) delete mode 100644 packages/build/.babelrc create mode 100644 packages/build/.swcrc create mode 100644 packages/build/.swcrc.test rename packages/build/{jest.config.js => jest.config.cjs} (76%) delete mode 100644 packages/build/webpack.config.js diff --git a/.pnp.cjs b/.pnp.cjs index a00ef4d46..a1736b64b 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -5097,24 +5097,19 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./packages/build/", "packageDependencies": [ ["@lowdefy/build", "workspace:packages/build"], - ["@babel/cli", "virtual:4a7337632ff6e9ee5a1c45a62a9ff4cc325a9367b21424babda93e269fe01b671e885bc41bdeebafb83c81f2a8eebbf0102043354a4e58905f61c8c3387cda1e#npm:7.15.7"], - ["@babel/core", "npm:7.15.8"], - ["@babel/preset-env", "virtual:4a7337632ff6e9ee5a1c45a62a9ff4cc325a9367b21424babda93e269fe01b671e885bc41bdeebafb83c81f2a8eebbf0102043354a4e58905f61c8c3387cda1e#npm:7.15.8"], ["@lowdefy/ajv", "workspace:packages/ajv"], ["@lowdefy/helpers", "workspace:packages/helpers"], ["@lowdefy/node-utils", "workspace:packages/nodeUtils"], ["@lowdefy/nunjucks", "workspace:packages/nunjucks"], + ["@swc/cli", "virtual:09ba37edd9db25b7821b7d2b2d2055c41a6ed7b7590f4f31cb08f11ca472be4a006b49e750b63bf1615697d9f5fdbcda49d5e649e3491c0b6490a9dc0dbedfa2#npm:0.1.51"], + ["@swc/core", "npm:1.2.107"], + ["@swc/jest", "virtual:09ba37edd9db25b7821b7d2b2d2055c41a6ed7b7590f4f31cb08f11ca472be4a006b49e750b63bf1615697d9f5fdbcda49d5e649e3491c0b6490a9dc0dbedfa2#npm:0.2.5"], ["ajv", "npm:8.6.3"], ["axios", "npm:0.23.0"], - ["babel-jest", "virtual:4a7337632ff6e9ee5a1c45a62a9ff4cc325a9367b21424babda93e269fe01b671e885bc41bdeebafb83c81f2a8eebbf0102043354a4e58905f61c8c3387cda1e#npm:27.3.1"], - ["babel-loader", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:8.2.3"], - ["clean-webpack-plugin", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:4.0.0"], ["jest", "npm:26.6.3"], ["js-yaml", "npm:4.1.0"], ["json5", "npm:2.2.0"], - ["uuid", "npm:8.3.2"], - ["webpack", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:5.59.1"], - ["webpack-cli", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:4.9.1"] + ["uuid", "npm:8.3.2"] ], "linkType": "SOFT", }] @@ -7652,23 +7647,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "webpack" ], "linkType": "HARD", - }], - ["virtual:f61659e16761153229eb3d01d892c6f214fa48292b86e60839bb14000edc99c0661f0b8da587c570ce9d40138a05d1f625721b2af6f5a7b506e766579f91c61c#npm:1.1.0", { - "packageLocation": "./.yarn/__virtual__/@webpack-cli-configtest-virtual-115f4475aa/0/cache/@webpack-cli-configtest-npm-1.1.0-2b6b2ef3d7-69e7816b5b.zip/node_modules/@webpack-cli/configtest/", - "packageDependencies": [ - ["@webpack-cli/configtest", "virtual:f61659e16761153229eb3d01d892c6f214fa48292b86e60839bb14000edc99c0661f0b8da587c570ce9d40138a05d1f625721b2af6f5a7b506e766579f91c61c#npm:1.1.0"], - ["@types/webpack", null], - ["@types/webpack-cli", null], - ["webpack", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:5.59.1"], - ["webpack-cli", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:4.9.1"] - ], - "packagePeers": [ - "@types/webpack-cli", - "@types/webpack", - "webpack-cli", - "webpack" - ], - "linkType": "HARD", }] ]], ["@webpack-cli/info", [ @@ -7846,20 +7824,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "webpack-cli" ], "linkType": "HARD", - }], - ["virtual:f61659e16761153229eb3d01d892c6f214fa48292b86e60839bb14000edc99c0661f0b8da587c570ce9d40138a05d1f625721b2af6f5a7b506e766579f91c61c#npm:1.4.0", { - "packageLocation": "./.yarn/__virtual__/@webpack-cli-info-virtual-daef79f5d0/0/cache/@webpack-cli-info-npm-1.4.0-4a26ccee64-6385b1e2c5.zip/node_modules/@webpack-cli/info/", - "packageDependencies": [ - ["@webpack-cli/info", "virtual:f61659e16761153229eb3d01d892c6f214fa48292b86e60839bb14000edc99c0661f0b8da587c570ce9d40138a05d1f625721b2af6f5a7b506e766579f91c61c#npm:1.4.0"], - ["@types/webpack-cli", null], - ["envinfo", "npm:7.8.1"], - ["webpack-cli", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:4.9.1"] - ], - "packagePeers": [ - "@types/webpack-cli", - "webpack-cli" - ], - "linkType": "HARD", }] ]], ["@webpack-cli/serve", [ @@ -8044,20 +8008,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "webpack-dev-server" ], "linkType": "HARD", - }], - ["virtual:f61659e16761153229eb3d01d892c6f214fa48292b86e60839bb14000edc99c0661f0b8da587c570ce9d40138a05d1f625721b2af6f5a7b506e766579f91c61c#npm:1.6.0", { - "packageLocation": "./.yarn/__virtual__/@webpack-cli-serve-virtual-01b397e8a8/0/cache/@webpack-cli-serve-npm-1.6.0-c7b35aa4ef-050a930b63.zip/node_modules/@webpack-cli/serve/", - "packageDependencies": [ - ["@webpack-cli/serve", "virtual:f61659e16761153229eb3d01d892c6f214fa48292b86e60839bb14000edc99c0661f0b8da587c570ce9d40138a05d1f625721b2af6f5a7b506e766579f91c61c#npm:1.6.0"], - ["@types/webpack-cli", null], - ["webpack-cli", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:4.9.1"], - ["webpack-dev-server", "virtual:01b397e8a87ed2f1b6ad1d9de2acdd5b0d8f4753ab6077d415e8f49db9bac60264788a6d663cd497c0303d862f957065f167bf4f74b00a83a1ef63cee34f55e7#npm:4.3.1"] - ], - "packagePeers": [ - "@types/webpack-cli", - "webpack-cli" - ], - "linkType": "HARD", }] ]], ["@wry/equality", [ @@ -9790,27 +9740,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ], "linkType": "HARD", }], - ["virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:8.2.3", { - "packageLocation": "./.yarn/__virtual__/babel-loader-virtual-bd994c8db4/0/cache/babel-loader-npm-8.2.3-855681b984-78e1e1a919.zip/node_modules/babel-loader/", - "packageDependencies": [ - ["babel-loader", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:8.2.3"], - ["@babel/core", "npm:7.15.8"], - ["@types/babel__core", null], - ["@types/webpack", null], - ["find-cache-dir", "npm:3.3.2"], - ["loader-utils", "npm:1.4.0"], - ["make-dir", "npm:3.1.0"], - ["schema-utils", "npm:2.7.1"], - ["webpack", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:5.59.1"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core", - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }], ["virtual:beb4c218366cad8c4da96fe997fe88a6dbf8be39fc0c58c2a268588a03658c7ba45d103fbf636a724af6c876096f657636ab125613932f8c99e093546f94adb0#npm:8.2.3", { "packageLocation": "./.yarn/__virtual__/babel-loader-virtual-68aa694715/0/cache/babel-loader-npm-8.2.3-855681b984-78e1e1a919.zip/node_modules/babel-loader/", "packageDependencies": [ @@ -11154,20 +11083,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ], "linkType": "HARD", }], - ["virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:4.0.0", { - "packageLocation": "./.yarn/__virtual__/clean-webpack-plugin-virtual-d2c93eb5f7/0/cache/clean-webpack-plugin-npm-4.0.0-5a85c794c8-199425e87b.zip/node_modules/clean-webpack-plugin/", - "packageDependencies": [ - ["clean-webpack-plugin", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:4.0.0"], - ["@types/webpack", null], - ["del", "npm:4.1.1"], - ["webpack", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:5.59.1"] - ], - "packagePeers": [ - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }], ["virtual:beb4c218366cad8c4da96fe997fe88a6dbf8be39fc0c58c2a268588a03658c7ba45d103fbf636a724af6c876096f657636ab125613932f8c99e093546f94adb0#npm:4.0.0", { "packageLocation": "./.yarn/__virtual__/clean-webpack-plugin-virtual-d298e94e62/0/cache/clean-webpack-plugin-npm-4.0.0-5a85c794c8-199425e87b.zip/node_modules/clean-webpack-plugin/", "packageDependencies": [ @@ -27376,31 +27291,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ], "linkType": "HARD", }], - ["virtual:752586cd691d4793487b5aeb258446cce00a74b39266a489fbafc54dceec187819d09d290d9bf34b898d21e2871cc52cf901cd445fc6366bf8308d1f72d1612b#npm:5.2.4", { - "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-f589ecbf38/0/cache/terser-webpack-plugin-npm-5.2.4-cc8bd7c055-ddbcdd28f9.zip/node_modules/terser-webpack-plugin/", - "packageDependencies": [ - ["terser-webpack-plugin", "virtual:752586cd691d4793487b5aeb258446cce00a74b39266a489fbafc54dceec187819d09d290d9bf34b898d21e2871cc52cf901cd445fc6366bf8308d1f72d1612b#npm:5.2.4"], - ["@swc/core", null], - ["@types/webpack", null], - ["esbuild", null], - ["jest-worker", "npm:27.3.1"], - ["p-limit", "npm:3.1.0"], - ["schema-utils", "npm:3.1.1"], - ["serialize-javascript", "npm:6.0.0"], - ["source-map", "npm:0.6.1"], - ["terser", "npm:5.9.0"], - ["uglify-js", null], - ["webpack", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:5.59.1"] - ], - "packagePeers": [ - "@swc/core", - "@types/webpack", - "esbuild", - "uglify-js", - "webpack" - ], - "linkType": "HARD", - }], ["virtual:8e20391c816f349d06d47fe055774de709b52483e90322fab4b691a3bf054cc353e6665f3bb7738ea83dc9fe8669ec1c8db056e9339461b83ca8374b25b4c3b8#npm:5.2.4", { "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-74d8bce8d7/0/cache/terser-webpack-plugin-npm-5.2.4-cc8bd7c055-ddbcdd28f9.zip/node_modules/terser-webpack-plugin/", "packageDependencies": [ @@ -27676,31 +27566,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ], "linkType": "HARD", }], - ["virtual:fc38e3ea27c5ca415cae485347af0757f878e1232e6be827e863e6dd3128723f4a5659bc62182bf5d4c748aacb5ebee78b7cf4d7859eba9fd7569a675ae4a59f#npm:5.2.4", { - "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-4d2faae927/0/cache/terser-webpack-plugin-npm-5.2.4-cc8bd7c055-ddbcdd28f9.zip/node_modules/terser-webpack-plugin/", - "packageDependencies": [ - ["terser-webpack-plugin", "virtual:fc38e3ea27c5ca415cae485347af0757f878e1232e6be827e863e6dd3128723f4a5659bc62182bf5d4c748aacb5ebee78b7cf4d7859eba9fd7569a675ae4a59f#npm:5.2.4"], - ["@swc/core", null], - ["@types/webpack", null], - ["esbuild", null], - ["jest-worker", "npm:27.3.1"], - ["p-limit", "npm:3.1.0"], - ["schema-utils", "npm:3.1.1"], - ["serialize-javascript", "npm:6.0.0"], - ["source-map", "npm:0.6.1"], - ["terser", "npm:5.9.0"], - ["uglify-js", null], - ["webpack", "virtual:a6a5411f859cf248901dc7341837fd54f7e7cc20961819aa7a49105271868b4e1c23f21e53dcd033618978f860a0bbdce11321b1006bc192ec14cfa35c9a9a68#npm:5.60.0"] - ], - "packagePeers": [ - "@swc/core", - "@types/webpack", - "esbuild", - "uglify-js", - "webpack" - ], - "linkType": "HARD", - }], ["virtual:ff7dd4933e0aec384cd97caae1562c0fa533c08c8b5e437b9eabe8a77fb26b0214d54dd5af99747631610ae2e2bcbe33711254b651cc1ac0aa3865234aea5187#npm:5.2.4", { "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-77b200190e/0/cache/terser-webpack-plugin-npm-5.2.4-cc8bd7c055-ddbcdd28f9.zip/node_modules/terser-webpack-plugin/", "packageDependencies": [ @@ -29303,76 +29168,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ], "linkType": "HARD", }], - ["virtual:a6a5411f859cf248901dc7341837fd54f7e7cc20961819aa7a49105271868b4e1c23f21e53dcd033618978f860a0bbdce11321b1006bc192ec14cfa35c9a9a68#npm:5.60.0", { - "packageLocation": "./.yarn/__virtual__/webpack-virtual-fc38e3ea27/0/cache/webpack-npm-5.60.0-4763b66d54-3c37424516.zip/node_modules/webpack/", - "packageDependencies": [ - ["webpack", "virtual:a6a5411f859cf248901dc7341837fd54f7e7cc20961819aa7a49105271868b4e1c23f21e53dcd033618978f860a0bbdce11321b1006bc192ec14cfa35c9a9a68#npm:5.60.0"], - ["@types/eslint-scope", "npm:3.7.1"], - ["@types/estree", "npm:0.0.50"], - ["@webassemblyjs/ast", "npm:1.11.1"], - ["@webassemblyjs/wasm-edit", "npm:1.11.1"], - ["@webassemblyjs/wasm-parser", "npm:1.11.1"], - ["acorn", "npm:8.5.0"], - ["acorn-import-assertions", "virtual:9818f4f50b045b2f60c18dc9051b9b993576e6642378749de22e42a7db04003eedff5c24d2867c0bdaea3cacabad7c723345f7e8908978006c8ab1db3b19c9c4#npm:1.8.0"], - ["browserslist", "npm:4.17.5"], - ["chrome-trace-event", "npm:1.0.3"], - ["enhanced-resolve", "npm:5.8.3"], - ["es-module-lexer", "npm:0.9.3"], - ["eslint-scope", "npm:5.1.1"], - ["events", "npm:3.3.0"], - ["glob-to-regexp", "npm:0.4.1"], - ["graceful-fs", "npm:4.2.8"], - ["json-parse-better-errors", "npm:1.0.2"], - ["loader-runner", "npm:4.2.0"], - ["mime-types", "npm:2.1.33"], - ["neo-async", "npm:2.6.2"], - ["schema-utils", "npm:3.1.1"], - ["tapable", "npm:2.2.1"], - ["terser-webpack-plugin", "virtual:fc38e3ea27c5ca415cae485347af0757f878e1232e6be827e863e6dd3128723f4a5659bc62182bf5d4c748aacb5ebee78b7cf4d7859eba9fd7569a675ae4a59f#npm:5.2.4"], - ["watchpack", "npm:2.2.0"], - ["webpack-cli", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:4.9.1"], - ["webpack-sources", "npm:3.2.1"] - ], - "packagePeers": [ - "webpack-cli" - ], - "linkType": "HARD", - }], - ["virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:5.59.1", { - "packageLocation": "./.yarn/__virtual__/webpack-virtual-752586cd69/0/cache/webpack-npm-5.59.1-4496e1cd5a-6a24f71b64.zip/node_modules/webpack/", - "packageDependencies": [ - ["webpack", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:5.59.1"], - ["@types/eslint-scope", "npm:3.7.1"], - ["@types/estree", "npm:0.0.50"], - ["@webassemblyjs/ast", "npm:1.11.1"], - ["@webassemblyjs/wasm-edit", "npm:1.11.1"], - ["@webassemblyjs/wasm-parser", "npm:1.11.1"], - ["acorn", "npm:8.5.0"], - ["acorn-import-assertions", "virtual:9818f4f50b045b2f60c18dc9051b9b993576e6642378749de22e42a7db04003eedff5c24d2867c0bdaea3cacabad7c723345f7e8908978006c8ab1db3b19c9c4#npm:1.8.0"], - ["browserslist", "npm:4.17.5"], - ["chrome-trace-event", "npm:1.0.3"], - ["enhanced-resolve", "npm:5.8.3"], - ["es-module-lexer", "npm:0.9.3"], - ["eslint-scope", "npm:5.1.1"], - ["events", "npm:3.3.0"], - ["glob-to-regexp", "npm:0.4.1"], - ["graceful-fs", "npm:4.2.8"], - ["json-parse-better-errors", "npm:1.0.2"], - ["loader-runner", "npm:4.2.0"], - ["mime-types", "npm:2.1.33"], - ["neo-async", "npm:2.6.2"], - ["schema-utils", "npm:3.1.1"], - ["tapable", "npm:2.2.1"], - ["terser-webpack-plugin", "virtual:752586cd691d4793487b5aeb258446cce00a74b39266a489fbafc54dceec187819d09d290d9bf34b898d21e2871cc52cf901cd445fc6366bf8308d1f72d1612b#npm:5.2.4"], - ["watchpack", "npm:2.2.0"], - ["webpack-cli", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:4.9.1"], - ["webpack-sources", "npm:3.2.1"] - ], - "packagePeers": [ - "webpack-cli" - ], - "linkType": "HARD", - }], ["virtual:beb4c218366cad8c4da96fe997fe88a6dbf8be39fc0c58c2a268588a03658c7ba45d103fbf636a724af6c876096f657636ab125613932f8c99e093546f94adb0#npm:5.59.1", { "packageLocation": "./.yarn/__virtual__/webpack-virtual-8e20391c81/0/cache/webpack-npm-5.59.1-4496e1cd5a-6a24f71b64.zip/node_modules/webpack/", "packageDependencies": [ @@ -29858,39 +29653,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ], "linkType": "HARD", }], - ["virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:4.9.1", { - "packageLocation": "./.yarn/__virtual__/webpack-cli-virtual-f61659e167/0/cache/webpack-cli-npm-4.9.1-1b8a5f360f-2aff0349c1.zip/node_modules/webpack-cli/", - "packageDependencies": [ - ["webpack-cli", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:4.9.1"], - ["@discoveryjs/json-ext", "npm:0.5.5"], - ["@types/webpack", null], - ["@webpack-cli/configtest", "virtual:f61659e16761153229eb3d01d892c6f214fa48292b86e60839bb14000edc99c0661f0b8da587c570ce9d40138a05d1f625721b2af6f5a7b506e766579f91c61c#npm:1.1.0"], - ["@webpack-cli/generators", null], - ["@webpack-cli/info", "virtual:f61659e16761153229eb3d01d892c6f214fa48292b86e60839bb14000edc99c0661f0b8da587c570ce9d40138a05d1f625721b2af6f5a7b506e766579f91c61c#npm:1.4.0"], - ["@webpack-cli/migrate", null], - ["@webpack-cli/serve", "virtual:f61659e16761153229eb3d01d892c6f214fa48292b86e60839bb14000edc99c0661f0b8da587c570ce9d40138a05d1f625721b2af6f5a7b506e766579f91c61c#npm:1.6.0"], - ["colorette", "npm:2.0.16"], - ["commander", "npm:7.2.0"], - ["execa", "npm:5.1.1"], - ["fastest-levenshtein", "npm:1.0.12"], - ["import-local", "npm:3.0.3"], - ["interpret", "npm:2.2.0"], - ["rechoir", "npm:0.7.1"], - ["webpack", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:5.59.1"], - ["webpack-bundle-analyzer", null], - ["webpack-dev-server", null], - ["webpack-merge", "npm:5.8.0"] - ], - "packagePeers": [ - "@types/webpack", - "@webpack-cli/generators", - "@webpack-cli/migrate", - "webpack-bundle-analyzer", - "webpack-dev-server", - "webpack" - ], - "linkType": "HARD", - }], ["virtual:beb4c218366cad8c4da96fe997fe88a6dbf8be39fc0c58c2a268588a03658c7ba45d103fbf636a724af6c876096f657636ab125613932f8c99e093546f94adb0#npm:4.9.1", { "packageLocation": "./.yarn/__virtual__/webpack-cli-virtual-6622662bd9/0/cache/webpack-cli-npm-4.9.1-1b8a5f360f-2aff0349c1.zip/node_modules/webpack-cli/", "packageDependencies": [ @@ -30173,24 +29935,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ], "linkType": "HARD", }], - ["virtual:a6a5411f859cf248901dc7341837fd54f7e7cc20961819aa7a49105271868b4e1c23f21e53dcd033618978f860a0bbdce11321b1006bc192ec14cfa35c9a9a68#npm:5.2.1", { - "packageLocation": "./.yarn/__virtual__/webpack-dev-middleware-virtual-fa9d9cff58/0/cache/webpack-dev-middleware-npm-5.2.1-8933c4e1b9-06f3ef14ec.zip/node_modules/webpack-dev-middleware/", - "packageDependencies": [ - ["webpack-dev-middleware", "virtual:a6a5411f859cf248901dc7341837fd54f7e7cc20961819aa7a49105271868b4e1c23f21e53dcd033618978f860a0bbdce11321b1006bc192ec14cfa35c9a9a68#npm:5.2.1"], - ["@types/webpack", null], - ["colorette", "npm:2.0.16"], - ["memfs", "npm:3.3.0"], - ["mime-types", "npm:2.1.33"], - ["range-parser", "npm:1.2.1"], - ["schema-utils", "npm:3.1.1"], - ["webpack", "virtual:a6a5411f859cf248901dc7341837fd54f7e7cc20961819aa7a49105271868b4e1c23f21e53dcd033618978f860a0bbdce11321b1006bc192ec14cfa35c9a9a68#npm:5.60.0"] - ], - "packagePeers": [ - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }], ["virtual:abb6f5c0a095b2507f8d0618cd613d3eb7a8bc70363335580281a04a8e95612a285725720578c0d74fde43e9e6248622360a2515b7315dd703c674c8b54003b2#npm:5.2.1", { "packageLocation": "./.yarn/__virtual__/webpack-dev-middleware-virtual-026f622704/0/cache/webpack-dev-middleware-npm-5.2.1-8933c4e1b9-06f3ef14ec.zip/node_modules/webpack-dev-middleware/", "packageDependencies": [ @@ -30308,45 +30052,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ], "linkType": "SOFT", }], - ["virtual:01b397e8a87ed2f1b6ad1d9de2acdd5b0d8f4753ab6077d415e8f49db9bac60264788a6d663cd497c0303d862f957065f167bf4f74b00a83a1ef63cee34f55e7#npm:4.3.1", { - "packageLocation": "./.yarn/__virtual__/webpack-dev-server-virtual-a6a5411f85/0/cache/webpack-dev-server-npm-4.3.1-de78d1d07b-ce9d054c3d.zip/node_modules/webpack-dev-server/", - "packageDependencies": [ - ["webpack-dev-server", "virtual:01b397e8a87ed2f1b6ad1d9de2acdd5b0d8f4753ab6077d415e8f49db9bac60264788a6d663cd497c0303d862f957065f167bf4f74b00a83a1ef63cee34f55e7#npm:4.3.1"], - ["@types/webpack", null], - ["ansi-html-community", "npm:0.0.8"], - ["bonjour", "npm:3.5.0"], - ["chokidar", "npm:3.5.2"], - ["colorette", "npm:2.0.16"], - ["compression", "npm:1.7.4"], - ["connect-history-api-fallback", "npm:1.6.0"], - ["del", "npm:6.0.0"], - ["express", "npm:4.17.1"], - ["graceful-fs", "npm:4.2.8"], - ["html-entities", "npm:2.3.2"], - ["http-proxy-middleware", "npm:2.0.1"], - ["internal-ip", "npm:6.2.0"], - ["ipaddr.js", "npm:2.0.1"], - ["open", "npm:8.4.0"], - ["p-retry", "npm:4.6.1"], - ["portfinder", "npm:1.0.28"], - ["schema-utils", "npm:3.1.1"], - ["selfsigned", "npm:1.10.11"], - ["serve-index", "npm:1.9.1"], - ["sockjs", "npm:0.3.21"], - ["spdy", "npm:4.0.2"], - ["strip-ansi", "npm:7.0.1"], - ["url", "npm:0.11.0"], - ["webpack", "virtual:a6a5411f859cf248901dc7341837fd54f7e7cc20961819aa7a49105271868b4e1c23f21e53dcd033618978f860a0bbdce11321b1006bc192ec14cfa35c9a9a68#npm:5.60.0"], - ["webpack-cli", "virtual:aad21d373d6721af7549b2798c35c4ea25d83c122770abeaa0a4343ba20d55700fd9e3c5fa3289a7e6f591d09e8790df14d525c719ca4729b178b8644cca082a#npm:4.9.1"], - ["webpack-dev-middleware", "virtual:a6a5411f859cf248901dc7341837fd54f7e7cc20961819aa7a49105271868b4e1c23f21e53dcd033618978f860a0bbdce11321b1006bc192ec14cfa35c9a9a68#npm:5.2.1"], - ["ws", "virtual:b30fd45457df8ed11590876f4601801bd714eb708fa44f880f24d76994d5679cda39cba7301b70088917018b6644cc15ad1da3043191614f79c653b1476a5753#npm:8.2.3"] - ], - "packagePeers": [ - "@types/webpack", - "webpack-cli" - ], - "linkType": "HARD", - }], ["virtual:03b50f68d1bc1bcd2c564b153fc8a0f3f73d722ae5563251798eadf289b054849d6a1f3602228c617458c9af844d044431bcc00bb48aa96b362ca9055e633014#npm:4.3.1", { "packageLocation": "./.yarn/__virtual__/webpack-dev-server-virtual-e18ce32d82/0/cache/webpack-dev-server-npm-4.3.1-de78d1d07b-ce9d054c3d.zip/node_modules/webpack-dev-server/", "packageDependencies": [ diff --git a/packages/ajv/src/validate.js b/packages/ajv/src/validate.js index 65c3b674a..f77764f0f 100644 --- a/packages/ajv/src/validate.js +++ b/packages/ajv/src/validate.js @@ -20,6 +20,7 @@ import createErrorMessage from './createErrorMessage'; const ajv = new Ajv({ allErrors: true, + strict: false, }); ajvErrors(ajv); diff --git a/packages/build/.babelrc b/packages/build/.babelrc deleted file mode 100644 index 41046be8a..000000000 --- a/packages/build/.babelrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "presets": [ - [ - "@babel/preset-env", - { - "targets": { - "node": "12" - } - } - ] - ] -} diff --git a/packages/build/.swcrc b/packages/build/.swcrc new file mode 100644 index 000000000..4d1c4bb37 --- /dev/null +++ b/packages/build/.swcrc @@ -0,0 +1,17 @@ +{ + "exclude": [".*.test.js$"], + "jsc": { + "parser": { + "syntax": "ecmascript", + "jsx": true, + "dynamicImport": true + }, + "target": "es2020", + "keepClassNames": true + }, + "module": { + "type": "es6", + "noInterop": true, + "ignoreDynamic": true + } +} diff --git a/packages/build/.swcrc.test b/packages/build/.swcrc.test new file mode 100644 index 000000000..3b9bc6c0a --- /dev/null +++ b/packages/build/.swcrc.test @@ -0,0 +1,16 @@ +{ + "jsc": { + "parser": { + "syntax": "ecmascript", + "jsx": true, + "dynamicImport": true + }, + "target": "es2020", + "keepClassNames": true + }, + "module": { + "type": "es6", + "noInterop": true, + "ignoreDynamic": true + } +} diff --git a/packages/build/jest.config.js b/packages/build/jest.config.cjs similarity index 76% rename from packages/build/jest.config.js rename to packages/build/jest.config.cjs index 893ebb515..c984e2f77 100644 --- a/packages/build/jest.config.js +++ b/packages/build/jest.config.cjs @@ -3,9 +3,12 @@ module.exports = { collectCoverage: true, collectCoverageFrom: ['src/**/*.js'], coverageDirectory: 'coverage', - coveragePathIgnorePatterns: ['/dist/', '/src/test'], + coveragePathIgnorePatterns: ['/dist/', '/src/test', '/src/index.js'], coverageReporters: [['lcov', { projectRoot: '../..' }], 'text', 'clover'], errorOnDeprecated: true, testEnvironment: 'node', testPathIgnorePatterns: ['/dist/', '/src/test'], + transform: { + '^.+\\.(t|j)sx?$': ['@swc/jest', { configFile: '.swcrc.test' }], + }, }; diff --git a/packages/build/package.json b/packages/build/package.json index c8e9c71ea..e443b1d64 100644 --- a/packages/build/package.json +++ b/packages/build/package.json @@ -29,12 +29,12 @@ "dist/*" ], "scripts": { - "build": "yarn webpack", + "build": "yarn clean && yarn swc", "clean": "rm -rf dist", "prepare": "yarn build", "start": "node run.js", - "test": "jest --coverage", - "webpack": "webpack --config webpack.config.js" + "swc": "swc src --out-dir dist", + "test": "jest --coverage" }, "dependencies": { "@lowdefy/ajv": "3.22.0", @@ -48,15 +48,10 @@ "uuid": "8.3.2" }, "devDependencies": { - "@babel/cli": "7.15.7", - "@babel/core": "7.15.8", - "@babel/preset-env": "7.15.8", - "babel-jest": "27.3.1", - "babel-loader": "8.2.3", - "clean-webpack-plugin": "4.0.0", - "jest": "26.6.3", - "webpack": "5.59.1", - "webpack-cli": "4.9.1" + "@swc/cli": "0.1.51", + "@swc/core": "1.2.107", + "@swc/jest": "0.2.5", + "jest": "26.6.3" }, "publishConfig": { "access": "public" diff --git a/packages/build/run.js b/packages/build/run.js index 31192a339..2b04bb3c2 100644 --- a/packages/build/run.js +++ b/packages/build/run.js @@ -14,12 +14,10 @@ limitations under the License. */ -const path = require('path'); +import path from 'path'; +import build from './dist/index.js'; async function run() { - // Doing weird things for webpack module federation. - // Webpack needs an async import to resolve shared dependencies. - const build = await require('./dist/index.js').default.then((module) => module.default); await build({ // blocksServerUrl: 'https://blocks-cdn.lowdefy.com/v3.16.0', logger: console, diff --git a/packages/build/src/index.js b/packages/build/src/index.js index f69c99dfb..4ace0c21c 100644 --- a/packages/build/src/index.js +++ b/packages/build/src/index.js @@ -14,6 +14,6 @@ limitations under the License. */ -const build = import('./build'); +import build from './build'; export default build; diff --git a/packages/build/src/utils/formatErrorMessage.js b/packages/build/src/utils/formatErrorMessage.js index cd87fdc2f..39fd8ccb2 100644 --- a/packages/build/src/utils/formatErrorMessage.js +++ b/packages/build/src/utils/formatErrorMessage.js @@ -18,7 +18,7 @@ function formatErrorMessage(error) { return ` --------- Schema Error --------- message: ${error.message} -path: ${error.dataPath} +path: ${error.instancePath} --------------------------------`; } diff --git a/packages/build/src/utils/formatErrorMessage.test.js b/packages/build/src/utils/formatErrorMessage.test.js index 9cdee92d2..4d8aa7101 100644 --- a/packages/build/src/utils/formatErrorMessage.test.js +++ b/packages/build/src/utils/formatErrorMessage.test.js @@ -22,7 +22,7 @@ test('global incorrect type', async () => { }; const error = { keyword: 'type', - dataPath: '/global', + instancePath: '/global', schemaPath: '#/properties/global/type', params: { type: 'object', @@ -54,7 +54,7 @@ test('page id missing', async () => { }; const error = { keyword: 'required', - dataPath: '/pages/0', + instancePath: '/pages/0', schemaPath: '#/required', params: { missingProperty: 'id', @@ -89,7 +89,7 @@ test('page type missing', async () => { }; const error = { keyword: 'required', - dataPath: '/pages/0', + instancePath: '/pages/0', schemaPath: '#/required', params: { missingProperty: 'type', @@ -119,7 +119,7 @@ test('id incorrect type', async () => { }; const error = { keyword: 'type', - dataPath: '/pages/0/id', + instancePath: '/pages/0/id', schemaPath: '#/properties/id/type', params: { type: 'string', diff --git a/packages/build/webpack.config.js b/packages/build/webpack.config.js deleted file mode 100644 index 9370beb6b..000000000 --- a/packages/build/webpack.config.js +++ /dev/null @@ -1,52 +0,0 @@ -const path = require('path'); -const { ModuleFederationPlugin } = require('webpack').container; -const { CleanWebpackPlugin } = require('clean-webpack-plugin'); -const { dependencies } = require('./package.json'); - -module.exports = { - entry: './src/index.js', - output: { - filename: 'index.js', - path: path.resolve(__dirname, 'dist'), - libraryTarget: 'commonjs', - }, - mode: 'production', - target: 'node', - node: false, - externals: ['fs', 'path', 'fsevents'], - module: { - rules: [ - { - test: /\.m?js$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - options: { - presets: [ - [ - '@babel/preset-env', - { - targets: { - node: '12', - }, - }, - ], - ], - }, - }, - }, - ], - }, - plugins: [ - new CleanWebpackPlugin(), - new ModuleFederationPlugin({ - name: 'build', - library: { type: 'commonjs' }, - filename: 'remoteEntry.js', - exposes: { - './build': './src/build.js', - }, - shared: dependencies, - }), - ], -}; diff --git a/yarn.lock b/yarn.lock index cec49066c..281fc6089 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3492,24 +3492,19 @@ __metadata: version: 0.0.0-use.local resolution: "@lowdefy/build@workspace:packages/build" dependencies: - "@babel/cli": 7.15.7 - "@babel/core": 7.15.8 - "@babel/preset-env": 7.15.8 "@lowdefy/ajv": 3.22.0 "@lowdefy/helpers": 3.22.0 "@lowdefy/node-utils": 3.22.0 "@lowdefy/nunjucks": 3.22.0 + "@swc/cli": 0.1.51 + "@swc/core": 1.2.107 + "@swc/jest": 0.2.5 ajv: 8.6.3 axios: 0.23.0 - babel-jest: 27.3.1 - babel-loader: 8.2.3 - clean-webpack-plugin: 4.0.0 jest: 26.6.3 js-yaml: 4.1.0 json5: 2.2.0 uuid: 8.3.2 - webpack: 5.59.1 - webpack-cli: 4.9.1 languageName: unknown linkType: soft