Adds types for version 2.0 of svg-parser (#38474)

* Adds types for new version of svg-parser

* Added whitespace for union types

* Update types with feedback from mrmlnc

* Re-write test to conform with new definitions
This commit is contained in:
Joel Shinness
2019-09-25 11:04:27 -07:00
committed by Michael Crane
parent cf581aef12
commit e85685ffe0
2 changed files with 23 additions and 8 deletions

View File

@@ -1,14 +1,29 @@
// Type definitions for svg-parser 1.0
// Project: https://gitlab.com/Rich-Harris/svg-parser#README
// Type definitions for svg-parser 2.0
// Project: https://github.com/Rich-Harris/svg-parser
// Definitions by: mrmlnc <https://github.com/mrmlnc>
// Joel Shinness <https://github.com/JoelCodes>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.1
export interface Node {
name: string;
attributes: Record<string, string | number>;
children: Node[];
export interface TextNode {
type: 'text';
value?: string | boolean | number;
}
export interface ElementNode {
type: 'element';
tagName?: string;
properties?: Record<string, string|number>;
children: Array<Node | string>;
value?: string;
metadata?: string;
}
export function parse(content: string): Node;
export type Node = TextNode | ElementNode;
export interface RootNode {
type: 'root';
children: Node;
}
export function parse(source: string): RootNode;

View File

@@ -1,4 +1,4 @@
import * as parser from 'svg-parser';
// $ExpectType Node
// $ExpectType RootNode
parser.parse('<svg></svg>');