From 7a86a71436125df9483307c19ddddbeccb0fb091 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 2 Aug 2021 09:40:52 -0700 Subject: [PATCH 01/11] Avoid creating new node processes by leveraging processAsync --- README.md | 2 -- package-lock.json | 1 - src/__tests__/transformer.test.cjs | 10 +++++----- src/__tests__/transformer.test.js | 10 +++++----- src/preprocess.js | 21 --------------------- src/transformer.cjs | 20 ++++++-------------- 6 files changed, 16 insertions(+), 48 deletions(-) delete mode 100644 src/preprocess.js diff --git a/README.md b/README.md index 19a6f4c..f354266 100644 --- a/README.md +++ b/README.md @@ -163,8 +163,6 @@ Create a `svelte.config.js` file and configure it, see `preprocess` (default: false): Pass in `true` if you are using Svelte preprocessors. They are loaded from `svelte.config.js` or `svelte.config.cjs`. -`showConsoleLog` (default: false): If you'd like to see console.logs of the preprocessors then pass in `true`. Otherwise these will be surpressed, because the compiler could complain about unexpected tokens. - `debug` (default: false): If you'd like to see the output of the compiled code then pass in `true`. `compilerOptions` (default: {}): Use this to pass in diff --git a/package-lock.json b/package-lock.json index 17bcd47..57fc305 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "svelte-jester", "version": "1.7.0", "license": "MIT", "devDependencies": { diff --git a/src/__tests__/transformer.test.cjs b/src/__tests__/transformer.test.cjs index 32952c4..d747837 100644 --- a/src/__tests__/transformer.test.cjs +++ b/src/__tests__/transformer.test.cjs @@ -3,11 +3,11 @@ const path = require('path') const transformer = require('../transformer') const sharedTests = require('./fixtures/shared/commonTransformerTests').default -const runTransformer = (filename, options) => { - const process = transformer.createTransformer(options).process +const runTransformer = async (filename, options) => { + const processAsync = transformer.createTransformer(options).processAsync const path = require.resolve(`./fixtures/${filename}.svelte`) const source = fs.readFileSync(path).toString() - const result = process(source, path) + const result = await processAsync(source, path) expect(result.code).toBeDefined() expect(result.code).toContain('SvelteComponent') expect(result.map).toBeDefined() @@ -15,8 +15,8 @@ const runTransformer = (filename, options) => { } describe('CJS transformer', () => { - it('should search for "svelte.config.cjs" as well as "svelte.config.js"', () => { - const results = runTransformer('BasicComp', { preprocess: true, rootMode: 'upward' }) + it('should search for "svelte.config.cjs" as well as "svelte.config.js"', async () => { + const results = await runTransformer('BasicComp', { preprocess: true, rootMode: 'upward' }) // this is a little brittle, but it demonstrates that the replacements in // "svelte.config.cjs" are working expect(results).toContain('text("Bye ");') diff --git a/src/__tests__/transformer.test.js b/src/__tests__/transformer.test.js index b968115..e0f3e0d 100644 --- a/src/__tests__/transformer.test.js +++ b/src/__tests__/transformer.test.js @@ -3,11 +3,11 @@ import path from 'path' import transformer from '../transformer' import sharedTests from './fixtures/shared/commonTransformerTests' -const runTransformer = (filename, options) => { - const process = transformer.createTransformer(options).process +const runTransformer = async (filename, options) => { + const processAsync = transformer.createTransformer(options).processAsync const path = require.resolve(`./fixtures/${filename}.svelte`) const source = fs.readFileSync(path).toString() - const result = process(source, path) + const result = await processAsync(source, path) expect(result.code).toBeDefined() expect(result.code).toContain('SvelteComponent') expect(result.map).toBeDefined() @@ -15,9 +15,9 @@ const runTransformer = (filename, options) => { } describe('ESM transformer', () => { - it('should transform with config in ESM format', () => { + it('should transform with config in ESM format', async () => { const svelteKitConfig = path.resolve(__dirname, './fixtures/sveltekit.config.js') - const results = runTransformer('BasicComp', { preprocess: svelteKitConfig }) + const results = await runTransformer('BasicComp', { preprocess: svelteKitConfig }) // this is a little brittle, but it demonstrates that the replacements in // "sveltekit.config.js" are working expect(results).toContain('text("Bye ");') diff --git a/src/preprocess.js b/src/preprocess.js deleted file mode 100644 index 3449650..0000000 --- a/src/preprocess.js +++ /dev/null @@ -1,21 +0,0 @@ -import { preprocess } from 'svelte/compiler' -import { pathToFileURL } from 'url' - -const { source, filename, svelteConfig, showConsoleLog } = process.env - -// convert option string to boolean -const showConsoleLogOption = showConsoleLog && showConsoleLog.toLowerCase() === 'true' - -// redefine console.log to hide its output, so it does not interfere with the svelte-compiler -if (!showConsoleLogOption && console) { - console.log = console.error = console.info = console.debug = console.warn = console.trace = console.dir = console.dirxml = console.group = console.groupEnd = console.time = console.timeEnd = console.assert = console.profile = () => {} -} - -import(pathToFileURL(svelteConfig)).then(configImport => { - // ESM or CommonJS - const config = configImport.default ? configImport.default : configImport - - preprocess(source, config.preprocess || {}, { filename }).then((r) => { - process.stdout.write(JSON.stringify(r)) - }) -}).catch(err => process.stderr.write(err)) diff --git a/src/transformer.cjs b/src/transformer.cjs index 928c6a8..7e13227 100644 --- a/src/transformer.cjs +++ b/src/transformer.cjs @@ -4,25 +4,17 @@ const { execSync } = require('child_process') const svelte = require('svelte/compiler') const { getSvelteConfig } = require('./svelteconfig.cjs') -const transformer = (options = {}) => (source, filename) => { +const transformer = (options = {}) => async (source, filename) => { const { preprocess, rootMode, maxBuffer, showConsoleLog } = options if (!preprocess) { return compiler(options, filename, source) } const svelteConfig = getSvelteConfig(rootMode, filename, preprocess) - const preprocessor = require.resolve('./preprocess.js') - - const preprocessResult = execSync( - `node --unhandled-rejections=strict --abort-on-uncaught-exception ${preprocessor}`, - { - env: { ...process.env, source, filename, svelteConfig, showConsoleLog }, - maxBuffer: maxBuffer || 10 * 1024 * 1024 - } - ).toString() - - const parsedPreprocessResult = JSON.parse(preprocessResult) - return compiler(options, filename, parsedPreprocessResult.code, parsedPreprocessResult.map) + + const processed = await svelte.preprocess(source, svelteConfig.preprocess || {}, { filename }) + + return compiler(options, filename, processed.code, processed.map) } const compiler = (options = {}, filename, processedCode, processedMap) => { @@ -51,5 +43,5 @@ const compiler = (options = {}, filename, processedCode, processedMap) => { } exports.createTransformer = (options) => ({ - process: transformer(options) + processAsync: transformer(options) }) From f34ad5290777d14c91df2124d5539f519d340326 Mon Sep 17 00:00:00 2001 From: Sebastian Rothe Date: Tue, 3 Aug 2021 01:08:14 +0200 Subject: [PATCH 02/11] remove minor version from dependencies remove old package --- package-lock.json | 623 ++++++++++++++-------------------------------- package.json | 7 +- 2 files changed, 186 insertions(+), 444 deletions(-) diff --git a/package-lock.json b/package-lock.json index 57fc305..f4772ac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,13 +5,14 @@ "requires": true, "packages": { "": { + "name": "svelte-jester", "version": "1.7.0", "license": "MIT", "devDependencies": { "@sveltejs/adapter-static": "^1.0.0-next.10", "@types/jest": "^26.0.0", - "doctoc": "^2.0.1", - "esbuild": "^0.12.8", + "doctoc": "^2.0.0", + "esbuild": "^0.12.0", "esbuild-jest": "^0.5.0", "jest": "^27.0.0", "jest-circus": "^27.0.0", @@ -20,8 +21,7 @@ "standard-version": "^9.3.0", "svelte": "^3.0.0", "svelte-preprocess": "^4.0.0", - "typescript": "^4.0.0", - "why-is-node-running": "^2.2.0" + "typescript": "^4.0.0" }, "engines": { "node": ">= 14" @@ -82,29 +82,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/generator": { "version": "7.14.9", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.9.tgz", @@ -550,29 +527,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/types": { "version": "7.14.9", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", @@ -629,23 +583,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", @@ -661,12 +598,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -2212,29 +2143,6 @@ "unified": "^6.1.6" } }, - "node_modules/@textlint/markdown-to-ast/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@textlint/markdown-to-ast/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -2470,29 +2378,6 @@ "node": ">= 6.0.0" } }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -4184,12 +4069,20 @@ } }, "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "dependencies": { - "ms": "2.0.0" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/decamelize": { @@ -4850,6 +4743,21 @@ "resolve": "^1.13.1" } }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "node_modules/eslint-module-utils": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", @@ -4897,12 +4805,6 @@ "node": ">=4" } }, - "node_modules/eslint-module-utils/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, "node_modules/eslint-module-utils/node_modules/p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -5003,6 +4905,15 @@ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" } }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", @@ -5062,6 +4973,12 @@ "node": ">=4" } }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "node_modules/eslint-plugin-import/node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -5373,23 +5290,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/eslint/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/eslint/node_modules/globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", @@ -5427,12 +5327,6 @@ "node": ">= 0.8.0" } }, - "node_modules/eslint/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/eslint/node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -5653,6 +5547,15 @@ "node": ">=0.10.0" } }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, "node_modules/expand-brackets/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", @@ -5757,6 +5660,12 @@ "node": ">=0.10.0" } }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "node_modules/expect": { "version": "27.0.6", "resolved": "https://registry.npmjs.org/expect/-/expect-27.0.6.tgz", @@ -6177,6 +6086,20 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -6874,29 +6797,6 @@ "node": ">= 6" } }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -6925,29 +6825,6 @@ "node": ">= 6" } }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -7564,29 +7441,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/istanbul-lib-source-maps/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -11736,9 +11590,9 @@ } }, "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/nan": { @@ -13426,6 +13280,9 @@ "lodash": "^4.0.0", "scss-tokenizer": "^0.2.3", "yargs": "^13.3.2" + }, + "bin": { + "sassgraph": "bin/sassgraph" } }, "node_modules/sass-graph/node_modules/ansi-regex": { @@ -13703,12 +13560,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true - }, "node_modules/signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -13822,6 +13673,15 @@ "node": ">=0.10.0" } }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, "node_modules/snapdragon/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", @@ -13926,6 +13786,12 @@ "node": ">=0.10.0" } }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -14074,6 +13940,11 @@ "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, "engines": { "node": ">=0.10.0" } @@ -14099,12 +13970,6 @@ "node": ">=8" } }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha1-Gsig2Ug4SNFpXkGLbQMaPDzmjjs=", - "dev": true - }, "node_modules/standard": { "version": "16.0.3", "resolved": "https://registry.npmjs.org/standard/-/standard-16.0.3.tgz", @@ -14773,9 +14638,9 @@ } }, "node_modules/tar": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.2.tgz", - "integrity": "sha512-EwKEgqJ7nJoS+s8QfLYVGMDmAsj+StbI2AM/RTHeUSsOw6Z8bwNBRv5z3CY0m7laC5qUAqruLX5AhMuc5deY3Q==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.3.tgz", + "integrity": "sha512-3rUqwucgVZXTeyJyL2jqtUau8/8r54SioM1xj3AmTX3HnWQdj2AydfJ2qYYayPyIIznSplcvU9mhBb7dR2XF3w==", "dev": true, "dependencies": { "chownr": "^2.0.0", @@ -15541,22 +15406,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "node_modules/why-is-node-running": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.0.tgz", - "integrity": "sha512-rxtN9D0lJaYyP92BR5yoyWecK2txBKmBIuS7GRbOPP5bXsT37/hBqcmTrlrt25DBr9p4WJb6c9LuYSJd89vHRQ==", - "dev": true, - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", @@ -15880,23 +15729,6 @@ "json5": "^2.1.2", "semver": "^6.3.0", "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "@babel/generator": { @@ -16225,23 +16057,6 @@ "@babel/types": "^7.14.9", "debug": "^4.1.0", "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "@babel/types": { @@ -16288,15 +16103,6 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, "globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", @@ -16306,12 +16112,6 @@ "type-fest": "^0.8.1" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -17518,23 +17318,6 @@ "structured-source": "^3.0.2", "traverse": "^0.6.6", "unified": "^6.1.6" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "@tootallnate/once": { @@ -17749,23 +17532,6 @@ "dev": true, "requires": { "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "ajv": { @@ -19086,12 +18852,12 @@ "dev": true }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "2.1.2" } }, "decamelize": { @@ -19584,15 +19350,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, "globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", @@ -19618,12 +19375,6 @@ "type-check": "~0.4.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -19701,6 +19452,23 @@ "requires": { "debug": "^2.6.9", "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, "eslint-module-utils": { @@ -19741,12 +19509,6 @@ "path-exists": "^3.0.0" } }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -19819,6 +19581,15 @@ "tsconfig-paths": "^3.9.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "doctrine": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", @@ -19866,6 +19637,12 @@ "path-exists": "^3.0.0" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -20171,6 +19948,15 @@ "to-regex": "^3.0.1" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", @@ -20251,6 +20037,12 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -20582,6 +20374,13 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -21117,23 +20916,6 @@ "@tootallnate/once": "1", "agent-base": "6", "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "http-signature": { @@ -21155,23 +20937,6 @@ "requires": { "agent-base": "6", "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "human-signals": { @@ -21611,21 +21376,6 @@ "source-map": "^0.6.1" }, "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -24817,9 +24567,9 @@ "dev": true }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "nan": { @@ -26366,12 +26116,6 @@ "object-inspect": "^1.9.0" } }, - "siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true - }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -26425,6 +26169,15 @@ "use": "^3.1.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", @@ -26505,6 +26258,12 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -26705,12 +26464,6 @@ } } }, - "stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha1-Gsig2Ug4SNFpXkGLbQMaPDzmjjs=", - "dev": true - }, "standard": { "version": "16.0.3", "resolved": "https://registry.npmjs.org/standard/-/standard-16.0.3.tgz", @@ -27164,9 +26917,9 @@ } }, "tar": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.2.tgz", - "integrity": "sha512-EwKEgqJ7nJoS+s8QfLYVGMDmAsj+StbI2AM/RTHeUSsOw6Z8bwNBRv5z3CY0m7laC5qUAqruLX5AhMuc5deY3Q==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.3.tgz", + "integrity": "sha512-3rUqwucgVZXTeyJyL2jqtUau8/8r54SioM1xj3AmTX3HnWQdj2AydfJ2qYYayPyIIznSplcvU9mhBb7dR2XF3w==", "dev": true, "requires": { "chownr": "^2.0.0", @@ -27791,16 +27544,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "why-is-node-running": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.0.tgz", - "integrity": "sha512-rxtN9D0lJaYyP92BR5yoyWecK2txBKmBIuS7GRbOPP5bXsT37/hBqcmTrlrt25DBr9p4WJb6c9LuYSJd89vHRQ==", - "dev": true, - "requires": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - } - }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", diff --git a/package.json b/package.json index 79bc409..c7095a4 100644 --- a/package.json +++ b/package.json @@ -49,8 +49,8 @@ "devDependencies": { "@sveltejs/adapter-static": "^1.0.0-next.10", "@types/jest": "^26.0.0", - "doctoc": "^2.0.1", - "esbuild": "^0.12.8", + "doctoc": "^2.0.0", + "esbuild": "^0.12.0", "esbuild-jest": "^0.5.0", "jest": "^27.0.0", "jest-circus": "^27.0.0", @@ -59,7 +59,6 @@ "standard-version": "^9.3.0", "svelte": "^3.0.0", "svelte-preprocess": "^4.0.0", - "typescript": "^4.0.0", - "why-is-node-running": "^2.2.0" + "typescript": "^4.0.0" } } From c44abcc3d6ad88fe9118d00975fcc87648366da5 Mon Sep 17 00:00:00 2001 From: Sebastian Rothe Date: Tue, 3 Aug 2021 01:08:29 +0200 Subject: [PATCH 03/11] remove old options --- README.md | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index f354266..ea28281 100644 --- a/README.md +++ b/README.md @@ -150,22 +150,21 @@ Add the following to your Jest config ```json "transform": { - "^.+\\.js$": "babel-jest", "^.+\\.svelte$": ["svelte-jester", { "preprocess": true }] } ``` -Create a `svelte.config.js` file and configure it, see +Create a `svelte.config.js` file and configure it, see [svelte-preprocess](https://github.com/kaisermann/svelte-preprocess) for more information. ## Options -`preprocess` (default: false): Pass in `true` if you are using Svelte preprocessors. +`preprocess` (default: false): Pass in `true` if you are using Svelte preprocessors. They are loaded from `svelte.config.js` or `svelte.config.cjs`. `debug` (default: false): If you'd like to see the output of the compiled code then pass in `true`. -`compilerOptions` (default: {}): Use this to pass in +`compilerOptions` (default: {}): Use this to pass in [Svelte compiler options](https://svelte.dev/docs#svelte_compile). `rootMode` (default: ""): Pass in `upward` to walk up from the transforming file's directory and use the first `svelte.config.js` or `svelte.config.cjs` found, or throw an error if no config file is discovered. This is particularly useful in a monorepo as it allows you to: @@ -177,26 +176,11 @@ The default mode is to load `svelte.config.js` or `svelte.config.cjs` from the c When `upward` is set it will stop at the first config file it finds above the file being transformed, but will walk up the directory structure all the way to the filesystem root if it cannot find any config file. This means that if there is no `svelte.config.js` or `svelte.config.cjs` file in the project above the file being transformed, it is always possible that someone will have a forgotten config file in their home directory which could cause unexpected errors in your builds. -`maxBuffer` (default: 10485760): Sets limit for buffer when `preprocess` is true. It defines the largest amount of data in bytes allowed on stdout or stderr for [child_process.spawnSync](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options). If exceeded, the child process is terminated and any output is truncated. The default value of 10Mb overrides Node's default value of 1Mb. - -```json -"transform": { - "^.+\\.js$": "babel-jest", - "^.+\\.svelte$": ["svelte-jester", { - "preprocess": false, - "debug": false, - "compilerOptions": {}, - "rootMode": "", - "maxBuffer": 15000000 - }] -} -``` - ## Testing Library -This package is required when using Svelte with the [Testing Library](https://testing-library.com/). -If you'd like to avoid including implementation details in your tests, and making them more -maintainble in the long run, then consider checking out +This package is required when using Svelte with the [Testing Library](https://testing-library.com/). +If you'd like to avoid including implementation details in your tests, and making them more +maintainble in the long run, then consider checking out [@testing-library/svelte](https://github.com/testing-library/svelte-testing-library). ## Credits From e9375c37e5938d0197eb8104d9bb1ca979347d87 Mon Sep 17 00:00:00 2001 From: Sebastian Rothe Date: Tue, 3 Aug 2021 01:09:38 +0200 Subject: [PATCH 04/11] rewrite transformer to esm fix loading of config --- src/{transformer.cjs => transformer.js} | 26 ++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) rename src/{transformer.cjs => transformer.js} (58%) diff --git a/src/transformer.cjs b/src/transformer.js similarity index 58% rename from src/transformer.cjs rename to src/transformer.js index 7e13227..5835e49 100644 --- a/src/transformer.cjs +++ b/src/transformer.js @@ -1,18 +1,20 @@ -// const log = require('why-is-node-running') -const { basename } = require('path') -const { execSync } = require('child_process') -const svelte = require('svelte/compiler') -const { getSvelteConfig } = require('./svelteconfig.cjs') +import { basename } from 'path' +import { fileURLToPath, pathToFileURL } from 'url'; +import svelte from 'svelte/compiler' + +import { getSvelteConfig } from './svelteconfig' + +const dynamicImport = async (filename, basepath) => import(pathToFileURL(`${basepath ? basepath + "/" : "" }${filename}`)) const transformer = (options = {}) => async (source, filename) => { - const { preprocess, rootMode, maxBuffer, showConsoleLog } = options + const { preprocess, rootMode } = options if (!preprocess) { return compiler(options, filename, source) } - const svelteConfig = getSvelteConfig(rootMode, filename, preprocess) - - const processed = await svelte.preprocess(source, svelteConfig.preprocess || {}, { filename }) + const svelteConfigPath = getSvelteConfig(rootMode, filename, preprocess); + const svelteConfig = await dynamicImport(svelteConfigPath) + const processed = await svelte.preprocess(source, svelteConfig.default.preprocess || {}, { filename }) return compiler(options, filename, processed.code, processed.map) } @@ -25,7 +27,7 @@ const compiler = (options = {}, filename, processedCode, processedMap) => { css: true, accessors: true, dev: true, - format: 'cjs', + format: 'esm', sourcemap: processedMap, ...compilerOptions }) @@ -42,6 +44,8 @@ const compiler = (options = {}, filename, processedCode, processedMap) => { } } -exports.createTransformer = (options) => ({ +const createTransformer = (options) => ({ processAsync: transformer(options) }) + +export default createTransformer From fc827e40dc9cefee685594ff32ea0f94b966874f Mon Sep 17 00:00:00 2001 From: Sebastian Rothe Date: Tue, 3 Aug 2021 01:10:15 +0200 Subject: [PATCH 05/11] remove unused options esbuild is not needed anymore, since jest supports ESM now --- jest.config.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/jest.config.js b/jest.config.js index d988105..9f50457 100644 --- a/jest.config.js +++ b/jest.config.js @@ -8,15 +8,12 @@ export default { moduleFileExtensions: ['js', 'ts', 'cjs'], testMatch: [ - '**/__tests__/**/*.?(c)[jt]s?(x)', '**/?(*.)+(spec|test).?(c)[tj]s?(x)', - '!**/fixtures/**' ], testRunner: 'jest-circus/runner', transform: { '^.+\\.ts$': 'esbuild-jest', - '^.+\\.js$': 'esbuild-jest' } } From 791a67fc1583766ad1f3ac40be2c5da988ced13a Mon Sep 17 00:00:00 2001 From: Sebastian Rothe Date: Tue, 3 Aug 2021 01:11:16 +0200 Subject: [PATCH 06/11] rewrite tests to ESM --- src/__tests__/transformer.test.js | 93 +++++++++++++++++++++++++++---- 1 file changed, 83 insertions(+), 10 deletions(-) diff --git a/src/__tests__/transformer.test.js b/src/__tests__/transformer.test.js index e0f3e0d..9359a45 100644 --- a/src/__tests__/transformer.test.js +++ b/src/__tests__/transformer.test.js @@ -1,12 +1,20 @@ -import fs from 'fs' -import path from 'path' -import transformer from '../transformer' -import sharedTests from './fixtures/shared/commonTransformerTests' +/** + * @jest-environment jsdom + */ +import { readFileSync } from 'fs' +import { dirname } from 'path' +import { fileURLToPath } from 'url' +import {jest} from '@jest/globals' + +import createTransformer from '../transformer' + +// Node API __dirname is missing in Jest +export const __dirname = dirname(fileURLToPath(import.meta.url)) const runTransformer = async (filename, options) => { - const processAsync = transformer.createTransformer(options).processAsync - const path = require.resolve(`./fixtures/${filename}.svelte`) - const source = fs.readFileSync(path).toString() + const processAsync = createTransformer(options).processAsync + const path = `${__dirname}/fixtures/${filename}.svelte` + const source = readFileSync(path).toString() const result = await processAsync(source, path) expect(result.code).toBeDefined() expect(result.code).toContain('SvelteComponent') @@ -16,12 +24,77 @@ const runTransformer = async (filename, options) => { describe('ESM transformer', () => { it('should transform with config in ESM format', async () => { - const svelteKitConfig = path.resolve(__dirname, './fixtures/sveltekit.config.js') - const results = await runTransformer('BasicComp', { preprocess: svelteKitConfig }) + const svelteKitConfigPath = `${__dirname}/fixtures/sveltekit.config.js` + const results = await runTransformer('BasicComp', { preprocess: svelteKitConfigPath }) // this is a little brittle, but it demonstrates that the replacements in // "sveltekit.config.js" are working expect(results).toContain('text("Bye ");') }) - sharedTests({ runTransformer, path }) + it('should search for "svelte.config.cjs" as well as "svelte.config.js"', async () => { + const results = await runTransformer('BasicComp', { preprocess: true, rootMode: 'upward' }) + // this is a little brittle, but it demonstrates that the replacements in + // "svelte.config.cjs" are working + expect(results).toContain('text("Bye ");') + }) + + it('should transform basic component', async () => { + await runTransformer('BasicComp') + }) + + it('should transform when using sass preprocessor', async () => { + await runTransformer('SassComp', { preprocess: true }) + }) + + it('should transform when using full path to preprocess', async () => { + const preprocessPath = `${__dirname}/../../_svelte.config.cjs` + await runTransformer('SassComp', { preprocess: preprocessPath }) + }) + + it('should search for "svelte.config.cjs" as well as "svelte.config.js"', async () => { + const results = await runTransformer('BasicComp', { preprocess: true, rootMode: 'upward' }) + // this is a little brittle, but it demonstrates that the replacements in + // "svelte.config.cjs" are working + expect(results).toContain('text("Bye ");') + }) + + it('should transform when using typescript preprocessor', async () => { + await runTransformer('TypescriptComp', { preprocess: true }) + }) + + it('should transform basic component and keep styles', async () => { + const code = await runTransformer('BasicComp') + expect(code).toContain('add_css(target)') + expect(code).toContain('.counter.active') + }) + + it('should accept compiler options', async () => { + const code = await runTransformer('BasicComp', { compilerOptions: { css: false } }) + expect(code).not.toContain('add_css(target)') + expect(code).not.toContain('.counter.active') + }) + + it('should output code to console when debug is true', async () => { + console.log = jest.fn() + const code = await runTransformer('BasicComp', { debug: true }) + const esInterop = 'Object.defineProperty(exports, "__esModule", { value: true });' + expect(console.log).toHaveBeenCalledTimes(1) + expect(console.log).toHaveBeenCalledWith(code.replace(esInterop, '')) + }) + + it('should pass, if console.logs are disabled (default) during preprocessing and there is a console.log statement in the svelte config', async () => { + await runTransformer('BasicComp', { preprocess: true, rootMode: 'upward' }) + }) + + it('should pass, if console.logs are disabled during preprocessing and there is a console.log statement in the svelte config', async () => { + await runTransformer('BasicComp', { preprocess: true, rootMode: 'upward', showConsoleLog: false }) + await runTransformer('BasicComp', { preprocess: true, rootMode: 'upward', showConsoleLog: "false" }) + }) + + it('should pass and transform process.env.NODE_ENV variable', async () => { + const code = await runTransformer('BasicComp', { preprocess: true, rootMode: 'upward' }) + + // JEST sets NODE_ENV to test automatically + expect(code).toContain('test') + }) }) From 2e6510544ec6e87638a55a5de570f2e0edf9b691 Mon Sep 17 00:00:00 2001 From: Sebastian Rothe Date: Tue, 3 Aug 2021 01:14:49 +0200 Subject: [PATCH 07/11] export library as ESM --- package.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index c7095a4..7f49f31 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,10 @@ "name": "svelte-jester", "version": "1.7.0", "description": "A Jest transformer for Svelte - compile your components before importing them into tests", - "main": "src/transformer.cjs", + "main": "src/transformer.js", + "exports": { + "import": "./src/transformer.js" + }, "type": "module", "license": "MIT", "author": "Rahim Alwer ", @@ -28,8 +31,7 @@ "test" ], "files": [ - "src/transformer.cjs", - "src/preprocess.js", + "src/transformer.js", "src/svelteconfig.cjs" ], "scripts": { From 69d1632ac45dbfbb17871601b5348ad9fe053060 Mon Sep 17 00:00:00 2001 From: Sebastian Rothe Date: Tue, 3 Aug 2021 01:15:03 +0200 Subject: [PATCH 08/11] remove old CJS tests --- .../fixtures/shared/commonTransformerTests.js | 77 ------------------- src/__tests__/transformer.test.cjs | 26 ------- 2 files changed, 103 deletions(-) delete mode 100644 src/__tests__/fixtures/shared/commonTransformerTests.js delete mode 100644 src/__tests__/transformer.test.cjs diff --git a/src/__tests__/fixtures/shared/commonTransformerTests.js b/src/__tests__/fixtures/shared/commonTransformerTests.js deleted file mode 100644 index baa3b02..0000000 --- a/src/__tests__/fixtures/shared/commonTransformerTests.js +++ /dev/null @@ -1,77 +0,0 @@ -const sharedTests = (dependencies) => { - const { path, runTransformer } = dependencies - - it('should transform basic component', () => { - runTransformer('BasicComp') - }) - - it('should transform when using sass preprocessor', () => { - runTransformer('SassComp', { preprocess: true }) - }) - - it('should transform when using full path to preprocess', () => { - const preprocessPath = path.resolve(__dirname, '../../../../_svelte.config.cjs') - runTransformer('SassComp', { preprocess: preprocessPath }) - }) - - it('should search for "svelte.config.cjs" as well as "svelte.config.js"', () => { - const results = runTransformer('BasicComp', { preprocess: true, rootMode: 'upward' }) - // this is a little brittle, but it demonstrates that the replacements in - // "svelte.config.cjs" are working - expect(results).toContain('text("Bye ");') - }) - - it('should transform when using typescript preprocessor', () => { - runTransformer('TypescriptComp', { preprocess: true }) - }) - - it('should transform basic component and keep styles', () => { - const code = runTransformer('BasicComp') - expect(code).toContain('add_css()') - expect(code).toContain('.counter.active') - }) - - it('should accept compiler options', () => { - const code = runTransformer('BasicComp', { compilerOptions: { css: false } }) - expect(code).not.toContain('add_css()') - expect(code).not.toContain('.counter.active') - }) - - it('should output code to console when debug is true', () => { - global.window.console.log = jest.fn() - const code = runTransformer('BasicComp', { debug: true }) - const esInterop = 'Object.defineProperty(exports, "__esModule", { value: true });' - expect(global.window.console.log).toHaveBeenCalledWith(code.replace(esInterop, '')) - }) - - it('should accept maxBuffer option for preprocess buffer limit', () => { - expect( - () => runTransformer('SassComp', { preprocess: true, maxBuffer: 1 }) - ).toThrow(/^spawnSync .* ENOBUFS$/) - runTransformer('SassComp', { preprocess: true, maxBuffer: 5 * 1024 * 1024 }) - }) - - it('should fail, if console.logs are enabled during preprocessing and there is a console.log statement in the svelte config', () => { - expect( - () => runTransformer('BasicComp', { preprocess: true, rootMode: 'upward', showConsoleLog: true }) - ).toThrow(/^Unexpected token T in JSON at position 0$/) - }) - - it('should pass, if console.logs are disabled (default) during preprocessing and there is a console.log statement in the svelte config', () => { - runTransformer('BasicComp', { preprocess: true, rootMode: 'upward' }) - }) - - it.only('should pass, if console.logs are disabled during preprocessing and there is a console.log statement in the svelte config', () => { - runTransformer('BasicComp', { preprocess: true, rootMode: 'upward', showConsoleLog: false }) - runTransformer('BasicComp', { preprocess: true, rootMode: 'upward', showConsoleLog: "false" }) - }) - - it('should pass and transform process.env.NODE_ENV variable', () => { - const code = runTransformer('BasicComp', { preprocess: true, rootMode: 'upward' }) - - // JEST sets NODE_ENV to test automatically - expect(code).toContain('test') - }) -} - -export default sharedTests diff --git a/src/__tests__/transformer.test.cjs b/src/__tests__/transformer.test.cjs deleted file mode 100644 index d747837..0000000 --- a/src/__tests__/transformer.test.cjs +++ /dev/null @@ -1,26 +0,0 @@ -const fs = require('fs') -const path = require('path') -const transformer = require('../transformer') -const sharedTests = require('./fixtures/shared/commonTransformerTests').default - -const runTransformer = async (filename, options) => { - const processAsync = transformer.createTransformer(options).processAsync - const path = require.resolve(`./fixtures/${filename}.svelte`) - const source = fs.readFileSync(path).toString() - const result = await processAsync(source, path) - expect(result.code).toBeDefined() - expect(result.code).toContain('SvelteComponent') - expect(result.map).toBeDefined() - return result.code -} - -describe('CJS transformer', () => { - it('should search for "svelte.config.cjs" as well as "svelte.config.js"', async () => { - const results = await runTransformer('BasicComp', { preprocess: true, rootMode: 'upward' }) - // this is a little brittle, but it demonstrates that the replacements in - // "svelte.config.cjs" are working - expect(results).toContain('text("Bye ");') - }) - - sharedTests({ runTransformer, path }) -}) From 2b5a7c168b960b6a9df21041344c9885f232608c Mon Sep 17 00:00:00 2001 From: Sebastian Rothe Date: Tue, 3 Aug 2021 01:22:21 +0200 Subject: [PATCH 09/11] add required NODE_OPTIONS for testing --- package-lock.json | 28 ++++++++++++++++++++++++++++ package.json | 3 ++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index f4772ac..f513caf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "devDependencies": { "@sveltejs/adapter-static": "^1.0.0-next.10", "@types/jest": "^26.0.0", + "cross-env": "^7.0.3", "doctoc": "^2.0.0", "esbuild": "^0.12.0", "esbuild-jest": "^0.5.0", @@ -3986,6 +3987,24 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -18785,6 +18804,15 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", diff --git a/package.json b/package.json index 7f49f31..d2a266f 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "scripts": { "toc": "doctoc README.md", "lint": "standard --fix --env jest", - "test": "jest src", + "test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest src", "test:watch": "yarn test --watch", "test:update": "yarn test --updateSnapshot --coverage", "setup": "yarn && yarn validate", @@ -51,6 +51,7 @@ "devDependencies": { "@sveltejs/adapter-static": "^1.0.0-next.10", "@types/jest": "^26.0.0", + "cross-env": "^7.0.3", "doctoc": "^2.0.0", "esbuild": "^0.12.0", "esbuild-jest": "^0.5.0", From 7b11f774a6db8394cbb924648b9ff275a8437311 Mon Sep 17 00:00:00 2001 From: Sebastian Rothe Date: Tue, 3 Aug 2021 01:24:47 +0200 Subject: [PATCH 10/11] format files --- jest.config.js | 4 ++-- src/__tests__/transformer.test.js | 4 ++-- src/transformer.js | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/jest.config.js b/jest.config.js index 9f50457..bad9c69 100644 --- a/jest.config.js +++ b/jest.config.js @@ -8,12 +8,12 @@ export default { moduleFileExtensions: ['js', 'ts', 'cjs'], testMatch: [ - '**/?(*.)+(spec|test).?(c)[tj]s?(x)', + '**/?(*.)+(spec|test).?(c)[tj]s?(x)' ], testRunner: 'jest-circus/runner', transform: { - '^.+\\.ts$': 'esbuild-jest', + '^.+\\.ts$': 'esbuild-jest' } } diff --git a/src/__tests__/transformer.test.js b/src/__tests__/transformer.test.js index 9359a45..1f7f9da 100644 --- a/src/__tests__/transformer.test.js +++ b/src/__tests__/transformer.test.js @@ -4,7 +4,7 @@ import { readFileSync } from 'fs' import { dirname } from 'path' import { fileURLToPath } from 'url' -import {jest} from '@jest/globals' +import { jest } from '@jest/globals' import createTransformer from '../transformer' @@ -88,7 +88,7 @@ describe('ESM transformer', () => { it('should pass, if console.logs are disabled during preprocessing and there is a console.log statement in the svelte config', async () => { await runTransformer('BasicComp', { preprocess: true, rootMode: 'upward', showConsoleLog: false }) - await runTransformer('BasicComp', { preprocess: true, rootMode: 'upward', showConsoleLog: "false" }) + await runTransformer('BasicComp', { preprocess: true, rootMode: 'upward', showConsoleLog: 'false' }) }) it('should pass and transform process.env.NODE_ENV variable', async () => { diff --git a/src/transformer.js b/src/transformer.js index 5835e49..885436c 100644 --- a/src/transformer.js +++ b/src/transformer.js @@ -1,10 +1,10 @@ import { basename } from 'path' -import { fileURLToPath, pathToFileURL } from 'url'; +import { pathToFileURL } from 'url' import svelte from 'svelte/compiler' import { getSvelteConfig } from './svelteconfig' -const dynamicImport = async (filename, basepath) => import(pathToFileURL(`${basepath ? basepath + "/" : "" }${filename}`)) +const dynamicImport = async (filename) => import(pathToFileURL(filename)) const transformer = (options = {}) => async (source, filename) => { const { preprocess, rootMode } = options @@ -12,7 +12,7 @@ const transformer = (options = {}) => async (source, filename) => { return compiler(options, filename, source) } - const svelteConfigPath = getSvelteConfig(rootMode, filename, preprocess); + const svelteConfigPath = getSvelteConfig(rootMode, filename, preprocess) const svelteConfig = await dynamicImport(svelteConfigPath) const processed = await svelte.preprocess(source, svelteConfig.default.preprocess || {}, { filename }) From 014ca2ff3c1d2d657c6e5dea210b6180ea79ce2c Mon Sep 17 00:00:00 2001 From: Sebastian Rothe Date: Tue, 3 Aug 2021 10:22:30 +0200 Subject: [PATCH 11/11] Update src/__tests__/transformer.test.js Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com> --- src/__tests__/transformer.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/__tests__/transformer.test.js b/src/__tests__/transformer.test.js index 1f7f9da..a501b31 100644 --- a/src/__tests__/transformer.test.js +++ b/src/__tests__/transformer.test.js @@ -8,7 +8,7 @@ import { jest } from '@jest/globals' import createTransformer from '../transformer' -// Node API __dirname is missing in Jest +// Node API __dirname is missing in ESM export const __dirname = dirname(fileURLToPath(import.meta.url)) const runTransformer = async (filename, options) => {