diff --git a/types/filter-console/filter-console-tests.ts b/types/filter-console/filter-console-tests.ts new file mode 100644 index 0000000000..18bb766d32 --- /dev/null +++ b/types/filter-console/filter-console-tests.ts @@ -0,0 +1,8 @@ +import filterConsole = require('filter-console'); + +const disableFilter = filterConsole(['🐼']); +disableFilter; // $ExpectType () => void +filterConsole([/🐼/]); +filterConsole([input => input === '🐼']); + +disableFilter(); diff --git a/types/filter-console/index.d.ts b/types/filter-console/index.d.ts new file mode 100644 index 0000000000..58ee621211 --- /dev/null +++ b/types/filter-console/index.d.ts @@ -0,0 +1,44 @@ +// Type definitions for filter-console 0.1 +// Project: https://github.com/sindresorhus/filter-console#readme +// Definitions by: BendingBender +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.1 + +/// + +export = filterConsole; + +/** + * Filter out unwanted `console.log()` output. + * Can be useful when you don't control the output, for example, filtering out PropType warnings from a + * third-party React component. + * + * @param excludePatterns Console output that matches any of the given patterns are filtered from being logged. + * The patterns are matched against what would be logged and not the `console` method input arguments directly. + * Meaning an exclude pattern of `'foo bar'` will match `console.log('foo %s', 'bar')`. + * @returns A function, which when called, disables the filter. + */ +declare function filterConsole( + excludePatterns: Array boolean)>, + options?: filterConsole.Options +): () => void; + +declare namespace filterConsole { + interface Options { + /** + * Console methods to filter. + * @default ['log', 'debug', 'info', 'warn', 'error'] + */ + methods?: Array<'log' | 'debug' | 'info' | 'warn' | 'error'>; + + /** + * Use a custom `console` object. Can be useful for testing or mocking. + */ + console?: Console; + } + + type Console = Record< + 'log' | 'debug' | 'info' | 'warn' | 'error', + (message?: any, ...optionalParams: any[]) => void + >; +} diff --git a/types/filter-console/tsconfig.json b/types/filter-console/tsconfig.json new file mode 100644 index 0000000000..34ed881aab --- /dev/null +++ b/types/filter-console/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "filter-console-tests.ts" + ] +} diff --git a/types/filter-console/tslint.json b/types/filter-console/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/filter-console/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }