From 1051a46058fcba8ed7d481dcc7f30ef78bb93cd6 Mon Sep 17 00:00:00 2001
From: Dimitri Benin <BendingBender@users.noreply.github.com>
Date: Thu, 4 Apr 2019 04:53:54 +0000
Subject: [PATCH] Refactor TypeScript definition to CommonJS compatible export
 (#13)

---
 index.d.ts      | 25 +++++++++++++++++++++----
 index.js        |  1 +
 index.test-d.ts |  4 ++--
 package.json    | 16 ++++++++--------
 4 files changed, 32 insertions(+), 14 deletions(-)

diff --git a/index.d.ts b/index.d.ts
index 770bd73..571833a 100644
--- a/index.d.ts
+++ b/index.d.ts
@@ -1,4 +1,21 @@
-/**
- * Measure the difference between two strings.
- */
-export default function leven(left: string, right: string): number;
+declare const leven: {
+	/**
+	Measure the difference between two strings.
+
+	@example
+	```
+	import leven = require('leven');
+
+	leven('cat', 'cow');
+	//=> 2
+	```
+	*/
+	(left: string, right: string): number;
+
+	// TODO: Remove this for the next major release, refactor the whole definition to:
+	// declare function leven(left: string, right: string): number;
+	// export = leven;
+	default: typeof leven;
+};
+
+export = leven;
diff --git a/index.js b/index.js
index af176a0..25f5a3d 100644
--- a/index.js
+++ b/index.js
@@ -73,4 +73,5 @@ const leven = (left, right) => {
 };
 
 module.exports = leven;
+// TODO: Remove this for the next major release
 module.exports.default = leven;
diff --git a/index.test-d.ts b/index.test-d.ts
index b218df8..79b7ca2 100644
--- a/index.test-d.ts
+++ b/index.test-d.ts
@@ -1,4 +1,4 @@
-import {expectType} from 'tsd-check';
-import leven from '.';
+import {expectType} from 'tsd';
+import leven = require('.');
 
 expectType<number>(leven('kitten', 'sitting'));
diff --git a/package.json b/package.json
index 3ae5056..579aa6f 100644
--- a/package.json
+++ b/package.json
@@ -13,7 +13,7 @@
 		"node": ">=6"
 	},
 	"scripts": {
-		"test": "xo && ava && tsd-check",
+		"test": "xo && ava && tsd",
 		"bench": "matcha bench.js"
 	},
 	"files": [
@@ -41,17 +41,17 @@
 		"matching"
 	],
 	"devDependencies": {
-		"ava": "^1.3.1",
-		"fast-levenshtein": "^2.0.5",
+		"ava": "^1.4.1",
+		"fast-levenshtein": "^2.0.6",
 		"ld": "^0.1.0",
-		"levdist": "^2.0.0",
-		"levenshtein": "^1.0.4",
-		"levenshtein-component": "0.0.1",
-		"levenshtein-edit-distance": "^2.0.0",
+		"levdist": "^2.2.9",
+		"levenshtein": "^1.0.5",
+		"levenshtein-component": "^0.0.1",
+		"levenshtein-edit-distance": "^2.0.3",
 		"matcha": "^0.7.0",
 		"natural": "^0.6.3",
 		"talisman": "^0.21.0",
-		"tsd-check": "^0.3.0",
+		"tsd": "^0.7.2",
 		"xo": "^0.24.0"
 	}
 }