Add types for pkg-conf@2.1 (#27284)

* Add types for pkg-conf@2.1

* Refine for tests

* Remove fixture

* Update pkg-conf-tests.ts

* Fix test

* Update pkg-conf-tests.ts
This commit is contained in:
Jorge Gonzalez 2018-07-23 13:27:19 -04:00 committed by Andy
parent 93016410a9
commit 67abbade54
4 changed files with 64 additions and 0 deletions

34
types/pkg-conf/index.d.ts vendored Normal file
View File

@ -0,0 +1,34 @@
// Type definitions for pkg-conf 2.1
// Project: https://github.com/sindresorhus/pkg-conf#readme
// Definitions by: Jorge Gonzalez <https://github.com/jorgegonzalez>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.2
declare namespace pkgConf {
type AnyJson = boolean | number | string | null | JsonArray | JsonMap;
interface JsonArray extends Array<AnyJson> { }
interface JsonMap {
[key: string]: AnyJson;
}
interface Options {
// Directory to start looking up for a package.json file.
// Default: process.cwd()
cwd?: string;
// Default config.
defaults?: object;
// Skip package.json files that have the namespaced config explicitly set to false.
skipOnFalse?: boolean;
}
// Returns the config.
function sync(namespace: string, options?: Options): JsonMap;
// Pass in the config returned from any of the above methods.
// Returns the filepath to the package.json file or null when not found.
function filepath(config: JsonMap): string | null;
}
// Returns a Promise for the config.
declare function pkgConf(namespace: string, options?: pkgConf.Options): Promise<pkgConf.JsonMap>;
export = pkgConf;

View File

@ -0,0 +1,6 @@
import pkgConf = require('pkg-conf');
pkgConf('name'); // $ExpectType Promise<JsonMap>
const config = pkgConf.sync('bugs'); // $ExpectType JsonMap
pkgConf.filepath(config); // $ExpectType string | null
config.url; // $ExpectType AnyJson

View File

@ -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",
"pkg-conf-tests.ts"
]
}

View File

@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }