UNPKG

enketo-transformer

Version:

Library that transforms ODK-compliant XForms into a format that Enketo can consume

1 lines 1.7 kB
{"version":3,"file":"XSLTProcessor.cjs","sources":["../../../../src/dom/node/XSLTProcessor.ts"],"sourcesContent":["import type { Document } from 'libxmljs';\nimport { parse } from 'libxslt';\nimport type { XSLTStylesheet } from 'libxslt';\nimport type { DOM } from '../abstract';\n\n/** @package */\nexport class XSLTProcessor {\n private parameters: Record<string, unknown> = {};\n\n private stylesheet: XSLTStylesheet | null = null;\n\n importStylesheet(xsltDoc: DOM.Document) {\n try {\n this.stylesheet = parse(xsltDoc as Document);\n } catch (error) {\n console.error(error, 'xsl', xsltDoc.toString());\n throw error;\n }\n }\n\n reset() {\n this.parameters = {};\n this.stylesheet = null;\n }\n\n setParameter(_namespaceURI: string | null, name: string, value: unknown) {\n this.parameters[name] = value;\n }\n\n transformToDocument(xmlDoc: DOM.Document) {\n if (this.stylesheet == null) {\n throw new Error('`importStylesheet` must be called.');\n }\n\n return this.stylesheet.apply(xmlDoc as Document, this.parameters);\n }\n}\n"],"names":["parse"],"mappings":";;;AAMO,MAAM,cAAc;AAAA,EAApB,cAAA;AACH,SAAQ,aAAsC;AAE9C,SAAQ,aAAoC;AAAA,EAAA;AAAA,EAE5C,iBAAiB,SAAuB;AAChC,QAAA;AACK,WAAA,aAAaA,cAAM,OAAmB;AAAA,aACtC,OAAO;AACZ,cAAQ,MAAM,OAAO,OAAO,QAAQ,UAAU;AACxC,YAAA;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,QAAQ;AACJ,SAAK,aAAa;AAClB,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,aAAa,eAA8B,MAAc,OAAgB;AAChE,SAAA,WAAW,IAAI,IAAI;AAAA,EAC5B;AAAA,EAEA,oBAAoB,QAAsB;AAClC,QAAA,KAAK,cAAc,MAAM;AACnB,YAAA,IAAI,MAAM,oCAAoC;AAAA,IACxD;AAEA,WAAO,KAAK,WAAW,MAAM,QAAoB,KAAK,UAAU;AAAA,EACpE;AACJ;;"}