diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..2dbf6af --- /dev/null +++ b/index.d.ts @@ -0,0 +1,37 @@ +declare namespace ansiRegex { + interface Options { + /** + Match only the first ANSI escape. + + @default false + */ + onlyFirst: boolean; + } +} + +/** +Regular expression for matching ANSI escape codes. + +@example +``` +import ansiRegex = require('ansi-regex'); + +ansiRegex().test('\u001B[4mcake\u001B[0m'); +//=> true + +ansiRegex().test('cake'); +//=> false + +'\u001B[4mcake\u001B[0m'.match(ansiRegex()); +//=> ['\u001B[4m', '\u001B[0m'] + +'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true})); +//=> ['\u001B[4m'] + +'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex()); +//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007'] +``` +*/ +declare function ansiRegex(options?: ansiRegex.Options): RegExp; + +export = ansiRegex; diff --git a/index.test-d.ts b/index.test-d.ts new file mode 100644 index 0000000..77fed65 --- /dev/null +++ b/index.test-d.ts @@ -0,0 +1,5 @@ +import {expectType} from 'tsd'; +import ansiRegex from '.'; + +expectType(ansiRegex()); +expectType(ansiRegex({onlyFirst: true})); diff --git a/package.json b/package.json index 713ecfc..0717ee9 100644 --- a/package.json +++ b/package.json @@ -13,11 +13,12 @@ "node": ">=8" }, "scripts": { - "test": "xo && ava", + "test": "xo && ava && tsd", "view-supported": "node fixtures/view-codes.js" }, "files": [ - "index.js" + "index.js", + "index.d.ts" ], "keywords": [ "ansi", @@ -48,6 +49,7 @@ ], "devDependencies": { "ava": "^1.4.1", + "tsd": "^0.9.0", "xo": "^0.24.0" } }