From 2421842822c0f83801d2af4b825bb4b3f3690584 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 20 Apr 2018 17:27:18 -0600 Subject: [PATCH 1/2] Add definitions for ace-diff --- types/ace-diff/ace-diff-tests.ts | 18 ++++++++++++ types/ace-diff/index.d.ts | 47 ++++++++++++++++++++++++++++++++ types/ace-diff/tsconfig.json | 24 ++++++++++++++++ types/ace-diff/tslint.json | 1 + 4 files changed, 90 insertions(+) create mode 100644 types/ace-diff/ace-diff-tests.ts create mode 100644 types/ace-diff/index.d.ts create mode 100644 types/ace-diff/tsconfig.json create mode 100644 types/ace-diff/tslint.json diff --git a/types/ace-diff/ace-diff-tests.ts b/types/ace-diff/ace-diff-tests.ts new file mode 100644 index 0000000000..9c9eb4cfb9 --- /dev/null +++ b/types/ace-diff/ace-diff-tests.ts @@ -0,0 +1,18 @@ +import AceDiff = require('ace-diff'); + +new AceDiff(); // $ExpectError + +const aceDiffOpts = { + element: '.acediff', + left: { content: 'left content' }, + right: { content: 'left content' }, +}; +new AceDiff(aceDiffOpts); // $ExpectType AceDiff + +const differ = new AceDiff(aceDiffOpts); + +differ.getEditors(); // $ExpectType { left: any; right: any; } +differ.setOptions(); // $ExpectType void +differ.getNumDiffs(); // $ExpectType number +differ.diff(); // $ExpectType void +differ.destroy(); // $ExpectType void diff --git a/types/ace-diff/index.d.ts b/types/ace-diff/index.d.ts new file mode 100644 index 0000000000..f381aedfed --- /dev/null +++ b/types/ace-diff/index.d.ts @@ -0,0 +1,47 @@ +// Type definitions for ace-diff 2.1 +// Project: https://ace-diff.github.io/ace-diff/ +// Definitions by: Mike Dodge +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export as namespace AceDiff; + +export = AceDiff; + +declare class AceDiff { + constructor(opts: AceDiff.AceDiffOpts); + getEditors(): { + left: any; + right: any; + }; + setOptions(): void; + getNumDiffs(): number; + diff(): void; + destroy(): void; +} +declare namespace AceDiff { + interface AceDiffLROpts { + content?: string | null; + mode?: string; + theme?: string; + editable?: boolean; + copyLinkEnabled?: boolean; + } + + interface AceDiffOpts { + element: string | HTMLElement; + mode?: string; + theme?: string; + diffGranularity?: 'specific' | 'broad'; + showDiffs?: boolean; + showConnectors?: boolean; + maxDiffs?: number; + left: AceDiffLROpts; + right: AceDiffLROpts; + classes?: { + diff: string; + connector: string; + newCodeConnectorLinkContent: string; + deletedCodeConnectorLinkContent: string; + }; + } +} diff --git a/types/ace-diff/tsconfig.json b/types/ace-diff/tsconfig.json new file mode 100644 index 0000000000..00fb70bbcd --- /dev/null +++ b/types/ace-diff/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "ace-diff-tests.ts" + ] +} diff --git a/types/ace-diff/tslint.json b/types/ace-diff/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/ace-diff/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From c326abb53bce78217cd74fe9f400ffdedcaa2d9b Mon Sep 17 00:00:00 2001 From: Michael Dodge Date: Wed, 2 May 2018 17:05:37 -0600 Subject: [PATCH 2/2] Fix missing setOptions arg --- types/ace-diff/ace-diff-tests.ts | 14 +++++++++----- types/ace-diff/index.d.ts | 15 ++++++++++----- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/types/ace-diff/ace-diff-tests.ts b/types/ace-diff/ace-diff-tests.ts index 9c9eb4cfb9..52e64589a3 100644 --- a/types/ace-diff/ace-diff-tests.ts +++ b/types/ace-diff/ace-diff-tests.ts @@ -2,17 +2,21 @@ import AceDiff = require('ace-diff'); new AceDiff(); // $ExpectError -const aceDiffOpts = { +const aceDiffConstructorOpts = { element: '.acediff', left: { content: 'left content' }, - right: { content: 'left content' }, + right: { content: 'right content' }, }; -new AceDiff(aceDiffOpts); // $ExpectType AceDiff +new AceDiff(aceDiffConstructorOpts); // $ExpectType AceDiff -const differ = new AceDiff(aceDiffOpts); +const differ = new AceDiff(aceDiffConstructorOpts); differ.getEditors(); // $ExpectType { left: any; right: any; } -differ.setOptions(); // $ExpectType void +differ.setOptions(); // $ExpectError +const aceDiffOpts = { + diffGranularity: 'broad' as 'broad', // workaround: cast to avoid https://github.com/Microsoft/TypeScript/issues/11465#issuecomment-252453037 +}; +differ.setOptions(aceDiffOpts); // $ExpectType void differ.getNumDiffs(); // $ExpectType number differ.diff(); // $ExpectType void differ.destroy(); // $ExpectType void diff --git a/types/ace-diff/index.d.ts b/types/ace-diff/index.d.ts index f381aedfed..b59b3d25e2 100644 --- a/types/ace-diff/index.d.ts +++ b/types/ace-diff/index.d.ts @@ -8,12 +8,12 @@ export as namespace AceDiff; export = AceDiff; declare class AceDiff { - constructor(opts: AceDiff.AceDiffOpts); + constructor(opts: AceDiff.AceDiffConstructorOpts); getEditors(): { left: any; right: any; }; - setOptions(): void; + setOptions(options: AceDiff.AceDiffOpts): void; getNumDiffs(): number; diff(): void; destroy(): void; @@ -27,16 +27,21 @@ declare namespace AceDiff { copyLinkEnabled?: boolean; } - interface AceDiffOpts { + interface AceDiffConstructorOpts extends AceDiffOpts { element: string | HTMLElement; + left: AceDiffLROpts; + right: AceDiffLROpts; + } + + interface AceDiffOpts { mode?: string; theme?: string; diffGranularity?: 'specific' | 'broad'; showDiffs?: boolean; showConnectors?: boolean; maxDiffs?: number; - left: AceDiffLROpts; - right: AceDiffLROpts; + left?: AceDiffLROpts; + right?: AceDiffLROpts; classes?: { diff: string; connector: string;