From 781d64651c1ffc45635eacc1c1e24dbb75b67d06 Mon Sep 17 00:00:00 2001 From: Morgan Benton Date: Thu, 17 Nov 2016 19:42:07 -0500 Subject: [PATCH] added defs for codependency --- codependency/codependency-tests.ts | 11 +++++++++++ codependency/index.d.ts | 29 +++++++++++++++++++++++++++++ codependency/package.json | 5 +++++ codependency/tsconfig.json | 19 +++++++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 codependency/codependency-tests.ts create mode 100644 codependency/index.d.ts create mode 100644 codependency/package.json create mode 100644 codependency/tsconfig.json diff --git a/codependency/codependency-tests.ts b/codependency/codependency-tests.ts new file mode 100644 index 0000000000..46f2db8d6d --- /dev/null +++ b/codependency/codependency-tests.ts @@ -0,0 +1,11 @@ +/// +/// + +let requirePeer = codependency.register(module), package: any; + requirePeer = codependency.register(module, {index: ["dependencies", "devDependencies"]}); + requirePeer = codependency.get("some-middleware"); + package = requirePeer("some-peer-dependency-package"); + package = requirePeer("some-peer-dependency-package", {optional: true}); + package = requirePeer("some-peer-dependency-package", {dontThrow: true}); + package = requirePeer("some-peer-dependency-package", {optional: true, dontThrow: true}); + package = requirePeer.resolve("peer-package-name"); \ No newline at end of file diff --git a/codependency/index.d.ts b/codependency/index.d.ts new file mode 100644 index 0000000000..0376bee4bb --- /dev/null +++ b/codependency/index.d.ts @@ -0,0 +1,29 @@ +// Type definitions for codependency v0.1.3 +// Project: https://github.com/Wizcorp/codependency +// Definitions by: Morgan Benton +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +export as namespace codependency; + +interface DependencyInfo { + supportedRange: string|null; + installedVersion: string|null; + isInstalled: boolean|null; + isValid: boolean|null; + pkgPath: string; +} + +interface RequirePeerFunctionOptions { + optional?: boolean; + dontThrow?: boolean; +} + +interface RequirePeerFunction { + (name: string, options?: RequirePeerFunctionOptions): any; + resolve: (name: string) => DependencyInfo; +} + +export function register(baseModule: NodeModule, options?: {index: string[]}): RequirePeerFunction; +export function get(middlewareName: string): RequirePeerFunction; \ No newline at end of file diff --git a/codependency/package.json b/codependency/package.json new file mode 100644 index 0000000000..2fa5bde2e9 --- /dev/null +++ b/codependency/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "@types/node": "^6.0.0" + } +} \ No newline at end of file diff --git a/codependency/tsconfig.json b/codependency/tsconfig.json new file mode 100644 index 0000000000..34636ce3d3 --- /dev/null +++ b/codependency/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "codependency-tests.ts" + ] +} \ No newline at end of file