From 97c71bc7cb1419a480b8d626d405cb0a06a81aa9 Mon Sep 17 00:00:00 2001 From: Max Boguslavsky <521205+maxbogus@users.noreply.github.com> Date: Fri, 27 Sep 2019 18:40:55 +0300 Subject: [PATCH] Added typing for xml-c14n (#38634) * added xml-c14n typing * reworked tests; added test run to package.json * formatting fix * removed package.json * added info * fixed errors * rewrote typing * reworked version * added compile flag * corrected export * corrected export * corrected tsconfig * set noImplicitAny to false * set other options to false * returned back options which were turned off by mistake * fixed typing according to review comment --- types/xml-c14n/index.d.ts | 31 +++++++++++++++++++++++++++++++ types/xml-c14n/tsconfig.json | 25 +++++++++++++++++++++++++ types/xml-c14n/tslint.json | 1 + types/xml-c14n/xml-c14n-tests.ts | 5 +++++ 4 files changed, 62 insertions(+) create mode 100644 types/xml-c14n/index.d.ts create mode 100644 types/xml-c14n/tsconfig.json create mode 100644 types/xml-c14n/tslint.json create mode 100644 types/xml-c14n/xml-c14n-tests.ts diff --git a/types/xml-c14n/index.d.ts b/types/xml-c14n/index.d.ts new file mode 100644 index 0000000000..5ac65b05e3 --- /dev/null +++ b/types/xml-c14n/index.d.ts @@ -0,0 +1,31 @@ +// Type definitions for xml-c14n 0.0 +// Project: https://github.com/deoxxa/xml-c14n +// Definitions by: Konstantin Yuriev +// Max Boguslavskiy +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.7 + +declare namespace xml_c14n { + type canonicaliseCb = (err: any, data: string) => void; + + interface Options { + includeComments?: boolean; + inclusiveNamespaces?: boolean; + } + + interface Canonicalize { + name(): string; + _processInner(node: Node): string; + canonicalise(node: Node, cb: canonicaliseCb): void; + } + + interface CanonizationFactory { + createCanonicaliser(kind: string, options?: Options): Canonicalize; + getAlgorithm(uri: string): any; + registerAlgorithm(uri: string, implementation: any): any; + } +} + +declare function xml_c14n(): xml_c14n.CanonizationFactory; + +export = xml_c14n; diff --git a/types/xml-c14n/tsconfig.json b/types/xml-c14n/tsconfig.json new file mode 100644 index 0000000000..bee18a373b --- /dev/null +++ b/types/xml-c14n/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "esModuleInterop": true, + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "xml-c14n-tests.ts" + ] +} diff --git a/types/xml-c14n/tslint.json b/types/xml-c14n/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/xml-c14n/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/xml-c14n/xml-c14n-tests.ts b/types/xml-c14n/xml-c14n-tests.ts new file mode 100644 index 0000000000..850e0c6aa1 --- /dev/null +++ b/types/xml-c14n/xml-c14n-tests.ts @@ -0,0 +1,5 @@ +import c14n from 'xml-c14n'; + +const canonizer = c14n().createCanonicaliser( + 'http://www.w3.org/2001/10/xml-exc-c14n#', +);