From e85685ffe028e3e1fbde39d4cd1aab7cd2fd8eb0 Mon Sep 17 00:00:00 2001 From: Joel Shinness Date: Wed, 25 Sep 2019 11:04:27 -0700 Subject: [PATCH] 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 --- types/svg-parser/index.d.ts | 29 +++++++++++++++++++++------- types/svg-parser/svg-parser-tests.ts | 2 +- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/types/svg-parser/index.d.ts b/types/svg-parser/index.d.ts index 4d3bdad0e1..5b70c526db 100644 --- a/types/svg-parser/index.d.ts +++ b/types/svg-parser/index.d.ts @@ -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 +// Joel Shinness // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.1 -export interface Node { - name: string; - attributes: Record; - children: Node[]; +export interface TextNode { + type: 'text'; + value?: string | boolean | number; +} + +export interface ElementNode { + type: 'element'; + tagName?: string; + properties?: Record; + children: Array; + 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; diff --git a/types/svg-parser/svg-parser-tests.ts b/types/svg-parser/svg-parser-tests.ts index 47c53b8db9..43c16a3079 100644 --- a/types/svg-parser/svg-parser-tests.ts +++ b/types/svg-parser/svg-parser-tests.ts @@ -1,4 +1,4 @@ import * as parser from 'svg-parser'; -// $ExpectType Node +// $ExpectType RootNode parser.parse('');