Skip to content

Commit 8fc0037

Browse files
chore: update deps & fix fs.Stats constructor is deprecated in Node@22
1 parent 4c48739 commit 8fc0037

26 files changed

+4779
-5750
lines changed

.eslintrc.json

Lines changed: 0 additions & 23 deletions
This file was deleted.

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ permissions:
66
on:
77
push:
88
tags:
9-
- "v*"
9+
- 'v*'
1010

1111
jobs:
1212
release:

.prettierignore

Lines changed: 0 additions & 3 deletions
This file was deleted.

.prettierrc

Lines changed: 0 additions & 6 deletions
This file was deleted.

.vscode/settings.json

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{
2+
// Disable the default formatter, use eslint instead
3+
"prettier.enable": false,
4+
"editor.formatOnSave": false,
5+
6+
// Auto fix
7+
"editor.codeActionsOnSave": {
8+
"source.fixAll.eslint": "explicit",
9+
"source.organizeImports": "never"
10+
},
11+
12+
// Silent the stylistic rules in you IDE, but still auto fix them
13+
"eslint.rules.customizations": [
14+
{ "rule": "style/*", "severity": "off", "fixable": true },
15+
{ "rule": "format/*", "severity": "off", "fixable": true },
16+
{ "rule": "*-indent", "severity": "off", "fixable": true },
17+
{ "rule": "*-spacing", "severity": "off", "fixable": true },
18+
{ "rule": "*-spaces", "severity": "off", "fixable": true },
19+
{ "rule": "*-order", "severity": "off", "fixable": true },
20+
{ "rule": "*-dangle", "severity": "off", "fixable": true },
21+
{ "rule": "*-newline", "severity": "off", "fixable": true },
22+
{ "rule": "*quotes", "severity": "off", "fixable": true },
23+
{ "rule": "*semi", "severity": "off", "fixable": true }
24+
],
25+
26+
// Enable eslint for all supported languages
27+
"eslint.validate": [
28+
"javascript",
29+
"javascriptreact",
30+
"typescript",
31+
"typescriptreact",
32+
"vue",
33+
"html",
34+
"markdown",
35+
"json",
36+
"jsonc",
37+
"yaml",
38+
"toml",
39+
"xml",
40+
"gql",
41+
"graphql",
42+
"astro",
43+
"svelte",
44+
"css",
45+
"less",
46+
"scss",
47+
"pcss",
48+
"postcss"
49+
]
50+
}

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ npm install import-from-string
2727
### ESM
2828

2929
```mjs
30-
import { requireFromString, importFromString } from "import-from-string";
30+
import { importFromString, requireFromString } from "import-from-string";
3131

3232
const cjs = requireFromString("module.exports = 'Hi World!'");
3333
console.log(cjs); // Hi World!
@@ -97,7 +97,6 @@ Default: `false`
9797

9898
skip esbuild build.
9999

100-
101100
### requireFromString(code, options?)
102101

103102
#### code

__tests__/cjs/require.test.cjs

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
import { describe, it, expect } from "vitest";
1+
import { describe, expect, it } from "vitest";
22

3-
const { dirname, join, relative } = require("node:path");
43
const { homedir } = require("node:os");
5-
4+
const { dirname, join, relative } = require("node:path");
65
const { requireFromString } = require("#dist/index.cjs");
76

8-
describe(requireFromString.name + "in CommonJS Module", () => {
7+
describe(`${requireFromString.name}in CommonJS Module`, () => {
98
it("should work with `module.exports`", () => {
109
const res = requireFromString("module.exports = 'hi'");
1110
expect(res).toBe("hi");
@@ -50,14 +49,14 @@ exports.greet = code
5049
`;
5150
const res = requireFromString(code);
5251
expect(res).toMatchInlineSnapshot(`
53-
{
54-
"greet": "var Greet = /* @__PURE__ */ ((Greet2) => {
55-
Greet2[Greet2[\\"Hi\\"] = 0] = \\"Hi\\";
56-
return Greet2;
57-
})(Greet || {});
58-
",
59-
}
60-
`);
52+
{
53+
"greet": "var Greet = /* @__PURE__ */ ((Greet2) => {
54+
Greet2[Greet2["Hi"] = 0] = "Hi";
55+
return Greet2;
56+
})(Greet || {});
57+
",
58+
}
59+
`);
6160
});
6261

6362
it("should work with dynamic import module", async () => {
@@ -71,12 +70,12 @@ exports.greet = code
7170
`;
7271
const res = await requireFromString(code);
7372
expect(res).toMatchInlineSnapshot(`
74-
"var Greet = /* @__PURE__ */ ((Greet2) => {
75-
Greet2[Greet2[\\"Hi\\"] = 0] = \\"Hi\\";
76-
return Greet2;
77-
})(Greet || {});
78-
"
79-
`);
73+
"var Greet = /* @__PURE__ */ ((Greet2) => {
74+
Greet2[Greet2["Hi"] = 0] = "Hi";
75+
return Greet2;
76+
})(Greet || {});
77+
"
78+
`);
8079
});
8180

8281
it("should access globals", () => {
@@ -91,21 +90,23 @@ exports.greet = code
9190

9291
it("should access __filename", () => {
9392
const res = requireFromString("module.exports = __filename", { filename: "x.js" });
94-
expect(res).toBe(__dirname + "/x.js");
93+
expect(res).toBe(`${__dirname}/x.js`);
9594
});
9695

9796
it("should use relative filename in error stack trace", () => {
9897
const filename = "foo.js";
9998
const relativeDirname = relative(process.cwd(), __dirname);
10099
const relativeFilename = join(relativeDirname, filename);
101100
try {
102-
requireFromString('throw new Error("boom")', {
101+
requireFromString("throw new Error(\"boom\")", {
103102
filename,
104103
});
105-
} catch (error) {
104+
}
105+
catch (error) {
106106
if (error instanceof Error) {
107107
expect(error.stack).toMatch(`${relativeFilename}:`);
108-
} else {
108+
}
109+
else {
109110
throw error;
110111
}
111112
}
@@ -114,20 +115,22 @@ exports.greet = code
114115
it("should use absolute filename in error stack trace", () => {
115116
const filename = join(homedir(), "foo", "bar", "baz.js");
116117
try {
117-
requireFromString('throw new Error("boom")', {
118+
requireFromString("throw new Error(\"boom\")", {
118119
filename,
119120
});
120-
} catch (error) {
121+
}
122+
catch (error) {
121123
if (error instanceof Error) {
122124
expect(error.stack).toMatch(`${filename}:`);
123-
} else {
125+
}
126+
else {
124127
throw error;
125128
}
126129
}
127130
});
128131

129132
it("should does't work ESM module", () => {
130-
const res = () => requireFromString(`export default 111`);
131-
expect(res).toThrowErrorMatchingInlineSnapshot("\"Unexpected token 'export'\"");
133+
const res = () => requireFromString("export default 111");
134+
expect(res).toThrowErrorMatchingInlineSnapshot("[SyntaxError: Unexpected token 'export']");
132135
});
133136
});

__tests__/cjs/require.test.ts

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { requireFromString } from "#dist/index.mjs";
21
import { homedir } from "node:os";
32
import { dirname, join, relative } from "node:path";
4-
import { describe, it, expect } from "vitest";
3+
import { requireFromString } from "#dist/index.mjs";
4+
import { describe, expect, it } from "vitest";
55

6-
describe(requireFromString.name + "in ESM Module", () => {
6+
describe(`${requireFromString.name}in ESM Module`, () => {
77
it("should work with `module.exports`", () => {
88
const res = requireFromString("module.exports = 'hi'");
99
expect(res).toBe("hi");
@@ -48,14 +48,14 @@ exports.greet = code
4848
`;
4949
const res = requireFromString(code);
5050
expect(res).toMatchInlineSnapshot(`
51-
{
52-
"greet": "var Greet = /* @__PURE__ */ ((Greet2) => {
53-
Greet2[Greet2[\\"Hi\\"] = 0] = \\"Hi\\";
54-
return Greet2;
55-
})(Greet || {});
56-
",
57-
}
58-
`);
51+
{
52+
"greet": "var Greet = /* @__PURE__ */ ((Greet2) => {
53+
Greet2[Greet2["Hi"] = 0] = "Hi";
54+
return Greet2;
55+
})(Greet || {});
56+
",
57+
}
58+
`);
5959
});
6060

6161
it("should work with dynamic import module", async () => {
@@ -69,12 +69,12 @@ exports.greet = code
6969
`;
7070
const res = await requireFromString(code);
7171
expect(res).toMatchInlineSnapshot(`
72-
"var Greet = /* @__PURE__ */ ((Greet2) => {
73-
Greet2[Greet2[\\"Hi\\"] = 0] = \\"Hi\\";
74-
return Greet2;
75-
})(Greet || {});
76-
"
77-
`);
72+
"var Greet = /* @__PURE__ */ ((Greet2) => {
73+
Greet2[Greet2["Hi"] = 0] = "Hi";
74+
return Greet2;
75+
})(Greet || {});
76+
"
77+
`);
7878
});
7979

8080
it("should access globals", () => {
@@ -89,21 +89,23 @@ exports.greet = code
8989

9090
it("should access __filename", () => {
9191
const res = requireFromString("module.exports = __filename", { filename: "x.js" });
92-
expect(res).toBe(__dirname + "/x.js");
92+
expect(res).toBe(`${__dirname}/x.js`);
9393
});
9494

9595
it("should use relative filename in error stack trace", () => {
9696
const filename = "foo.js";
9797
const relativeDirname = relative(process.cwd(), __dirname);
9898
const relativeFilename = join(relativeDirname, filename);
9999
try {
100-
requireFromString('throw new Error("boom")', {
100+
requireFromString("throw new Error(\"boom\")", {
101101
filename,
102102
});
103-
} catch (error) {
103+
}
104+
catch (error) {
104105
if (error instanceof Error) {
105106
expect(error.stack).toMatch(`${relativeFilename}:`);
106-
} else {
107+
}
108+
else {
107109
throw error;
108110
}
109111
}
@@ -112,20 +114,22 @@ exports.greet = code
112114
it("should use absolute filename in error stack trace", () => {
113115
const filename = join(homedir(), "foo", "bar", "baz.js");
114116
try {
115-
requireFromString('throw new Error("boom")', {
117+
requireFromString("throw new Error(\"boom\")", {
116118
filename,
117119
});
118-
} catch (error) {
120+
}
121+
catch (error) {
119122
if (error instanceof Error) {
120123
expect(error.stack).toMatch(`${filename}:`);
121-
} else {
124+
}
125+
else {
122126
throw error;
123127
}
124128
}
125129
});
126130

127131
it("should does't work ESM module", () => {
128-
const res = () => requireFromString(`export default 111`);
129-
expect(res).toThrowErrorMatchingInlineSnapshot("\"Unexpected token 'export'\"");
132+
const res = () => requireFromString("export default 111");
133+
expect(res).toThrowErrorMatchingInlineSnapshot("[SyntaxError: Unexpected token 'export']");
130134
});
131135
});

0 commit comments

Comments
 (0)