Skip to content

Commit 04e58b4

Browse files
authored
feat: Add includeNodeModules to opt into resolving in node_modules (#10)
1 parent bf9520c commit 04e58b4

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

index.ts

+19-1
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,32 @@ type Resolver = NonNullable<ResolveOptions["resolver"]>;
44

55
const pluginName = "ResolveTypescriptPlugin";
66

7+
export interface ResolveTypescriptPluginOptions {
8+
includeNodeModules?: boolean;
9+
}
10+
711
export default class ResolveTypescriptPlugin {
12+
private static defaultOptions: ResolveTypescriptPluginOptions = {
13+
includeNodeModules: false
14+
};
15+
16+
private options: ResolveTypescriptPluginOptions;
17+
18+
public constructor(options: ResolveTypescriptPluginOptions = {}) {
19+
this.options = {...ResolveTypescriptPlugin.defaultOptions, ...options};
20+
}
21+
822
public apply(resolver: Resolver): void {
923
const target = resolver.ensureHook("file");
1024
for (const extension of [".ts", ".tsx"]) {
1125
resolver
1226
.getHook("raw-file")
1327
.tapAsync(pluginName, (request, resolveContext, callback) => {
14-
if (!request.path || request.path.match(/(^|[\\/])node_modules($|[\\/])/)) {
28+
if (
29+
!request.path ||
30+
(!this.options.includeNodeModules &&
31+
request.path.match(/(^|[\\/])node_modules($|[\\/])/))
32+
) {
1533
return callback();
1634
}
1735

0 commit comments

Comments
 (0)