From 378af1c8192309ec52250daa448fe65071f00070 Mon Sep 17 00:00:00 2001 From: Dimitri Benin Date: Wed, 12 Dec 2018 17:35:15 +0100 Subject: [PATCH 1/2] Move old version to sub-dir --- types/subsume/{ => v1}/index.d.ts | 0 types/subsume/{ => v1}/subsume-tests.ts | 0 types/subsume/{ => v1}/tsconfig.json | 11 ++++++++--- types/subsume/{ => v1}/tslint.json | 0 4 files changed, 8 insertions(+), 3 deletions(-) rename types/subsume/{ => v1}/index.d.ts (100%) rename types/subsume/{ => v1}/subsume-tests.ts (100%) rename types/subsume/{ => v1}/tsconfig.json (74%) rename types/subsume/{ => v1}/tslint.json (100%) diff --git a/types/subsume/index.d.ts b/types/subsume/v1/index.d.ts similarity index 100% rename from types/subsume/index.d.ts rename to types/subsume/v1/index.d.ts diff --git a/types/subsume/subsume-tests.ts b/types/subsume/v1/subsume-tests.ts similarity index 100% rename from types/subsume/subsume-tests.ts rename to types/subsume/v1/subsume-tests.ts diff --git a/types/subsume/tsconfig.json b/types/subsume/v1/tsconfig.json similarity index 74% rename from types/subsume/tsconfig.json rename to types/subsume/v1/tsconfig.json index b29ec71ee8..0e0565e161 100644 --- a/types/subsume/tsconfig.json +++ b/types/subsume/v1/tsconfig.json @@ -8,10 +8,15 @@ "noImplicitThis": true, "strictNullChecks": true, "strictFunctionTypes": true, - "baseUrl": "../", + "baseUrl": "../../", "typeRoots": [ - "../" + "../../" ], + "paths": { + "subsume": [ + "subsume/v1" + ] + }, "types": [], "noEmit": true, "forceConsistentCasingInFileNames": true @@ -20,4 +25,4 @@ "index.d.ts", "subsume-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/subsume/tslint.json b/types/subsume/v1/tslint.json similarity index 100% rename from types/subsume/tslint.json rename to types/subsume/v1/tslint.json From 0756b69da9a1a1562d1bc5ffd9dbc1e19718c53d Mon Sep 17 00:00:00 2001 From: Dimitri Benin Date: Wed, 12 Dec 2018 18:36:46 +0100 Subject: [PATCH 2/2] Add types for subsume v2 --- types/subsume/index.d.ts | 32 ++++++++++++++++++++++++++++++++ types/subsume/subsume-tests.ts | 30 ++++++++++++++++++++++++++++++ types/subsume/tsconfig.json | 23 +++++++++++++++++++++++ types/subsume/tslint.json | 1 + 4 files changed, 86 insertions(+) create mode 100644 types/subsume/index.d.ts create mode 100644 types/subsume/subsume-tests.ts create mode 100644 types/subsume/tsconfig.json create mode 100644 types/subsume/tslint.json diff --git a/types/subsume/index.d.ts b/types/subsume/index.d.ts new file mode 100644 index 0000000000..e42c97cd4f --- /dev/null +++ b/types/subsume/index.d.ts @@ -0,0 +1,32 @@ +// Type definitions for subsume 2.0 +// Project: https://github.com/sindresorhus/subsume#readme +// Definitions by: BendingBender +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export = Subsume; + +declare class Subsume { + static parse(text: string, id: string): Subsume.ParseResult; + static parseAll(text: string, ids?: string[]): Subsume.ParseResults; + + id: string; + prefix: string; + postfix: string; + regex: RegExp; + + constructor(id?: string); + compose(text: string): string; + parse(text: string): Subsume.ParseResult; +} + +declare namespace Subsume { + interface ParseResult { + data?: string; + rest: string; + } + + interface ParseResults { + data: Map; + rest: string; + } +} diff --git a/types/subsume/subsume-tests.ts b/types/subsume/subsume-tests.ts new file mode 100644 index 0000000000..56234d275b --- /dev/null +++ b/types/subsume/subsume-tests.ts @@ -0,0 +1,30 @@ +import Subsume = require('subsume'); + +const subsume = new Subsume(); +new Subsume('foo'); + +subsume.id; // $ExpectType string +subsume.prefix; // $ExpectType string +subsume.postfix; // $ExpectType string +subsume.regex; // $ExpectType RegExp + +const text = subsume.compose('🦄'); +text; // $ExpectType string + +const output = `some${text} random text`; + +const res = subsume.parse(output); +res; // $ExpectType ParseResult +res.data; // $ExpectType string | undefined +res.rest; // $ExpectType string + +const input = + 'some@@[7febcd0b3806fbc48c01d7cea4ed1219]@@🦄##[7febcd0b3806fbc48c01d7cea4ed1219]## random text'; +Subsume.parse(input, '7febcd0b3806fbc48c01d7cea4ed1219'); // $ExpectType ParseResult + +const input2 = + 'some@@[7febcd0b3806fbc48c01d7cea4ed1219]@@🦄##[7febcd0b3806fbc48c01d7cea4ed1219]## ' + + 'random@@[7febcd0b3806fbc48c01d7cea4ed1218]@@🦄##[7febcd0b3806fbc48c01d7cea4ed1218]## ' + + 'text@@[7febcd0b3806fbc48c01d7cea4ed1217]@@🦄##[7febcd0b3806fbc48c01d7cea4ed1217]##'; +Subsume.parseAll(input2); // $ExpectType ParseResults +Subsume.parseAll(input2, ['7febcd0b3806fbc48c01d7cea4ed1219']); // $ExpectType ParseResults diff --git a/types/subsume/tsconfig.json b/types/subsume/tsconfig.json new file mode 100644 index 0000000000..7eefbf76e9 --- /dev/null +++ b/types/subsume/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", + "subsume-tests.ts" + ] +} diff --git a/types/subsume/tslint.json b/types/subsume/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/subsume/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }