diff --git a/types/eslint-plugin-prettier/eslint-plugin-prettier-tests.ts b/types/eslint-plugin-prettier/eslint-plugin-prettier-tests.ts new file mode 100644 index 0000000000..33f8491e90 --- /dev/null +++ b/types/eslint-plugin-prettier/eslint-plugin-prettier-tests.ts @@ -0,0 +1,28 @@ +import * as utils from 'eslint-plugin-prettier'; + +declare function log(...args: Array): void; + +utils.showInvisibles(' some string '); + +utils.generateDifferences('abc', 'def').forEach(difference => { + const { + operation, + offset, + deleteText = '', + insertText = '', + } = difference; + + switch (operation) { + case utils.DifferenceOperation.Delete: + log('delete', offset, deleteText); + break; + case utils.DifferenceOperation.Insert: + log('insert', offset, insertText); + break; + case utils.DifferenceOperation.Replace: + log('replace', offset, insertText, deleteText); + break; + default: + throw new Error(`Unexpected operation: '${operation}'`); + } +}); diff --git a/types/eslint-plugin-prettier/index.d.ts b/types/eslint-plugin-prettier/index.d.ts new file mode 100644 index 0000000000..c8da549405 --- /dev/null +++ b/types/eslint-plugin-prettier/index.d.ts @@ -0,0 +1,36 @@ +// Type definitions for eslint-plugin-prettier 2.2 +// Project: https://github.com/prettier/eslint-plugin-prettier +// Definitions by: Ika +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.4 + +/** + * Converts invisible characters to a commonly recognizable visible form. + * @param str The string with invisibles to convert. + */ +export function showInvisibles(str: string): string; + +/** + * Generate results for differences between source code and formatted version. + * @param source The original source. + * @param formatted The formatted source. + */ +export function generateDifferences( + source: string, + formatted: string, +): Difference[]; + +export interface Difference { + operation: DifferenceOperation; + offset: number; + insertText?: string; + deleteText?: string; +} + +export const enum DifferenceOperation { + Insert = 'insert', + Delete = 'delete', + Replace = 'replace', +} + +export const rules: any; diff --git a/types/eslint-plugin-prettier/tsconfig.json b/types/eslint-plugin-prettier/tsconfig.json new file mode 100644 index 0000000000..17f2f98666 --- /dev/null +++ b/types/eslint-plugin-prettier/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": ["index.d.ts", "eslint-plugin-prettier-tests.ts"] +} diff --git a/types/eslint-plugin-prettier/tslint.json b/types/eslint-plugin-prettier/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/eslint-plugin-prettier/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }