Skip to content

Commit 82aad4f

Browse files
authored
feat: pure ESM package (#23)
1 parent 88b0ec7 commit 82aad4f

65 files changed

Lines changed: 872 additions & 2263 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

package.json

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"name": "@rspack/dev-middleware",
33
"version": "7.4.5",
4+
"type": "module",
45
"description": "A development middleware for Rspack",
56
"keywords": [
67
"rspack",
@@ -32,8 +33,7 @@
3233
"fix": "pnpm run fix:prettier",
3334
"clean": "del-cli dist types",
3435
"build:types": "tsc --declaration --emitDeclarationOnly --outDir types && prettier \"types/**/*.ts\" --write",
35-
"build:code": "babel src -d dist --copy-files",
36-
"build": "npm-run-all -p \"build:**\"",
36+
"build": "rslib --syntax es2023 && pnpm run build:types",
3737
"test:watch": "rstest -w",
3838
"test": "rstest",
3939
"prepare": "pnpm run build"
@@ -45,12 +45,10 @@
4545
"range-parser": "^1.2.1"
4646
},
4747
"devDependencies": {
48-
"@babel/cli": "^7.16.7",
49-
"@babel/core": "^7.16.7",
50-
"@babel/preset-env": "^7.16.7",
5148
"@fastify/express": "^4.0.2",
5249
"@hapi/hapi": "^21.3.7",
5350
"@hono/node-server": "^1.12.0",
51+
"@rslib/core": "^0.20.0",
5452
"@rspack/core": "2.0.0-beta.5",
5553
"@rstest/core": "0.9.2",
5654
"@types/connect": "^3.4.35",

pnpm-lock.yaml

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

rstest.config.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ export default defineConfig({
44
testEnvironment: "node",
55
globals: true,
66
testTimeout: 20000,
7+
retry: 2,
78
include: ["test/**/*.test.js"],
89
exclude: ["**/node_modules/**", "**/dist/**", "**/__snapshots__/**"],
910
globalSetup: ["./scripts/globalSetup.mjs"],

src/index.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
const { mimes } = require("mrmime");
1+
import { mimes } from "mrmime";
22

3-
const middleware = require("./middleware");
4-
const getFilenameFromUrl = require("./utils/getFilenameFromUrl");
5-
const ready = require("./utils/ready");
6-
const setupHooks = require("./utils/setupHooks");
7-
const setupOutputFileSystem = require("./utils/setupOutputFileSystem");
8-
const setupWriteToDisk = require("./utils/setupWriteToDisk");
3+
import middleware from "./middleware.js";
4+
import getFilenameFromUrl from "./utils/getFilenameFromUrl.js";
5+
import ready from "./utils/ready.js";
6+
import setupHooks from "./utils/setupHooks.js";
7+
import setupOutputFileSystem from "./utils/setupOutputFileSystem.js";
8+
import setupWriteToDisk from "./utils/setupWriteToDisk.js";
99

1010
const noop = () => {};
1111

@@ -670,4 +670,4 @@ function honoWrapper(compiler, options) {
670670

671671
wdm.honoWrapper = honoWrapper;
672672

673-
module.exports = wdm;
673+
export default wdm;

src/middleware.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
const path = require("node:path");
1+
import path from "node:path";
22

3-
const { lookup, mimes } = require("mrmime");
4-
const onFinishedStream = require("on-finished");
3+
import { lookup, mimes } from "mrmime";
4+
import onFinishedStream from "on-finished";
5+
import rangeParser from "range-parser";
56

6-
const {
7+
import {
78
createReadStreamOrReadFileSync,
89
finish,
910
getHeadersSent,
@@ -21,10 +22,13 @@ const {
2122
setResponseHeader,
2223
setState,
2324
setStatusCode,
24-
} = require("./utils/compatibleAPI");
25-
const getFilenameFromUrl = require("./utils/getFilenameFromUrl");
26-
const memorize = require("./utils/memorize");
27-
const ready = require("./utils/ready");
25+
} from "./utils/compatibleAPI.js";
26+
import etag from "./utils/etag.js";
27+
import escapeHtml from "./utils/escapeHtml.js";
28+
import getFilenameFromUrl from "./utils/getFilenameFromUrl.js";
29+
import memorize from "./utils/memorize.js";
30+
import parseTokenList from "./utils/parseTokenList.js";
31+
import ready from "./utils/ready.js";
2832

2933
/** @typedef {import("./index.js").NextFunction} NextFunction */
3034
/** @typedef {import("./index.js").IncomingMessage} IncomingMessage */
@@ -137,15 +141,15 @@ const parseRangeHeaders = memorize(
137141
(value) => {
138142
const [len, rangeHeader] = value.split("|");
139143

140-
return require("range-parser")(Number(len), rangeHeader, {
144+
return rangeParser(Number(len), rangeHeader, {
141145
combine: true,
142146
});
143147
},
144148
);
145149

146-
const getETag = memorize(() => require("./utils/etag"));
147-
const getEscapeHtml = memorize(() => require("./utils/escapeHtml"));
148-
const getParseTokenList = memorize(() => require("./utils/parseTokenList"));
150+
const getETag = memorize(() => etag);
151+
const getEscapeHtml = memorize(() => escapeHtml);
152+
const getParseTokenList = memorize(() => parseTokenList);
149153

150154
const MAX_MAX_AGE = 31536000000;
151155

@@ -910,4 +914,4 @@ function wrapper(context) {
910914
};
911915
}
912916

913-
module.exports = wrapper;
917+
export default wrapper;

src/utils/compatibleAPI.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ function setState(res, name, value) {
303303
(res.locals)[name] = value;
304304
}
305305

306-
module.exports = {
306+
export {
307307
createReadStreamOrReadFileSync,
308308
finish,
309309
getHeadersSent,

src/utils/escapeHtml.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,4 @@ function escapeHtml(string) {
5656
return lastIndex !== index ? html + str.substring(lastIndex, index) : html;
5757
}
5858

59-
module.exports = escapeHtml;
59+
export default escapeHtml;

src/utils/etag.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const crypto = require("node:crypto");
1+
import crypto from "node:crypto";
22

33
/** @typedef {import("fs").Stats} Stats */
44
/** @typedef {import("fs").ReadStream} ReadStream */
@@ -77,4 +77,4 @@ async function etag(entity) {
7777
: statTag(/** @type {import("fs").Stats} */ (entity));
7878
}
7979

80-
module.exports = etag;
80+
export default etag;

src/utils/getFilenameFromUrl.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
const path = require("node:path");
2-
const querystring = require("node:querystring");
1+
import path from "node:path";
2+
import querystring from "node:querystring";
33
// eslint-disable-next-line n/no-deprecated-api
4-
const { parse } = require("node:url");
4+
import { parse } from "node:url";
55

6-
const getPaths = require("./getPaths");
7-
const memorize = require("./memorize");
6+
import getPaths from "./getPaths.js";
7+
import memorize from "./memorize.js";
88

99
/** @typedef {import("../index.js").IncomingMessage} IncomingMessage */
1010
/** @typedef {import("../index.js").ServerResponse} ServerResponse */
@@ -164,4 +164,4 @@ function getFilenameFromUrl(context, url, extra = {}) {
164164
return foundFilename;
165165
}
166166

167-
module.exports = getFilenameFromUrl;
167+
export default getFilenameFromUrl;

src/utils/getPaths.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,4 @@ function getPaths(context) {
5757
return publicPaths;
5858
}
5959

60-
module.exports = getPaths;
60+
export default getPaths;

0 commit comments

Comments
 (0)