mirror of
https://github.com/denoland/deno.git
synced 2025-03-06 02:52:05 -05:00
simplify types
This commit is contained in:
parent
bf9e4493c6
commit
b3ddde1d4d
2 changed files with 35 additions and 38 deletions
|
@ -77,12 +77,13 @@ const PropFlags = {
|
|||
/** @typedef {import("./40_lint_types.d.ts").VisitorFn} VisitorFn */
|
||||
/** @typedef {import("./40_lint_types.d.ts").CompiledVisitor} CompiledVisitor */
|
||||
/** @typedef {import("./40_lint_types.d.ts").LintState} LintState */
|
||||
/** @typedef {import("./40_lint_types.d.ts").IFixer} IFixer */
|
||||
/** @typedef {import("./40_lint_types.d.ts").RuleContext} RuleContext */
|
||||
/** @typedef {import("./40_lint_types.d.ts").NodeFacade} NodeFacade */
|
||||
/** @typedef {import("./40_lint_types.d.ts").LintPlugin} LintPlugin */
|
||||
/** @typedef {import("./40_lint_types.d.ts").TransformFn} TransformFn */
|
||||
/** @typedef {import("./40_lint_types.d.ts").MatchContext} MatchContext */
|
||||
/** @typedef {import("./40_lint_types.d.ts").Node} Node */
|
||||
/** @typedef {import("./40_lint_types.d.ts").INode} INode */
|
||||
/** @typedef {import("./40_lint_types.d.ts").IReportData} IReportData */
|
||||
|
||||
/** @type {LintState} */
|
||||
const state = {
|
||||
|
@ -107,10 +108,10 @@ class CancellationToken {
|
|||
}
|
||||
}
|
||||
|
||||
/** @implements {Fixer} */
|
||||
class FixerHelper {
|
||||
/** @implements {IFixer} */
|
||||
class Fixer {
|
||||
/**
|
||||
* @param {Node} node
|
||||
* @param {INode} node
|
||||
* @param {string} text
|
||||
*/
|
||||
insertTextAfter(node, text) {
|
||||
|
@ -121,7 +122,7 @@ class FixerHelper {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param {Node["range"]} range
|
||||
* @param {INode["range"]} range
|
||||
* @param {string} text
|
||||
*/
|
||||
insertTextAfterRange(range, text) {
|
||||
|
@ -132,7 +133,7 @@ class FixerHelper {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param {Node} node
|
||||
* @param {INode} node
|
||||
* @param {string} text
|
||||
*/
|
||||
insertTextBefore(node, text) {
|
||||
|
@ -143,7 +144,7 @@ class FixerHelper {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param {Node["range"]} range
|
||||
* @param {INode["range"]} range
|
||||
* @param {string} text
|
||||
*/
|
||||
insertTextBeforeRange(range, text) {
|
||||
|
@ -154,7 +155,7 @@ class FixerHelper {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param {Node} node
|
||||
* @param {INode} node
|
||||
*/
|
||||
remove(node) {
|
||||
return {
|
||||
|
@ -164,7 +165,7 @@ class FixerHelper {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param {Node["range"]} range
|
||||
* @param {INode["range"]} range
|
||||
*/
|
||||
removeRange(range) {
|
||||
return {
|
||||
|
@ -174,7 +175,7 @@ class FixerHelper {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param {Node} node
|
||||
* @param {INode} node
|
||||
* @param {string} text
|
||||
*/
|
||||
replaceText(node, text) {
|
||||
|
@ -185,7 +186,7 @@ class FixerHelper {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param {Node["range"]} range
|
||||
* @param {INode["range"]} range
|
||||
* @param {string} text
|
||||
*/
|
||||
replaceTextRange(range, text) {
|
||||
|
@ -225,7 +226,7 @@ export class Context {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param {ReportData} data
|
||||
* @param {IReportData} data
|
||||
*/
|
||||
report(data) {
|
||||
const range = data.node ? data.node.range : data.range ? data.range : null;
|
||||
|
@ -241,7 +242,7 @@ export class Context {
|
|||
let fix;
|
||||
|
||||
if (typeof data.fix === "function") {
|
||||
const fixer = new FixerHelper();
|
||||
const fixer = new Fixer();
|
||||
fix = data.fix(fixer);
|
||||
fix.range[0]--;
|
||||
fix.range[1]--;
|
||||
|
@ -458,7 +459,7 @@ function readType(buf, idx) {
|
|||
/**
|
||||
* @param {AstContext} ctx
|
||||
* @param {number} idx
|
||||
* @returns {Node["range"]}
|
||||
* @returns {INode["range"]}
|
||||
*/
|
||||
function readSpan(ctx, idx) {
|
||||
let offset = ctx.spansOffset + (idx * SPAN_SIZE);
|
||||
|
|
42
cli/js/40_lint_types.d.ts
vendored
42
cli/js/40_lint_types.d.ts
vendored
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2018-2025 the Deno authors. MIT license.
|
||||
|
||||
export interface NodeFacade {
|
||||
export interface INode {
|
||||
type: string;
|
||||
range: [number, number];
|
||||
[key: string]: unknown;
|
||||
|
@ -11,7 +11,7 @@ export interface AstContext {
|
|||
strTable: Map<number, string>;
|
||||
strTableOffset: number;
|
||||
rootOffset: number;
|
||||
nodes: Map<number, NodeFacade>;
|
||||
nodes: Map<number, INode>;
|
||||
spansOffset: number;
|
||||
propsOffset: number;
|
||||
strByType: number[];
|
||||
|
@ -21,40 +21,36 @@ export interface AstContext {
|
|||
matcher: MatchContext;
|
||||
}
|
||||
|
||||
export interface Node {
|
||||
range: Range;
|
||||
}
|
||||
export type TRange = [number, number];
|
||||
|
||||
export type Range = [number, number];
|
||||
|
||||
export interface FixData {
|
||||
range: Range;
|
||||
export interface IFixData {
|
||||
range: TRange;
|
||||
text?: string;
|
||||
}
|
||||
|
||||
export interface Fixer {
|
||||
insertTextAfter(node: Node, text: string): FixData;
|
||||
insertTextAfterRange(range: Range, text: string): FixData;
|
||||
insertTextBefore(node: Node, text: string): FixData;
|
||||
insertTextBeforeRange(range: Range, text: string): FixData;
|
||||
remove(node: Node): FixData;
|
||||
removeRange(range: Range): FixData;
|
||||
replaceText(node: Node, text: string): FixData;
|
||||
replaceTextRange(range: Range, text: string): FixData;
|
||||
export interface IFixer {
|
||||
insertTextAfter(node: INode, text: string): IFixData;
|
||||
insertTextAfterRange(range: TRange, text: string): IFixData;
|
||||
insertTextBefore(node: INode, text: string): IFixData;
|
||||
insertTextBeforeRange(range: TRange, text: string): IFixData;
|
||||
remove(node: INode): IFixData;
|
||||
removeRange(range: TRange): IFixData;
|
||||
replaceText(node: INode, text: string): IFixData;
|
||||
replaceTextRange(range: TRange, text: string): IFixData;
|
||||
}
|
||||
|
||||
export interface ReportData {
|
||||
node?: Node;
|
||||
range?: Range;
|
||||
export interface IReportData {
|
||||
node?: INode;
|
||||
range?: TRange;
|
||||
message: string;
|
||||
hint?: string;
|
||||
fix?(fixer: Fixer): FixData;
|
||||
fix?(fixer: IFixer): IFixData;
|
||||
}
|
||||
|
||||
// TODO(@marvinhagemeister) Remove once we land "official" types
|
||||
export interface RuleContext {
|
||||
id: string;
|
||||
report(data: ReportData): void;
|
||||
report(data: IReportData): void;
|
||||
}
|
||||
|
||||
// TODO(@marvinhagemeister) Remove once we land "official" types
|
||||
|
|
Loading…
Add table
Reference in a new issue