Add registry-auth-token (#27285)

* Add registry-auth-token

* Fix: type definitions header

* Fix: Change Typescript version: 2.8

* Fix: Clean-up test cases
This commit is contained in:
Joseph Carroll
2018-07-23 11:53:59 -04:00
committed by Andy
parent 92f7e2f8d1
commit 04a282b63f
4 changed files with 111 additions and 0 deletions

70
types/registry-auth-token/index.d.ts vendored Normal file
View File

@@ -0,0 +1,70 @@
// Type definitions for Registry Auth Token 3.3
// Project: https://github.com/rexxars/registry-auth-token
// Definitions by: Maurice de Beijer <https://github.com/mauricedb>
// James Liang <https://github.com/LiangZugeng>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8
/**
* Simple namespace describing the inputs and outputs for `registry-auth-token`
*/
declare namespace auth {
/**
* The options for passing into `registry-auth-token`
*/
interface AuthOptions {
/**
* Wether or not url's path parts are recursively trimmed from the registry
* url when searching for tokens
*/
recursive?: boolean;
/**
* An npmrc configuration object used when searching for tokens. If no object is provided,
* the `.npmrc` file at the base of the project is used.
*/
npmrc?: {
/**
* A registry url used for matching
*/
registry?: string;
/**
* Registry url's with token information
*/
[registryUrls: string]: string;
};
}
/**
* The generated authentication information
*/
interface NpmCredentials {
/**
* The token representing the users credentials
*/
token: string;
/**
* The type of token
*/
type: 'Basic'|'Bearer';
/**
* The username used in `Basic`
*/
username?: string;
/**
* The password used in `Basic`
*/
password?: string;
}
}
/**
*
* @param registryUrl - Either the registry url used
* for matching or a configuration object describing the contents of the .npmrc file
* @param [options] - a configuration object describing the
* contents of the .npmrc file. If an `npmrc` config object was passed in as the
* first parameter, this parameter is ignored.
* @returns The `NpmCredentials` object or undefined if no match found.
*/
declare function auth(registryUrl: string | auth.AuthOptions, options?: auth.AuthOptions): auth.NpmCredentials;
export = auth;

View File

@@ -0,0 +1,15 @@
import * as authToken from 'registry-auth-token';
// $ExpectType NpmCredentials
authToken('url');
// $ExpectType NpmCredentials
authToken({ recursive: true });
// $ExpectType NpmCredentials
authToken({ npmrc: { url: 'value' } });
// $ExpectType NpmCredentials
authToken({ npmrc: { registry: 'url' } });
// $ExpectType NpmCredentials
authToken('url', { npmrc: { url: 'value' } });
// $ExpectError
authToken();

View File

@@ -0,0 +1,23 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": false,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"registry-auth-token-tests.ts"
]
}

View File

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