UNPKG

@selenite/commons

Version:

This typescript package provides a set of frequently used utilities, types and svelte actions for building projects with Typescript and Svelte.

63 lines (62 loc) 2.16 kB
/** * Utils to parse, format and write XML. * @module */ import type { XmlSchema } from './xsd'; export declare function parseXMLArray(xml: string): unknown[] | undefined; export declare function formatXMLArray(arr: unknown[]): string; declare function parseXml(xml: string): ParsedXmlNodes; export declare function buildXml({ parsedXml, indent, baseSpace, cursorTag, endWithNewLine }: { parsedXml: ParsedXmlNodes; indent?: number; baseSpace?: string; cursorTag?: string; endWithNewLine?: boolean; }): string; export declare function getElementFromParsedXml(xml: Record<string, unknown>): string | null; /** * Returns the different paths to the possible merge positions * @param param0 * @returns */ export declare function findPossibleMergePositions({ baseXml, element, typesPaths, cursorTag }: { baseXml: ParsedXmlNodes; element: string; typesPaths: XmlSchema['typePaths']; cursorTag?: string; }): { path: { pos: number; key: string; }[]; withCursor: boolean; }[]; export declare function getXmlAttributes(xml: { [key: string]: ParsedXmlNodes | ParsedXmlNode[] | ParsedXmlAttribute | undefined; ':@'?: ParsedXmlAttribute | undefined; }): Record<string, string>; export declare function mergeParsedXml({ baseXml, newXml, typesPaths, cursorTag }: { baseXml: ParsedXmlNodes; newXml: ParsedXmlNodes; cursorTag?: string; typesPaths: XmlSchema['typePaths']; }): ParsedXmlNodes; declare function formatXml({ xml, indent }: { xml: string; indent?: number; }): string; declare function formatComment(comment: string): string; type ParsedXmlAttribute = Record<string, string>; type ParsedXmlNode = { '#text'?: string; [key: string]: ParsedXmlAttribute | Array<ParsedXmlNode> | string | undefined; }; type parsedXmlComment = { '#comment': string; }; type ParsedXmlNodes = Array<parsedXmlComment | { ':@'?: ParsedXmlAttribute; [key: string]: ParsedXmlNodes | Array<ParsedXmlNode> | ParsedXmlAttribute | undefined; }>; export type { ParsedXmlNodes, ParsedXmlNode, parsedXmlComment, ParsedXmlAttribute }; export { parseXml, formatXml, formatComment };