mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-06 07:47:04 +00:00
Vendored
+39
@@ -0,0 +1,39 @@
|
||||
// Type definitions for psl 1.1
|
||||
// Project: https://github.com/wrangr/psl#readme
|
||||
// Definitions by: BendingBender <https://github.com/BendingBender>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.1
|
||||
|
||||
export as namespace psl;
|
||||
|
||||
export function parse(domain: string): ParsedDomain | ParseError;
|
||||
|
||||
export function get(domain: null | undefined): null;
|
||||
export function get(domain: string): string | null;
|
||||
|
||||
export function isValid(domain: string): boolean;
|
||||
|
||||
export interface ParsedDomain {
|
||||
tld: string | null;
|
||||
sld: string | null;
|
||||
domain: string | null;
|
||||
subdomain: string | null;
|
||||
listed: boolean;
|
||||
input: string;
|
||||
error: undefined;
|
||||
}
|
||||
|
||||
export interface ParseError {
|
||||
input: string;
|
||||
error: {
|
||||
code:
|
||||
| 'DOMAIN_TOO_SHORT'
|
||||
| 'DOMAIN_TOO_LONG'
|
||||
| 'LABEL_STARTS_WITH_DASH'
|
||||
| 'LABEL_ENDS_WITH_DASH'
|
||||
| 'LABEL_TOO_LONG'
|
||||
| 'LABEL_TOO_SHORT'
|
||||
| 'LABEL_INVALID_CHARS';
|
||||
message: string;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
import * as psl from 'psl';
|
||||
|
||||
const parsed = psl.parse('google.com');
|
||||
|
||||
if (parsed.error != null) {
|
||||
const parseError = parsed as psl.ParseError; // tslint:disable-line:no-unnecessary-type-assertion
|
||||
|
||||
// $ExpectType "DOMAIN_TOO_SHORT" | "DOMAIN_TOO_LONG" | "LABEL_STARTS_WITH_DASH" | "LABEL_ENDS_WITH_DASH" | "LABEL_TOO_LONG" | "LABEL_TOO_SHORT" | "LABEL_INVALID_CHARS"
|
||||
parseError.error.code;
|
||||
parseError.error.message; // $ExpectType string
|
||||
} else {
|
||||
const parsedDomain = parsed as psl.ParsedDomain; // tslint:disable-line:no-unnecessary-type-assertion
|
||||
|
||||
parsedDomain.sld; // $ExpectType string | null
|
||||
parsedDomain.tld; // $ExpectType string | null
|
||||
parsedDomain.domain; // $ExpectType string | null
|
||||
parsedDomain.subdomain; // $ExpectType string | null
|
||||
parsedDomain.listed; // $ExpectType boolean
|
||||
parsedDomain.input; // $ExpectType string
|
||||
}
|
||||
|
||||
psl.get(null); // $ExpectType null
|
||||
psl.get(undefined); // $ExpectType null
|
||||
psl.get('example.COM'); // $ExpectType string | null
|
||||
|
||||
psl.isValid('COM'); // $ExpectType boolean
|
||||
@@ -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",
|
||||
"psl-tests.ts"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user