Skip to content

Commit 6cec865

Browse files
committed
refactor: removing async/await for simplicity
1 parent 51d3d37 commit 6cec865

File tree

5 files changed

+47
-91
lines changed

5 files changed

+47
-91
lines changed

.babelrc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
],
1717
"plugins": [
1818
[
19-
"fast-async",
2019
"transform-object-rest-spread",
2120
{
2221
"useBuiltIns": true

src/index.js renamed to lib/index.js

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -23,41 +23,42 @@ const getClient = (compiler, options) => {
2323
});
2424
};
2525

26-
const getMiddleware = (devWare, options) => async (context, next) => {
26+
const getMiddleware = (devWare, options) => (context, next) =>
2727
// wait for webpack-dev-middleware to signal that the build is ready
28-
await new Promise((resolve, reject) => {
29-
const { compiler } = options;
28+
Promise.all([
29+
new Promise((resolve, reject) => {
30+
const { compiler } = options;
3031

31-
devWare.waitUntilValid(() => {
32-
resolve(true);
33-
});
34-
35-
for (const comp of [].concat(compiler.compilers || compiler)) {
36-
comp.hooks.failed.tap('KoaWebpack', (error) => {
37-
reject(error);
32+
devWare.waitUntilValid(() => {
33+
resolve(true);
3834
});
39-
}
40-
});
4135

42-
// tell webpack-dev-middleware to handle the request
43-
await new Promise((resolve) => {
44-
devWare(
45-
context.req,
46-
{
47-
end: (content) => {
48-
// eslint-disable-next-line no-param-reassign
49-
context.body = content;
50-
resolve();
36+
for (const comp of [].concat(compiler.compilers || compiler)) {
37+
comp.hooks.failed.tap('KoaWebpack', (error) => {
38+
reject(error);
39+
});
40+
}
41+
}),
42+
43+
// tell webpack-dev-middleware to handle the request
44+
new Promise((resolve) => {
45+
devWare(
46+
context.req,
47+
{
48+
end: (content) => {
49+
// eslint-disable-next-line no-param-reassign
50+
context.body = content;
51+
resolve();
52+
},
53+
setHeader: context.set.bind(context),
54+
locals: context.state,
5155
},
52-
setHeader: context.set.bind(context),
53-
locals: context.state,
54-
},
55-
() => resolve(next())
56-
);
57-
});
58-
};
56+
() => resolve(next())
57+
);
58+
}),
59+
]);
5960

60-
module.exports = async (opts) => {
61+
module.exports = (opts) => {
6162
const options = Object.assign({}, defaults, opts);
6263

6364
validate({ name: 'koa-webpack', schema, target: options });
@@ -85,17 +86,18 @@ module.exports = async (opts) => {
8586
options.devMiddleware.publicPath = publicPath;
8687
}
8788

88-
const client = await getClient(compiler, options);
89-
const devWare = devMiddleware(compiler, options.devMiddleware);
90-
const middleware = getMiddleware(devWare, options);
91-
const close = (callback) => {
92-
const next = client ? () => client.close(callback) : callback;
93-
devWare.close(next);
94-
};
95-
96-
return Object.assign(middleware, {
97-
hotClient: client,
98-
devMiddleware: devWare,
99-
close,
89+
return getClient(compiler, options).then((client) => {
90+
const devWare = devMiddleware(compiler, options.devMiddleware);
91+
const middleware = getMiddleware(devWare, options);
92+
const close = (callback) => {
93+
const next = client ? () => client.close(callback) : callback;
94+
devWare.close(next);
95+
};
96+
97+
return Object.assign(middleware, {
98+
hotClient: client,
99+
devMiddleware: devWare,
100+
close,
101+
});
100102
});
101103
};

package-lock.json

Lines changed: 0 additions & 40 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,34 +7,30 @@
77
"author": "Andrew Powell <[email protected]>",
88
"homepage": "https://github.com/shellscape/koa-webpack",
99
"bugs": "https://github.com/shellscape/koa-webpack/issues",
10-
"main": "dist/index.js",
10+
"main": "lib/index.js",
1111
"engines": {
1212
"node": ">= 6.9.0 < 7.0.0 || >= 8.9.0"
1313
},
1414
"scripts": {
15-
"build": "cross-env NODE_ENV=production babel src -d dist --copy-files",
16-
"clean": "del-cli dist",
1715
"commitlint": "commitlint",
1816
"commitmsg": "commitlint -e $GIT_PARAMS",
1917
"lint": "eslint --cache src test",
2018
"ci:lint:commits": "commitlint --from=${CIRCLE_BRANCH} --to=${CIRCLE_SHA1}",
2119
"lint-staged": "lint-staged",
22-
"prebuild": "npm run clean",
23-
"prepublishOnly": "npm run build",
2420
"release": "standard-version",
2521
"release:ci": "conventional-github-releaser -p angular",
2622
"release:validate": "commitlint --from=$(git describe --tags --abbrev=0) --to=$(git rev-parse HEAD)",
2723
"security": "nsp check",
2824
"test": "jest --detectOpenHandles",
2925
"test:watch": "jest --watch",
30-
"test:coverage": "jest --collectCoverageFrom='src/**/*.js' --coverage --detectOpenHandles",
26+
"test:coverage": "jest --collectCoverageFrom='lib/**/*.js' --coverage --detectOpenHandles",
3127
"ci:lint": "npm run lint && npm run security",
3228
"ci:test": "npm run test -- --runInBand",
3329
"ci:coverage": "npm run test:coverage -- --runInBand",
3430
"defaults": "defaults"
3531
},
3632
"files": [
37-
"dist/",
33+
"lib/",
3834
"LICENSE",
3935
"README.md"
4036
],
@@ -69,7 +65,6 @@
6965
"eslint-config-webpack": "^1.2.5",
7066
"eslint-plugin-import": "^2.12.0",
7167
"eslint-plugin-prettier": "^2.6.0",
72-
"fast-async": "^6.3.7",
7368
"husky": "^0.14.3",
7469
"jest": "^23.1.0",
7570
"killable": "^1.0.0",

test/index.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const compose = require('koa-compose');
77
const request = require('supertest');
88
const webpack = require('webpack');
99

10-
const koaWebpack = require('../src');
10+
const koaWebpack = require('../lib');
1111

1212
const defaults = {
1313
config: {

0 commit comments

Comments
 (0)