diff --git a/xmlbuilder/xmlbuilder-tests.ts b/xmlbuilder/xmlbuilder-tests.ts new file mode 100644 index 000000000..bebc5f4d8 --- /dev/null +++ b/xmlbuilder/xmlbuilder-tests.ts @@ -0,0 +1,44 @@ +/// + +import xmlbuilder = require('xmlbuilder'); +var xml = xmlbuilder.create; + +// https://github.com/oozcitak/xmlbuilder-js/blob/master/test/comment.coffee +xml('comment', {}, {}, { headless: true }).comment('<>\'"&\t\n\r').end(); + +// https://github.com/oozcitak/xmlbuilder-js/blob/master/test/instructions.coffee +xml('test17', { headless: true }).ins('pi', 'mypi').end(); + +xml('test17', { headless: true }).ins({ 'pi': 'mypi', 'pi2': 'mypi2', 'pi3': null }).end(); + +xml('test17', { headless: true }).ins(['pi', 'pi2']).end(); + +xml('test18', { headless: true }) + .ins('renderCache.subset', '"Verdana" 0 0 ISO-8859-1 4 268 67 "#(),-./') + .ins('pitarget', () => 'pivalue') + .end(); + +// https://github.com/oozcitak/xmlbuilder-js/blob/master/test/createxml.coffee +xml('root') + .ele('xmlbuilder') + .att('for', 'node-js') + .com('CoffeeScript is awesome.') + .nod('repo') + .att('type', 'git') + .txt('git://github.com/oozcitak/xmlbuilder-js.git') + .up() + .up() + .ele('test') + .att('escaped', 'chars <>\'"&\t\n\r') + .txt('complete 100%<>\'"&\t\n\r') + .up() + .ele('cdata') + .cdata('this is a test\nSecond line') + .up() + .ele('raw') + .raw('&<>&') + .up() + .ele('atttest', { 'att': 'val' }, 'text') + .up() + .ele('atttest', 'text') + .end(); diff --git a/xmlbuilder/xmlbuilder.d.ts b/xmlbuilder/xmlbuilder.d.ts new file mode 100644 index 000000000..6f13452c1 --- /dev/null +++ b/xmlbuilder/xmlbuilder.d.ts @@ -0,0 +1,89 @@ +// Type definitions for xmlbuilder +// Project: https://github.com/oozcitak/xmlbuilder-js +// Definitions by: Wallymathieu +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module 'xmlbuilder' { + export = xmlbuilder; + class XMLDocType { + clone(): XMLDocType; + element(name: string, value?: Object): XMLDocType; + attList(elementName: string, attributeName: string, attributeType: string, defaultValueType?: string, defaultValue?: any): XMLDocType; + entity(name: string, value: any): XMLDocType; + pEntity(name: string, value: any): XMLDocType; + notation(name: string, value: any): XMLDocType; + cdata(value: string): XMLDocType; + comment(value: string): XMLDocType; + instruction(target: string, value: any): XMLDocType; + root(): XMLDocType; + document(): any; + toString(options?: Object, level?: Number): string; + + ele(name: string, value?: Object): XMLDocType; + att(elementName: string, attributeName: string, attributeType: string, defaultValueType?: string, defaultValue?: any): XMLDocType; + ent(name: string, value: any): XMLDocType; + pent(name: string, value: any): XMLDocType; + not(name: string, value: any): XMLDocType; + dat(value: string): XMLDocType; + com(value: string): XMLDocType; + ins(target: string, value: any): XMLDocType; + up(): XMLDocType; + doc(): any; + } + + class XMLElementOrXMLNode { + // XMLElement: + clone(): XMLElementOrXMLNode; + attribute(name: any, value?: any): XMLElementOrXMLNode; + att(name: any, value?: any): XMLElementOrXMLNode; + removeAttribute(name: string): XMLElementOrXMLNode; + instruction(target: string, value: any): XMLElementOrXMLNode; + instruction(array: Array): XMLElementOrXMLNode; + instruction(obj: Object): XMLElementOrXMLNode; + ins(target: string, value: any): XMLElementOrXMLNode; + ins(array: Array): XMLElementOrXMLNode; + ins(obj: Object): XMLElementOrXMLNode; + a(name: any, value?: any): XMLElementOrXMLNode; + i(target: string, value: any): XMLElementOrXMLNode; + i(array: Array): XMLElementOrXMLNode; + i(obj: Object): XMLElementOrXMLNode; + toString(options?:Object, level?:Number): string; + // XMLNode: + element(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; + ele(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; + insertBefore(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; + insertAfter(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; + remove(): XMLElementOrXMLNode; + node(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; + text(value: string): XMLElementOrXMLNode; + cdata(value: string): XMLElementOrXMLNode; + comment(value: string): XMLElementOrXMLNode; + raw(value: string): XMLElementOrXMLNode; + declaration(version: string, encoding: string, standalone: boolean): XMLElementOrXMLNode; + doctype(pubID: string, sysID: string): XMLDocType; + up(): XMLElementOrXMLNode; + root(): XMLElementOrXMLNode; + document(): any; + end(options?: Object): string; + prev(): XMLElementOrXMLNode; + next(): XMLElementOrXMLNode; + nod(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; + txt(value: string): XMLElementOrXMLNode; + dat(value: string): XMLElementOrXMLNode; + com(value: string): XMLElementOrXMLNode; + doc(): XMLElementOrXMLNode; + dec(version: string, encoding: string, standalone: boolean): XMLElementOrXMLNode; + dtd(pubID: string, sysID: string): XMLDocType; + e(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; + n(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; + t(value: string): XMLElementOrXMLNode; + d(value: string): XMLElementOrXMLNode; + c(value: string): XMLElementOrXMLNode; + r(value: string): XMLElementOrXMLNode; + u(): XMLElementOrXMLNode; + } + + module xmlbuilder { + function create(name: string, xmldec?: Object, doctype?: any, options?: Object): XMLElementOrXMLNode; + } +}