Skip to content

Commit

Permalink
chore: revert partial for upstream merge
Browse files Browse the repository at this point in the history
  • Loading branch information
janlent1 committed Jan 23, 2024
1 parent 2958e41 commit c6cfd77
Show file tree
Hide file tree
Showing 8 changed files with 178 additions and 0 deletions.
58 changes: 58 additions & 0 deletions src/WorkerPool.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class PoolWorker {
this.activeJobs = 0;
this.onJobDone = onJobDone;
this.id = workerId;
this.logger = Object.create(null);

workerId += 1;
// Empty or invalid node args would break the child process
Expand Down Expand Up @@ -271,6 +272,63 @@ class PoolWorker {
finalCallback();
break;
}
case 'getLogger': {
const { data: name } = message;
const { data: jobData } = this.jobs[id];
if (!this.logger[name]) {
this.logger[name] = jobData.getLogger(name);
}
finalCallback();
break;
}
case 'emitLoggingWarning': {
const {
data: { message: warningMessage, name },
} = message;
const { data: jobData } = this.jobs[id];
if (!this.logger[name]) {
this.logger[name] = jobData.getLogger(name);
}
this.logger[name].warn(warningMessage);
finalCallback();
break;
}
case 'emitLoggingError': {
const {
data: { message: errorMessage, name },
} = message;
const { data: jobData } = this.jobs[id];
if (!this.logger[name]) {
this.logger[name] = jobData.getLogger(name);
}
this.logger[name].error(errorMessage);
finalCallback();
break;
}
case 'emitLoggingLog': {
const {
data: { message: logMessage, name },
} = message;
const { data: jobData } = this.jobs[id];
if (!this.logger[name]) {
this.logger[name] = jobData.getLogger(name);
}
this.logger[name].info(logMessage);
finalCallback();
break;
}
case 'emitLoggingDebug': {
const {
data: { message: debugMessage, name },
} = message;
const { data: jobData } = this.jobs[id];
if (!this.logger[name]) {
this.logger[name] = jobData.getLogger(name);
}
this.logger[name].debug(debugMessage);
finalCallback();
break;
}
case 'emitWarning': {
const { data } = message;
const { data: jobData } = this.jobs[id];
Expand Down
1 change: 1 addition & 0 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ function pitch() {
resourceQuery: this.resourceQuery,
optionsContext: this.rootContext || this.options.context,
rootContext: this.rootContext,
getLogger: this.getLogger,
},
(err, r) => {
if (r) {
Expand Down
49 changes: 49 additions & 0 deletions src/worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,55 @@ const queue = asyncQueue(({ id, data }, taskCallback) => {
context: {
version: 2,
fs,
getLogger: (name) => {
writeJson({
type: 'getLogger',
id,
data: name,
});
return {
warn: (warningMessage) => {
writeJson({
type: 'emitLoggingWarning',
id,
data: {
message: warningMessage,
name,
},
});
},
log: (logMesssage) => {
writeJson({
type: 'emitLoggingLog',
id,
data: {
message: logMesssage,
name,
},
});
},
debug: (debugMesssage) => {
writeJson({
type: 'emitLoggingDebug',
id,
data: {
message: debugMesssage,
name,
},
});
},
error: (errorMesssage) => {
writeJson({
type: 'emitLoggingError',
id,
data: {
message: errorMesssage,
name,
},
});
},
};
},
loadModule: (request, callback) => {
callbackMap[nextQuestionId] = (error, result) =>
callback(error, ...result);
Expand Down
3 changes: 3 additions & 0 deletions test/less-loader-example/assets/style.less
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
body {
background: red;
}
1 change: 1 addition & 0 deletions test/less-loader-example/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import './assets/style.less';
1 change: 1 addition & 0 deletions test/less-loader-example/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
44 changes: 44 additions & 0 deletions test/less-loader-example/webpack.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
const path = require('path');

const threadLoader = require('../../src'); // eslint-disable-line import/no-extraneous-dependencies

module.exports = (env) => {
const workerPool = {
workers: +env.threads,
poolTimeout: env.watch ? Infinity : 2000,
};
if (+env.threads > 0) {
threadLoader.warmup(workerPool, ['less-loader']);
}
return {
experiments: {
css: true,
},
mode: 'none',
context: __dirname,
devtool: false,
entry: ['./index.js'],
output: {
path: path.resolve('dist'),
filename: 'bundle.js',
},
module: {
rules: [
{
test: /\.less$/,
use: [
env.threads !== 0 && {
loader: path.resolve(__dirname, '../../dist/index.js'),
options: workerPool,
},
'less-loader',
],
type: 'css/auto',
},
],
},
stats: {
children: false,
},
};
};
21 changes: 21 additions & 0 deletions test/webpack.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import webpack from 'webpack';

import sassLoaderConfig from './sass-loader-example/webpack.config';
import tsLoaderConfig from './ts-loader-example/webpack.config';
import lessLoaderConfig from './less-loader-example/webpack.config';

test("Processes sass-loader's @import correctly", (done) => {
const config = sassLoaderConfig({});
Expand Down Expand Up @@ -42,3 +43,23 @@ test('Processes ts-loader correctly', (done) => {
done();
});
}, 30000);

test('Processes less-loader correctly', (done) => {
const config = lessLoaderConfig({});

webpack(config, (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);

0 comments on commit c6cfd77

Please sign in to comment.