Skip to content

Commit

Permalink
refactor: exclude keys if not leading to an object with a non-comment…
Browse files Browse the repository at this point in the history
… type
  • Loading branch information
brettz9 committed Mar 12, 2022
1 parent 0f420df commit 5a92ab0
Show file tree
Hide file tree
Showing 8 changed files with 334 additions and 148 deletions.
13 changes: 8 additions & 5 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,20 @@ import KEYS from "./visitor-keys.js";
const KEY_BLACKLIST = new Set([
"parent",

// "type",
// "range",

// SourceLocation
"loc",
// "loc",

// Comment
"comments",
"innerComments",
// "comments",
// "innerComments",
"leadingComments",
"trailingComments",
"trailingComments"

// *Operator
"operator"
// "operator"
]);

/**
Expand Down
8 changes: 8 additions & 0 deletions tests/lib/fixtures/bad-type-value.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
interface BadExpression {
type: undefined;
}

export interface NewFangledExpression {
type: "NewFangledExpression";
right: BadExpression;
}
11 changes: 11 additions & 0 deletions tests/lib/fixtures/new-keys-on-old-order-switched.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
export type AssignmentOperator = "=";
interface Pattern {
type: "Pattern"
};
interface MemberExpression {
type: "MemberExpression"
};
interface Expression {
type: "Expression"
};

export interface AssignmentExpression {
type: "AssignmentExpression";
operator: AssignmentOperator;
Expand Down
11 changes: 11 additions & 0 deletions tests/lib/fixtures/new-keys-on-old-other-order.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
export type AssignmentOperator = "=";
interface Pattern {
type: "Pattern"
};
interface MemberExpression {
type: "MemberExpression"
};
interface Expression {
type: "Expression"
};

export interface AssignmentExpression {
type: "AssignmentExpression";
operator: AssignmentOperator;
Expand Down
26 changes: 26 additions & 0 deletions tests/lib/fixtures/new-keys-on-old.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,31 @@
export type AssignmentOperator = "=";

interface IgnoreBase {
type: "Line";
}

type AnotherIgnore = IgnoreBase;

interface BasePattern {
type: "Pattern"
};
interface IgnoreChild extends Omit<BasePattern, "type"> {
};

interface Pattern {
type: "Pattern"
};
interface MemberExpression {
type: "MemberExpression"
};
interface Expression {
type: "Expression"
};

export interface AssignmentExpression {
type: "AssignmentExpression";
ignore: IgnoreChild;
anotherIgnore: AnotherIgnore;
operator: AssignmentOperator;
up: Expression;
down: Expression;
Expand Down
11 changes: 11 additions & 0 deletions tests/lib/fixtures/new-keys.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
export type AssignmentOperator = "=";
interface Pattern {
type: "Pattern"
};
interface MemberExpression {
type: "MemberExpression"
};
interface Expression {
type: "Expression"
};

export interface NewFangledExpression {
type: "NewFangledExpression";
operator: AssignmentOperator;
Expand Down
14 changes: 14 additions & 0 deletions tests/lib/get-keys-from-ts.js
Original file line number Diff line number Diff line change
Expand Up @@ -184,4 +184,18 @@ describe("getKeysFromTsFile", () => {

expect(error.message).to.equal("Type unknown as to traversability: BadExpression");
});

it("throws with bad type value", async () => {
let error;

try {
await getKeysFromTsFile(
"./tests/lib/fixtures/bad-type-value.d.ts"
);
} catch (err) {
error = err;
}

expect(error.message).to.equal("Unexpected `type` value property type TSUndefinedKeyword");
});
});

0 comments on commit 5a92ab0

Please sign in to comment.