Skip to content

Commit 5855f43

Browse files
committed
fix: this is not dep
1 parent 4aa7535 commit 5855f43

File tree

7 files changed

+20
-24
lines changed

7 files changed

+20
-24
lines changed

src/index.ts

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,7 @@ export function dts(): Plugin {
144144

145145
const original = s.sliceNode(node)
146146
const deps = collectDependencies(node)
147-
const depsString = deps
148-
.map((node) => `() => ${s.sliceNode(node)}`)
149-
.join(', ')
147+
const depsString = stringifyDependencies(s, deps)
150148
const isType =
151149
node.type.startsWith('TS') && node.type !== 'TSDeclareFunction'
152150
const needDeclare =
@@ -253,9 +251,7 @@ export function dts(): Plugin {
253251

254252
const raw = s.sliceNode(node)
255253
const deps = collectDependencies(node)
256-
const depsString = deps
257-
.map((node) => `() => ${s.sliceNode(node)}`)
258-
.join(', ')
254+
const depsString = stringifyDependencies(s, deps)
259255
const symbolId = register(raw, decl.id, deps, node, {
260256
isType: false,
261257
needDeclare: !node.declare,
@@ -271,13 +267,13 @@ function collectDependencies(node: Node): (Node & Span)[] {
271267
enter(node: Node) {
272268
if (node.type === 'TSInterfaceDeclaration' && node.extends) {
273269
for (const heritage of node.extends || []) {
274-
deps.add(heritage.expression)
270+
addDependency(heritage.expression)
275271
}
276272
} else if (node.type === 'ClassDeclaration') {
277-
if (node.superClass) deps.add(node.superClass)
273+
if (node.superClass) addDependency(node.superClass)
278274
if (node.implements) {
279275
for (const implement of node.implements) {
280-
deps.add(implement.expression)
276+
addDependency(implement.expression)
281277
}
282278
}
283279
} else if (
@@ -288,15 +284,26 @@ function collectDependencies(node: Node): (Node & Span)[] {
288284
node.key.type === 'MemberExpression') &&
289285
node.computed
290286
) {
291-
deps.add(node.key)
287+
addDependency(node.key)
292288
} else if (node.type === 'TSTypeReference') {
293-
deps.add(node.typeName)
289+
addDependency(node.typeName)
294290
} else if (node.type === 'TSTypeQuery') {
295-
deps.add(node.exprName)
291+
addDependency(node.exprName)
296292
}
297293
},
298294
})
299295
return Array.from(deps)
296+
297+
function addDependency(node: Node & Span) {
298+
if (node.type === 'Identifier' && node.name === 'this') {
299+
return
300+
}
301+
deps.add(node)
302+
}
303+
}
304+
305+
function stringifyDependencies(s: MagicStringAST, deps: Node[]) {
306+
return deps.map((node) => `() => ${s.sliceNode(node)}`).join(', ')
300307
}
301308

302309
// patch `let x = 1;` to `type x: 1;`
File renamed without changes.

tests/fixtures/type-typeof-this/diff.patch

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

tests/fixtures/type-typeof-this/snapshot.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
//#region tests/fixtures/type-typeof-this/index.d.ts
44
declare class NumberSchema {
5-
min: () => typeof void 0;
5+
min: () => typeof this;
66
}
77

88
//#endregion

tests/fixtures/unnamed-default-export-without-space/diff.patch renamed to tests/fixtures/unnamed-default-export-without-space/known-diff.patch

File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)