Skip to content

Commit 9af669b

Browse files
committed
fix(utils): [findRequires] parameter extraction
Signed-off-by: Lexus Drumgold <[email protected]>
1 parent cffba6b commit 9af669b

File tree

3 files changed

+43
-8
lines changed

3 files changed

+43
-8
lines changed

src/utils/__snapshots__/find-requires.snap

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,26 +85,59 @@ exports[`unit:utils/findRequires > should return RequireStatement object array 1
8585
"start": 198,
8686
"syntax": "require",
8787
},
88+
{
89+
"code": "require(\\"./config\\")",
90+
"end": 258,
91+
"imports": [],
92+
"kind": "require",
93+
"specifier": "./config",
94+
"specifier_kind": "relative",
95+
"specifier_syntax": "static",
96+
"start": 239,
97+
"syntax": "require",
98+
},
99+
{
100+
"code": "require(\\"./defaults\\")",
101+
"end": 314,
102+
"imports": [],
103+
"kind": "require",
104+
"specifier": "./defaults",
105+
"specifier_kind": "relative",
106+
"specifier_syntax": "static",
107+
"start": 293,
108+
"syntax": "require",
109+
},
110+
{
111+
"code": "require(\\"./conf\\")",
112+
"end": 332,
113+
"imports": [],
114+
"kind": "require",
115+
"specifier": "./conf",
116+
"specifier_kind": "relative",
117+
"specifier_syntax": "static",
118+
"start": 315,
119+
"syntax": "require",
120+
},
88121
{
89122
"code": "require(\\"./data\\")",
90-
"end": 256,
123+
"end": 374,
91124
"imports": [],
92125
"kind": "require",
93126
"specifier": "./data",
94127
"specifier_kind": "relative",
95128
"specifier_syntax": "static",
96-
"start": 239,
129+
"start": 357,
97130
"syntax": "require",
98131
},
99132
{
100133
"code": "require(\\"./parser-options\\")",
101-
"end": 310,
134+
"end": 428,
102135
"imports": [],
103136
"kind": "require",
104137
"specifier": "./parser-options",
105138
"specifier_kind": "relative",
106139
"specifier_syntax": "static",
107-
"start": 283,
140+
"start": 401,
108141
"syntax": "require",
109142
},
110143
{
@@ -119,7 +152,7 @@ exports[`unit:utils/findRequires > should return RequireStatement object array 1
119152
squareThree,
120153
squareTwo
121154
} = require('./lib')",
122-
"end": 454,
155+
"end": 572,
123156
"imports": [
124157
"default: myDefault",
125158
"addFive",
@@ -135,7 +168,7 @@ exports[`unit:utils/findRequires > should return RequireStatement object array 1
135168
"specifier": "./lib",
136169
"specifier_kind": "relative",
137170
"specifier_syntax": "static",
138-
"start": 312,
171+
"start": 430,
139172
"syntax": "require",
140173
},
141174
]

src/utils/__tests__/find-requires.spec.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ describe('unit:utils/findRequires', () => {
1616
require(id)
1717
require('#src/utils/resolve-aliases')
1818
const arr = [require("./arr")]
19+
const config = __toESM(require("./config"), 1)
20+
const config_extend = __toESM(require("./defaults"),require("./conf"))
1921
const data = { config: require("./data") }
2022
const options = {parser:require("./parser-options")}
2123
const {
@@ -35,7 +37,7 @@ describe('unit:utils/findRequires', () => {
3537
const results = testSubject(code)
3638

3739
// Expect
38-
expect(results).to.be.an('array').of.length(10)
40+
expect(results).to.be.an('array').of.length(13)
3941
expect(results).toMatchSnapshot()
4042
})
4143

src/utils/find-requires.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const findRequires = (code: string = ''): RequireStatement[] => {
3333
* @const {RegExp} REQUIRE_REGEX
3434
*/
3535
const REQUIRE_REGEX: RegExp =
36-
/(?<=^|[\s:;[])\b(?:(?:const\s*|let\s*|var\s*)?(?:(?<=(?:const\s*|let\s*|var\s*))(?<imports>(?:[$_\p{ID_Start}][$\u200C\u200D\p{ID_Continue}]*)|(?:[\w\t\n\r "$'*,./:{}-]+?)))?\s*=?\s*(?<kind>require)\((?<specifier>["']?[\S\t\n\r]+?["']?)\))(?<!(?:\/\/|\*).*)/gu
36+
/(?<=^|[\s,:;([])\b(?:(?:const\s*|let\s*|var\s*)?(?:(?<=(?:const\s*|let\s*|var\s*))(?<imports>(?:[$_\p{ID_Start}][$\u200C\u200D\p{ID_Continue}]*)|(?:[\w\t\n\r "$'*,./:{}-]+?)))?\s*=?\s*(?<kind>require)\((?<specifier>["']?[\S\t\n\r]+?["']?)\))(?<!(?:\/\/|\*).*)/gu
3737

3838
return [...code.matchAll(REQUIRE_REGEX)].map(match => {
3939
const { 0: code = '', index: start = 0, groups = {} } = match

0 commit comments

Comments
 (0)