diff --git a/types/commons-validator-js/commons-validator-js-tests.ts b/types/commons-validator-js/commons-validator-js-tests.ts new file mode 100644 index 0000000000..3c21054f06 --- /dev/null +++ b/types/commons-validator-js/commons-validator-js-tests.ts @@ -0,0 +1,25 @@ +import commonsValidatorJs = require('commons-validator-js'); + +const emailValidator = new commonsValidatorJs.EmailValidator(); +const domainValidator = new commonsValidatorJs.DomainValidator(); + +// $ExpectType boolean +emailValidator.isValid('a@a.com'); + +// $ExpectType string | null +domainValidator.extractTld('a@a.com'); + +// $ExpectType boolean +domainValidator.isValid('a@a.com'); + +// $ExpectType boolean +domainValidator.isValidCountryCodeTld('de'); + +// $ExpectType boolean +domainValidator.isValidGenericTld('com'); + +// $ExpectType boolean +domainValidator.isValidInfrastructureTld('com'); + +// $ExpectType boolean +domainValidator.isValidTld('com'); diff --git a/types/commons-validator-js/index.d.ts b/types/commons-validator-js/index.d.ts new file mode 100644 index 0000000000..4ed500e0a7 --- /dev/null +++ b/types/commons-validator-js/index.d.ts @@ -0,0 +1,26 @@ +// Type definitions for commons-validator-js 1.0 +// Project: https://github.com/wix/commons-validator-js +// Definitions by: Robert Mruczek +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export class EmailValidator { + /** + * @param allowLocal Should local addresses be considered valid? default = false + * @param allowTld Should TLDs be allowed? default = false + */ + constructor({allowLocal, allowTld}?: {allowLocal: boolean, allowTld: boolean}); + isValid: (email: string) => boolean; +} + +export class DomainValidator { + /** + * @param allowLocal Should local addresses be considered valid? default = false + */ + constructor({allowLocal}?: {allowLocal: boolean}); + isValidCountryCodeTld: (ccTld: string) => boolean; + isValidGenericTld: (gTld: string) => boolean; + isValidInfrastructureTld: (iTld: string) => boolean; + isValidTld: (tld: string) => boolean; + extractTld: (domain: string) => string | null; + isValid: (domain: string) => boolean; +} diff --git a/types/commons-validator-js/tsconfig.json b/types/commons-validator-js/tsconfig.json new file mode 100644 index 0000000000..20d954e811 --- /dev/null +++ b/types/commons-validator-js/tsconfig.json @@ -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", + "commons-validator-js-tests.ts" + ] +} \ No newline at end of file diff --git a/types/commons-validator-js/tslint.json b/types/commons-validator-js/tslint.json new file mode 100644 index 0000000000..e60c15844f --- /dev/null +++ b/types/commons-validator-js/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} \ No newline at end of file