svg-eslint-parser 0.0.7 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -18
- package/dist/chunk-D7D4PA-g.js +13 -0
- package/dist/index.d.ts +24 -23
- package/dist/index.js +440 -511
- package/package.json +37 -30
- package/dist/chunk-CzXV76rE.js +0 -18
package/README.md
CHANGED
|
@@ -85,11 +85,11 @@ import {
|
|
|
85
85
|
} from 'svg-eslint-parser'
|
|
86
86
|
|
|
87
87
|
const { ast } = parseForESLint(svgSource)
|
|
88
|
-
const document = ast.
|
|
88
|
+
const document = ast.document
|
|
89
89
|
|
|
90
|
-
// Find all
|
|
91
|
-
const
|
|
92
|
-
console.log(`Found ${
|
|
90
|
+
// Find all element nodes
|
|
91
|
+
const elements = findNodeByType(document, NodeTypes.Element)
|
|
92
|
+
console.log(`Found ${elements.length} elements`)
|
|
93
93
|
|
|
94
94
|
// Traverse with visitor pattern
|
|
95
95
|
traverseAST(document, {
|
|
@@ -145,19 +145,13 @@ Returns a Document node directly.
|
|
|
145
145
|
|
|
146
146
|
### Node Types
|
|
147
147
|
|
|
148
|
-
The parser
|
|
148
|
+
The parser currently exposes 16 AST node types:
|
|
149
149
|
|
|
150
|
-
**Document
|
|
150
|
+
**Program & Document**: `Program`, `Document`
|
|
151
151
|
|
|
152
|
-
**
|
|
152
|
+
**Element Tree**: `Element`, `Attribute`, `AttributeKey`, `AttributeValue`, `Text`, `Comment`
|
|
153
153
|
|
|
154
|
-
**
|
|
155
|
-
|
|
156
|
-
**Text & Comments**: `Text`, `Comment`, `CommentOpen`, `CommentContent`, `CommentClose`
|
|
157
|
-
|
|
158
|
-
**XML Declaration**: `XMLDeclaration`, `XMLDeclarationOpen`, `XMLDeclarationClose`, `XMLDeclarationAttribute`, `XMLDeclarationAttributeKey`, `XMLDeclarationAttributeValue`, `XMLDeclarationAttributeValueWrapperStart`, `XMLDeclarationAttributeValueWrapperEnd`
|
|
159
|
-
|
|
160
|
-
**DOCTYPE**: `Doctype`, `DoctypeOpen`, `DoctypeClose`, `DoctypeAttribute`, `DoctypeAttributeValue`, `DoctypeAttributeWrapperStart`, `DoctypeAttributeWrapperEnd`
|
|
154
|
+
**Declarations**: `Doctype`, `DoctypeAttribute`, `DoctypeAttributeValue`, `XMLDeclaration`, `XMLDeclarationAttribute`, `XMLDeclarationAttributeKey`, `XMLDeclarationAttributeValue`
|
|
161
155
|
|
|
162
156
|
**Error Handling**: `Error`
|
|
163
157
|
|
|
@@ -190,11 +184,11 @@ const svgCode = `
|
|
|
190
184
|
`
|
|
191
185
|
|
|
192
186
|
const { ast } = parseForESLint(svgCode)
|
|
193
|
-
const document = ast.
|
|
187
|
+
const document = ast.document
|
|
194
188
|
|
|
195
|
-
// Find all
|
|
196
|
-
const
|
|
197
|
-
const circles =
|
|
189
|
+
// Find all elements and filter for circles
|
|
190
|
+
const allElements = findNodeByType(document, NodeTypes.Element)
|
|
191
|
+
const circles = allElements.filter(element => element.name === 'circle')
|
|
198
192
|
|
|
199
193
|
console.log(`Found ${circles.length} circles`)
|
|
200
194
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __exportAll = (all, no_symbols) => {
|
|
4
|
+
let target = {};
|
|
5
|
+
for (var name in all) __defProp(target, name, {
|
|
6
|
+
get: all[name],
|
|
7
|
+
enumerable: true
|
|
8
|
+
});
|
|
9
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
10
|
+
return target;
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { __exportAll as t };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as eslint0 from "eslint";
|
|
2
1
|
import { SourceCode } from "eslint";
|
|
3
2
|
|
|
4
3
|
//#region src/meta.d.ts
|
|
@@ -66,9 +65,9 @@ declare enum NodeTypes {
|
|
|
66
65
|
DoctypeAttribute = "DoctypeAttribute",
|
|
67
66
|
DoctypeAttributeValue = "DoctypeAttributeValue",
|
|
68
67
|
Document = "Document",
|
|
68
|
+
Element = "Element",
|
|
69
69
|
Error = "Error",
|
|
70
70
|
Program = "Program",
|
|
71
|
-
Tag = "Tag",
|
|
72
71
|
Text = "Text",
|
|
73
72
|
XMLDeclaration = "XMLDeclaration",
|
|
74
73
|
XMLDeclarationAttribute = "XMLDeclarationAttribute",
|
|
@@ -271,7 +270,7 @@ type AttributeValueNode = SimpleNode<NodeTypes.AttributeValue>;
|
|
|
271
270
|
interface AttributeNode extends BaseNode {
|
|
272
271
|
key: AttributeKeyNode;
|
|
273
272
|
type: NodeTypes.Attribute;
|
|
274
|
-
value
|
|
273
|
+
value?: AttributeValueNode;
|
|
275
274
|
quoteChar?: '"' | "'" | undefined;
|
|
276
275
|
}
|
|
277
276
|
/**
|
|
@@ -297,15 +296,15 @@ interface DoctypeNode extends BaseNode {
|
|
|
297
296
|
type: NodeTypes.Doctype;
|
|
298
297
|
}
|
|
299
298
|
/**
|
|
300
|
-
*
|
|
299
|
+
* element nodes
|
|
301
300
|
* @pg
|
|
302
301
|
*/
|
|
303
|
-
interface
|
|
302
|
+
interface ElementNode extends BaseNode {
|
|
304
303
|
attributes: AttributeNode[];
|
|
305
|
-
children:
|
|
304
|
+
children: ElementChildNode[];
|
|
306
305
|
name: string;
|
|
307
306
|
selfClosing: boolean;
|
|
308
|
-
type: NodeTypes.
|
|
307
|
+
type: NodeTypes.Element;
|
|
309
308
|
}
|
|
310
309
|
/**
|
|
311
310
|
* XML declaration nodes
|
|
@@ -315,7 +314,7 @@ type XMLDeclarationAttributeValueNode = SimpleNode<NodeTypes.XMLDeclarationAttri
|
|
|
315
314
|
interface XMLDeclarationAttributeNode extends BaseNode {
|
|
316
315
|
key: XMLDeclarationAttributeKeyNode;
|
|
317
316
|
type: NodeTypes.XMLDeclarationAttribute;
|
|
318
|
-
value
|
|
317
|
+
value?: XMLDeclarationAttributeValueNode;
|
|
319
318
|
quoteChar?: '"' | "'" | undefined;
|
|
320
319
|
}
|
|
321
320
|
interface XMLDeclarationNode extends BaseNode {
|
|
@@ -333,29 +332,31 @@ interface ErrorNode extends BaseNode {
|
|
|
333
332
|
recoveredNode?: AnyNode;
|
|
334
333
|
}
|
|
335
334
|
/**
|
|
336
|
-
*
|
|
335
|
+
* child node
|
|
337
336
|
* @pg
|
|
338
337
|
*/
|
|
339
|
-
type
|
|
338
|
+
type DocumentChildNode = XMLDeclarationNode | DoctypeNode | ElementNode | CommentNode | TextNode;
|
|
339
|
+
type ElementChildNode = ElementNode | CommentNode | TextNode;
|
|
340
340
|
/**
|
|
341
341
|
* program
|
|
342
342
|
* @pg
|
|
343
343
|
*/
|
|
344
344
|
interface Program extends BaseNode {
|
|
345
|
-
body:
|
|
345
|
+
body: [];
|
|
346
346
|
comments: ESLintComment[];
|
|
347
|
+
document: DocumentNode;
|
|
347
348
|
tokens: AnyToken[];
|
|
348
349
|
type: NodeTypes.Program;
|
|
349
350
|
}
|
|
350
351
|
interface DocumentNode extends BaseNode {
|
|
351
|
-
children:
|
|
352
|
+
children: DocumentChildNode[];
|
|
352
353
|
type: NodeTypes.Document;
|
|
353
354
|
}
|
|
354
355
|
/**
|
|
355
356
|
* any node
|
|
356
357
|
* @pg
|
|
357
358
|
*/
|
|
358
|
-
type AnyNode = AttributeKeyNode | AttributeNode | AttributeValueNode | CommentNode | DoctypeAttributeNode | DoctypeAttributeValueNode | DoctypeNode | DocumentNode |
|
|
359
|
+
type AnyNode = AttributeKeyNode | AttributeNode | AttributeValueNode | CommentNode | DoctypeAttributeNode | DoctypeAttributeValueNode | DoctypeNode | DocumentNode | ElementNode | ErrorNode | Program | TextNode | XMLDeclarationAttributeKeyNode | XMLDeclarationAttributeNode | XMLDeclarationAttributeValueNode | XMLDeclarationNode;
|
|
359
360
|
//#endregion
|
|
360
361
|
//#region src/types/parse.d.ts
|
|
361
362
|
interface Options {
|
|
@@ -390,7 +391,7 @@ interface ParseResult {
|
|
|
390
391
|
}
|
|
391
392
|
//#endregion
|
|
392
393
|
//#region src/types/contextualNode.d.ts
|
|
393
|
-
type AnyContextualNode = ContextualAttributeNode | ContextualCommentNode | ContextualDoctypeAttributeNode | ContextualDoctypeNode | ContextualDocumentNode |
|
|
394
|
+
type AnyContextualNode = ContextualAttributeNode | ContextualCommentNode | ContextualDoctypeAttributeNode | ContextualDoctypeNode | ContextualDocumentNode | ContextualElementNode | ContextualXMLDeclarationAttributeNode | ContextualXMLDeclarationNode;
|
|
394
395
|
type ContextualAttributeNode = ContextualNode<AttributeNode, 'key' | 'value'>;
|
|
395
396
|
type ContextualCommentNode = ContextualNode<CommentNode, 'content'>;
|
|
396
397
|
type ContextualDoctypeAttributeNode = ContextualNode<DoctypeAttributeNode, 'type' | 'value'>;
|
|
@@ -398,14 +399,14 @@ type ContextualDoctypeNode = ContextualNode<DoctypeNode, 'attributes'> & {
|
|
|
398
399
|
attributes: ContextualDoctypeAttributeNode[];
|
|
399
400
|
};
|
|
400
401
|
type ContextualDocumentNode = Omit<ContextualNode<DocumentNode, never>, 'children'> & {
|
|
401
|
-
children: Array<DocumentNode['children'][number] |
|
|
402
|
+
children: Array<DocumentNode['children'][number] | ContextualCommentNode | ContextualDoctypeNode | ContextualElementNode | ContextualXMLDeclarationNode>;
|
|
402
403
|
};
|
|
403
404
|
type ContextualNode<T extends AnyNode, K extends keyof T> = PartialBy<T, K> & {
|
|
404
405
|
parentRef?: any;
|
|
405
406
|
};
|
|
406
|
-
type
|
|
407
|
+
type ContextualElementNode = ContextualNode<ElementNode, 'attributes' | 'children' | 'name' | 'selfClosing'> & {
|
|
407
408
|
attributes: ContextualAttributeNode[];
|
|
408
|
-
children: Array<ContextualCommentNode |
|
|
409
|
+
children: Array<ContextualCommentNode | ContextualElementNode | ElementNode['children'][number]>;
|
|
409
410
|
};
|
|
410
411
|
type ContextualXMLDeclarationAttributeNode = ContextualNode<XMLDeclarationAttributeNode, 'key' | 'value'>;
|
|
411
412
|
type ContextualXMLDeclarationNode = ContextualNode<XMLDeclarationNode, 'attributes'> & {
|
|
@@ -483,9 +484,9 @@ type ContextParams = {
|
|
|
483
484
|
};
|
|
484
485
|
//#endregion
|
|
485
486
|
//#region src/types/constructTreeState.d.ts
|
|
486
|
-
type ConstructTreeState<
|
|
487
|
+
type ConstructTreeState<Node extends AnyContextualNode> = {
|
|
487
488
|
caretPosition: number;
|
|
488
|
-
currentNode:
|
|
489
|
+
currentNode: Node;
|
|
489
490
|
rootNode: DocumentNode;
|
|
490
491
|
currentContext: {
|
|
491
492
|
type: ConstructTreeContextTypes;
|
|
@@ -505,7 +506,7 @@ interface TokenizeHandler {
|
|
|
505
506
|
handleContentEnd?: (state: TokenizerState) => void;
|
|
506
507
|
}
|
|
507
508
|
declare namespace index_d_exports {
|
|
508
|
-
export { AnyContextualNode, AnyNode, AnyToken, AttributeKeyNode, AttributeNode, AttributeValueNode, BaseNode, CommentNode, ConstructTreeHandler, ConstructTreeState, ContextualAttributeNode, ContextualCommentNode, ContextualDoctypeAttributeNode, ContextualDoctypeNode, ContextualDocumentNode,
|
|
509
|
+
export { AnyContextualNode, AnyNode, AnyToken, AttributeKeyNode, AttributeNode, AttributeValueNode, BaseNode, CommentNode, ConstructTreeHandler, ConstructTreeState, ContextualAttributeNode, ContextualCommentNode, ContextualDoctypeAttributeNode, ContextualDoctypeNode, ContextualDocumentNode, ContextualElementNode, ContextualNode, ContextualXMLDeclarationAttributeNode, ContextualXMLDeclarationNode, DoctypeAttributeNode, DoctypeAttributeValueNode, DoctypeNode, DocumentChildNode, DocumentNode, ESLintComment, ElementChildNode, ElementNode, ErrorNode, Locations, Options, ParseForESLintResult, ParseResult, PartialBy, Position, Program, Range, SimpleNode, SourceLocation, TextNode, Token, TokenizeHandler, TokenizerState, XMLDeclarationAttributeKeyNode, XMLDeclarationAttributeNode, XMLDeclarationAttributeValueNode, XMLDeclarationNode };
|
|
509
510
|
}
|
|
510
511
|
//#endregion
|
|
511
512
|
//#region src/parser/parseForESLint.d.ts
|
|
@@ -622,7 +623,7 @@ declare function findFirstNodeByType<T extends NodeTypes>(node: AnyNode, type: T
|
|
|
622
623
|
//#endregion
|
|
623
624
|
//#region src/index.d.ts
|
|
624
625
|
declare const name: string;
|
|
625
|
-
declare const VisitorKeys:
|
|
626
|
-
declare function parse(code: string, options?: Options):
|
|
626
|
+
declare const VisitorKeys: import("eslint").SourceCode.VisitorKeys;
|
|
627
|
+
declare function parse(code: string, options?: Options): DocumentNode;
|
|
627
628
|
//#endregion
|
|
628
|
-
export { type index_d_exports as AST, type ASTVisitor, AnyContextualNode, AnyNode, AnyToken, AttributeKeyNode, AttributeNode, AttributeValueNode, BaseNode, COMMENT_END, COMMENT_START, CommentNode, ConstructTreeContextTypes, ConstructTreeHandler, ConstructTreeState, ContextualAttributeNode, ContextualCommentNode, ContextualDoctypeAttributeNode, ContextualDoctypeNode, ContextualDocumentNode,
|
|
629
|
+
export { type index_d_exports as AST, type ASTVisitor, AnyContextualNode, AnyNode, AnyToken, AttributeKeyNode, AttributeNode, AttributeValueNode, BaseNode, COMMENT_END, COMMENT_START, CommentNode, ConstructTreeContextTypes, ConstructTreeHandler, ConstructTreeState, ContextualAttributeNode, ContextualCommentNode, ContextualDoctypeAttributeNode, ContextualDoctypeNode, ContextualDocumentNode, ContextualElementNode, ContextualNode, ContextualXMLDeclarationAttributeNode, ContextualXMLDeclarationNode, DEPRECATED_SVG_ELEMENTS, DoctypeAttributeNode, DoctypeAttributeValueNode, DoctypeNode, DocumentChildNode, DocumentNode, ESLintComment, ElementChildNode, ElementNode, ErrorNode, Locations, NodeTypes, Options, ParseError, ParseForESLintResult, ParseResult, PartialBy, Position, Program, RE_CLOSE_TAG_NAME, RE_INCOMPLETE_CLOSING_TAG, RE_OPEN_TAG_NAME, RE_OPEN_TAG_START, Range, SELF_CLOSING_ELEMENTS, SPECIAL_CHAR, SVG_ELEMENTS, SimpleNode, SourceLocation, TextNode, Token, TokenTypes, TokenizeHandler, TokenizerContextTypes, TokenizerState, VisitorKeys, XMLDeclarationAttributeKeyNode, XMLDeclarationAttributeNode, XMLDeclarationAttributeValueNode, XMLDeclarationNode, XML_DECLARATION_END, XML_DECLARATION_START, cloneNode, cloneNodeWithParent, countNodes, filterNodes, findFirstNodeByType, findNodeByType, getNodeDepth, getParentChain, isNodeType, mapNodes, meta, name, parse, parseForESLint, traverseAST, validateNode, walkAST };
|