add typings autogen command

This commit is contained in:
Yanzhen Yu
2019-04-01 11:47:49 +08:00
parent 03c9fde822
commit f4ebd6b731
7 changed files with 74 additions and 24 deletions

4
typings/index.d.ts vendored Normal file
View File

@@ -0,0 +1,4 @@
import snapshot, { serializeNodeWithId, resetId } from './snapshot';
import rebuild, { buildNodeWithSN } from './rebuild';
export * from './types';
export { snapshot, serializeNodeWithId, resetId, rebuild, buildNodeWithSN };

5
typings/rebuild.d.ts vendored Normal file
View File

@@ -0,0 +1,5 @@
import { serializedNodeWithId, idNodeMap, INode } from './types';
export declare function addHoverClass(cssText: string): string;
export declare function buildNodeWithSN(n: serializedNodeWithId, doc: Document, map: idNodeMap, skipChild?: boolean): INode | null;
declare function rebuild(n: serializedNodeWithId, doc: Document): [Node | null, idNodeMap];
export default rebuild;

6
typings/snapshot.d.ts vendored Normal file
View File

@@ -0,0 +1,6 @@
import { serializedNodeWithId, idNodeMap } from './types';
export declare function resetId(): void;
export declare function absoluteToStylesheet(cssText: string, href: string): string;
export declare function serializeNodeWithId(n: Node, doc: Document, map: idNodeMap, blockClass: string, skipChild?: boolean): serializedNodeWithId | null;
declare function snapshot(n: Document, blockClass?: string): [serializedNodeWithId | null, idNodeMap];
export default snapshot;

55
typings/types.d.ts vendored Normal file
View File

@@ -0,0 +1,55 @@
export declare enum NodeType {
Document = 0,
DocumentType = 1,
Element = 2,
Text = 3,
CDATA = 4,
Comment = 5
}
export declare type documentNode = {
type: NodeType.Document;
childNodes: serializedNodeWithId[];
};
export declare type documentTypeNode = {
type: NodeType.DocumentType;
name: string;
publicId: string;
systemId: string;
};
export declare type attributes = {
[key: string]: string | boolean;
};
export declare type elementNode = {
type: NodeType.Element;
tagName: string;
attributes: attributes;
childNodes: serializedNodeWithId[];
isSVG?: true;
needBlock?: boolean;
};
export declare type textNode = {
type: NodeType.Text;
textContent: string;
isStyle?: true;
};
export declare type cdataNode = {
type: NodeType.CDATA;
textContent: '';
};
export declare type commentNode = {
type: NodeType.Comment;
textContent: string;
};
export declare type serializedNode = documentNode | documentTypeNode | elementNode | textNode | cdataNode | commentNode;
export declare type serializedNodeWithId = serializedNode & {
id: number;
};
export declare type tagMap = {
[key: string]: string;
};
export interface INode extends Node {
__sn: serializedNodeWithId;
}
export declare type idNodeMap = {
[key: number]: INode;
};