From a9f98e02bb4a56bb5d9d9d8a5c95aa78a70ea47f Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Wed, 11 Sep 2019 18:05:20 +0200 Subject: [PATCH] refactor: port message to typescript (#765) * refactor: port message to typescript * refactor(message): add strict input typing --- @commitlint/message/package.json | 33 ++----------------- @commitlint/message/src/index.test.js | 14 -------- @commitlint/message/src/index.test.ts | 15 +++++++++ .../message/src/{index.js => index.ts} | 2 +- @commitlint/message/tsconfig.json | 15 +++++++++ tsconfig.json | 1 + 6 files changed, 35 insertions(+), 45 deletions(-) delete mode 100644 @commitlint/message/src/index.test.js create mode 100644 @commitlint/message/src/index.test.ts rename @commitlint/message/src/{index.js => index.ts} (52%) create mode 100644 @commitlint/message/tsconfig.json diff --git a/@commitlint/message/package.json b/@commitlint/message/package.json index 1eaec292df..e839c7a03b 100644 --- a/@commitlint/message/package.json +++ b/@commitlint/message/package.json @@ -3,35 +3,13 @@ "version": "8.1.0", "description": "Lint your commit messages", "main": "lib/index.js", + "types": "lib/index.d.ts", "files": [ "lib/" ], "scripts": { - "build": "cross-env NODE_ENV=production babel src --out-dir lib --source-maps", "deps": "dep-check", - "pkg": "pkg-check", - "start": "concurrently \"ava -c 4 --verbose --watch\" \"yarn run watch\"", - "test": "ava -c 4 --verbose", - "watch": "babel src --out-dir lib --watch --source-maps" - }, - "ava": { - "files": [ - "src/**/*.test.js", - "!lib/**/*" - ], - "source": [ - "src/**/*.js", - "!lib/**/*" - ], - "babel": "inherit", - "require": [ - "babel-register" - ] - }, - "babel": { - "presets": [ - "babel-preset-commitlint" - ] + "pkg": "pkg-check" }, "engines": { "node": ">=4" @@ -58,11 +36,6 @@ "devDependencies": { "@commitlint/test": "8.0.0", "@commitlint/utils": "^8.1.0", - "ava": "0.22.0", - "babel-cli": "6.26.0", - "babel-preset-commitlint": "^8.0.0", - "babel-register": "6.26.0", - "concurrently": "3.6.1", - "cross-env": "5.1.1" + "typescript": "3.5.3" } } diff --git a/@commitlint/message/src/index.test.js b/@commitlint/message/src/index.test.js deleted file mode 100644 index 3201a64679..0000000000 --- a/@commitlint/message/src/index.test.js +++ /dev/null @@ -1,14 +0,0 @@ -import test from 'ava'; -import message from '.'; - -test('should return an empty string for empty input', t => { - t.deepEqual(message(), ''); -}); - -test('should return an empty string for empty input array', t => { - t.deepEqual(message([]), ''); -}); - -test('should filter falsy values', t => { - t.deepEqual(message([null, 'some', null, 'message', null]), 'some message'); -}); diff --git a/@commitlint/message/src/index.test.ts b/@commitlint/message/src/index.test.ts new file mode 100644 index 0000000000..04c74201fa --- /dev/null +++ b/@commitlint/message/src/index.test.ts @@ -0,0 +1,15 @@ +import message from '.'; + +test('should return an empty string for empty input', () => { + expect(message()).toBe(''); +}); + +test('should return an empty string for empty input array', () => { + expect(message([])).toBe(''); +}); + +test('should filter falsy values', () => { + expect(message([null, 'some', undefined, 'message', null])).toBe( + 'some message' + ); +}); diff --git a/@commitlint/message/src/index.js b/@commitlint/message/src/index.ts similarity index 52% rename from @commitlint/message/src/index.js rename to @commitlint/message/src/index.ts index 1dfdbd87df..6eabef8197 100644 --- a/@commitlint/message/src/index.js +++ b/@commitlint/message/src/index.ts @@ -1,5 +1,5 @@ export default message; -function message(input = []) { +function message(input: (string | null | undefined)[] = []) { return input.filter(Boolean).join(' '); } diff --git a/@commitlint/message/tsconfig.json b/@commitlint/message/tsconfig.json new file mode 100644 index 0000000000..f4a57643f0 --- /dev/null +++ b/@commitlint/message/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.shared.json", + "compilerOptions": { + "composite": true, + "rootDir": "./src", + "outDir": "./lib" + }, + "include": [ + "./src" + ], + "exclude": [ + "./src/**/*.test.ts", + "./lib/**/*" + ] +} diff --git a/tsconfig.json b/tsconfig.json index e710a7f3bd..02b03b0b40 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,7 @@ { "path": "@commitlint/execute-rule" }, { "path": "@commitlint/format" }, { "path": "@commitlint/is-ignored" }, + { "path": "@commitlint/message" }, { "path": "@commitlint/parse" }, { "path": "@commitlint/resolve-extends" }, { "path": "@commitlint/to-lines" },