UNPKG

@tripsnek/tmf

Version:

TypeScript Modeling Framework - A TypeScript port of the Eclipse Modeling Framework (EMF)

98 lines 2.58 kB
/** * A drop-in replacement for xml2js that converts XML to JavaScript objects * with the same structure and behavior as xml2js.parseString() */ declare global { interface DOMParser { parseFromString(source: string, mimeType: string): Document; } interface Document { documentElement: Element | null; querySelector(selector: string): Element | null; } interface Element { tagName: string; attributes: NamedNodeMap; childNodes: NodeList; textContent: string | null; } interface NamedNodeMap { length: number; [index: number]: Attr; } interface Attr { name: string; value: string; } interface NodeList { length: number; [index: number]: Node; } interface Node { nodeType: number; textContent: string | null; } const Node: { ELEMENT_NODE: number; TEXT_NODE: number; CDATA_SECTION_NODE: number; }; } export interface XmlToJsOptions { explicitArray?: boolean; mergeAttrs?: boolean; explicitRoot?: boolean; ignoreAttrs?: boolean; trim?: boolean; normalize?: boolean; } export declare class XmlToJsParser { private options; constructor(options?: XmlToJsOptions); /** * Parse XML string to JavaScript object (async version) */ parseString(xml: string): Promise<any>; /** * Parse XML string to JavaScript object (sync version) */ parseStringSync(xml: string): any; /** * Check if DOMParser is available (browser environment) */ private isDOMParserAvailable; /** * Browser implementation using DOMParser */ private parseInBrowser; /** * Node.js implementation using simple regex-based parser * This is a lightweight XML parser that handles most common cases */ private parseInNode; /** * Convert DOM element to JavaScript object (for browser) */ private domElementToJs; /** * Parse attribute string into object */ private parseAttributes; /** * Add text content to current element */ private addTextContent; /** * Add child element to parent */ private addChildElement; } /** * Drop-in replacement for xml2js.parseString() */ export declare function parseString(xml: string, callback?: (err: Error | null, result?: any) => void): Promise<any>; /** * Synchronous version */ export declare function parseStringSync(xml: string): any; //# sourceMappingURL=xml-to-js-parser.d.ts.map