From b4418ae2a1d176bff064d0570df66b3c9b6438d9 Mon Sep 17 00:00:00 2001 From: Benjamin Hodgson Date: Wed, 8 Dec 2021 11:27:24 -0500 Subject: [PATCH 1/2] fix: getLogger not defined in child loader --- package-lock.json | 322 ++++++++++++++++++++- package.json | 1 + src/worker.js | 19 ++ test/less-loader-example/style.less | 3 + test/less-loader-example/webpack.config.js | 30 ++ test/webpack.test.js | 19 ++ 6 files changed, 393 insertions(+), 1 deletion(-) create mode 100644 test/less-loader-example/style.less create mode 100644 test/less-loader-example/webpack.config.js diff --git a/package-lock.json b/package-lock.json index a707ffe..24583c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,8 @@ "requires": true, "packages": { "": { - "version": "3.0.3", + "name": "thread-loader", + "version": "3.0.4", "license": "MIT", "dependencies": { "json-parse-better-errors": "^1.0.2", @@ -32,6 +33,7 @@ "eslint-plugin-import": "^2.22.1", "husky": "^4.3.0", "jest": "^26.6.1", + "less-loader": "^10.2.0", "lint-staged": "^10.5.0", "lodash": "^4.17.20", "memfs": "^3.2.0", @@ -5190,6 +5192,16 @@ "safe-buffer": "~5.1.1" } }, + "node_modules/copy-anything": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", + "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", + "dev": true, + "peer": true, + "dependencies": { + "is-what": "^3.12.0" + } + }, "node_modules/copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -6070,6 +6082,20 @@ "node": ">=8.6" } }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -8400,6 +8426,20 @@ "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -9067,6 +9107,13 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "peer": true + }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -11472,6 +11519,71 @@ "node": ">=8" } }, + "node_modules/less": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", + "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", + "dev": true, + "peer": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", + "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/less/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true, + "peer": true + }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -12412,6 +12524,20 @@ "node": ">=0.10.0" } }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/mime-db": { "version": "1.47.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", @@ -12635,6 +12761,36 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "node_modules/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -13278,6 +13434,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -13776,6 +13942,14 @@ "node": ">= 6" } }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -14875,6 +15049,14 @@ } } }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", @@ -21337,6 +21519,16 @@ "safe-buffer": "~5.1.1" } }, + "copy-anything": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", + "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", + "dev": true, + "peer": true, + "requires": { + "is-what": "^3.12.0" + } + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -21996,6 +22188,17 @@ "ansi-colors": "^4.1.1" } }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "prr": "~1.0.1" + } + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -23791,6 +23994,14 @@ "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true, + "peer": true + }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -24260,6 +24471,13 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "peer": true + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -26075,6 +26293,51 @@ "package-json": "^6.3.0" } }, + "less": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", + "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", + "dev": true, + "peer": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "parse-node-version": "^1.0.1", + "source-map": "~0.6.0", + "tslib": "^2.3.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "peer": true + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true, + "peer": true + } + } + }, + "less-loader": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", + "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", + "dev": true, + "requires": { + "klona": "^2.0.4" + } + }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -26783,6 +27046,14 @@ } } }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "peer": true + }, "mime-db": { "version": "1.47.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", @@ -26951,6 +27222,32 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -27428,6 +27725,13 @@ "lines-and-columns": "^1.1.6" } }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "peer": true + }, "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -27782,6 +28086,14 @@ "sisteransi": "^1.0.5" } }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true, + "optional": true, + "peer": true + }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -28609,6 +28921,14 @@ "neo-async": "^2.6.2" } }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true, + "peer": true + }, "saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", diff --git a/package.json b/package.json index e54d5d7..7a67819 100644 --- a/package.json +++ b/package.json @@ -64,6 +64,7 @@ "eslint-plugin-import": "^2.22.1", "husky": "^4.3.0", "jest": "^26.6.1", + "less-loader": "^10.2.0", "lint-staged": "^10.5.0", "lodash": "^4.17.20", "memfs": "^3.2.0", diff --git a/src/worker.js b/src/worker.js index 61fe044..21c6930 100644 --- a/src/worker.js +++ b/src/worker.js @@ -212,6 +212,25 @@ const queue = asyncQueue(({ id, data }, taskCallback) => { return options; }, + getLogger: (name) => { + return { + error(message) { + console.error(`${name}: ${message}`); + }, + + warn(message) { + console.warn(`${name}: ${message}`); + }, + + log(message) { + console.log(`${name}: ${message}`); + }, + + debug(message) { + console.debug(`${name}: ${message}`); + }, + }; + }, emitWarning: (warning) => { writeJson({ type: 'emitWarning', diff --git a/test/less-loader-example/style.less b/test/less-loader-example/style.less new file mode 100644 index 0000000..67ce83e --- /dev/null +++ b/test/less-loader-example/style.less @@ -0,0 +1,3 @@ +body { + background: red; +} diff --git a/test/less-loader-example/webpack.config.js b/test/less-loader-example/webpack.config.js new file mode 100644 index 0000000..b2fc281 --- /dev/null +++ b/test/less-loader-example/webpack.config.js @@ -0,0 +1,30 @@ +const path = require('path'); + +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); // eslint-disable-line import/no-extraneous-dependencies + +module.exports = { + mode: 'none', + context: __dirname, + entry: ['./style.less'], + output: { + path: path.resolve('dist'), + }, + module: { + rules: [ + { + test: /\.less$/, + use: [ + MiniCssExtractPlugin.loader, + path.resolve(__dirname, '../../dist/index.js'), + 'css-loader', + 'less-loader', + ], + }, + ], + }, + plugins: [ + new MiniCssExtractPlugin({ + filename: 'style.css', + }), + ], +}; diff --git a/test/webpack.test.js b/test/webpack.test.js index ae58fb0..8f03666 100644 --- a/test/webpack.test.js +++ b/test/webpack.test.js @@ -1,6 +1,7 @@ import webpack from 'webpack'; import sassLoaderConfig from './sass-loader-example/webpack.config'; +import lessLoaderConfig from './less-loader-example/webpack.config'; test("Processes sass-loader's @import correctly", (done) => { const config = sassLoaderConfig({}); @@ -21,3 +22,21 @@ test("Processes sass-loader's @import correctly", (done) => { done(); }); }, 30000); + +test('Works with less-loader', (done) => { + webpack(lessLoaderConfig, (err, stats) => { + if (err) { + // eslint-disable-next-line no-console + console.error(err); + } + + expect(err).toBe(null); + + if (stats.hasErrors()) { + // eslint-disable-next-line no-console + console.error(stats.toJson().errors); + } + expect(stats.hasErrors()).toBe(false); + done(); + }); +}, 30000); From ce90da52ec897d2abe7fd495728ebeb3b449213e Mon Sep 17 00:00:00 2001 From: Benjamin Hodgson Date: Thu, 16 Dec 2021 15:12:58 -0500 Subject: [PATCH 2/2] fix: plumb log messages back through to parent logger --- src/WorkerPool.js | 15 ++++++++++++++ src/index.js | 2 ++ src/worker.js | 20 +++++++++++++++---- .../assets/color_palette.scss | 2 +- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/WorkerPool.js b/src/WorkerPool.js index ba4bd72..eeb8508 100644 --- a/src/WorkerPool.js +++ b/src/WorkerPool.js @@ -285,6 +285,21 @@ class PoolWorker { finalCallback(); break; } + case 'getLogger': { + // initialise logger by name in jobData + const { data } = message; + const { data: jobData } = this.jobs[id]; + if (!Object.hasOwnProperty.call(jobData.loggers, data.name)) { + jobData.loggers[data.name] = jobData.getLogger(data.name); + } + break; + } + case 'logger': { + const { data } = message; + const { data: jobData } = this.jobs[id]; + jobData.loggers[data.name][data.severity](data.message); + break; + } default: { console.error(`Unexpected worker message ${type} in WorkerPool.`); finalCallback(); diff --git a/src/index.js b/src/index.js index ad6966c..015e91f 100644 --- a/src/index.js +++ b/src/index.js @@ -25,6 +25,8 @@ function pitch() { sourceMap: this.sourceMap, emitError: this.emitError, emitWarning: this.emitWarning, + getLogger: this.getLogger, + loggers: {}, loadModule: this.loadModule, resolve: this.resolve, getResolve: this.getResolve, diff --git a/src/worker.js b/src/worker.js index 21c6930..b50b31b 100644 --- a/src/worker.js +++ b/src/worker.js @@ -213,21 +213,33 @@ const queue = asyncQueue(({ id, data }, taskCallback) => { return options; }, getLogger: (name) => { + function writeLoggerJson(severity, message) { + writeJson({ + type: 'logger', + id, + data: { severity, name, message }, + }); + } + writeJson({ + type: 'getLogger', + id, + data: { name }, + }); return { error(message) { - console.error(`${name}: ${message}`); + writeLoggerJson('error', message); }, warn(message) { - console.warn(`${name}: ${message}`); + writeLoggerJson('warn', message); }, log(message) { - console.log(`${name}: ${message}`); + writeLoggerJson('log', message); }, debug(message) { - console.debug(`${name}: ${message}`); + writeLoggerJson('debug', message); }, }; }, diff --git a/test/sass-loader-example/assets/color_palette.scss b/test/sass-loader-example/assets/color_palette.scss index f84acf0..a31eaea 100644 --- a/test/sass-loader-example/assets/color_palette.scss +++ b/test/sass-loader-example/assets/color_palette.scss @@ -1 +1 @@ -$white: #FFFFFF; +$white: #ffffff;