mailcheck

This commit is contained in:
Paulo Cesar
2015-04-20 02:10:48 -03:00
parent 609c6a7a11
commit 666a4621ac
2 changed files with 129 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
/// <reference path="../jquery/jquery.d.ts"/>
/// <reference path="mailcheck.d.ts"/>
import MC = require('mailcheck');
var domains = ['gmail.com', 'aol.com'];
var secondLevelDomains = ['hotmail']
var topLevelDomains = ["com", "net", "org"];
var superStringDistance = function(string1: string, string2: string): void {
// a string distance algorithm of your choosing
};
$('#email').on('blur', function() {
$(this).mailcheck({
domains: domains, // optional
secondLevelDomains: secondLevelDomains, // optional
topLevelDomains: topLevelDomains, // optional
distanceFunction: superStringDistance, // optional
suggested: function(element, suggestion) {
// callback code
},
empty: function(element) {
// callback code
}
});
});
Mailcheck.run({
domains: domains, // optional
secondLevelDomains: secondLevelDomains, // optional
topLevelDomains: topLevelDomains, // optional
distanceFunction: superStringDistance, // optional
suggested: function(suggestion) {
// callback code
},
empty: function() {
// callback code
}
});
MC.run({
domains: domains, // optional
secondLevelDomains: secondLevelDomains, // optional
topLevelDomains: topLevelDomains, // optional
distanceFunction: superStringDistance, // optional
suggested: function(suggested) {
// callback code
suggested.address === '' && suggested.full === '' && suggested.domain === '';
},
empty: function() {
// callback code
}
});
+75
View File
@@ -0,0 +1,75 @@
// Type definitions for Mailcheck 1.1+
// Project: https://github.com/mailcheck/mailcheck
// Definitions by: Paulo Cesar <http://github.com/pocesar>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../jquery/jquery.d.ts" />
declare var Mailcheck: MailcheckModule.Static;
declare module MailcheckModule {
export interface IDistanceFunction {
(s1: string, s2: string): number;
}
export interface ISuggestFunction {
(email: string, domains?: string[], topLevelDomains?: string[], distanceFunction?: IDistanceFunction):void;
}
export interface IJQuerySuggested {
(element: JQuery, suggested: ISuggestion): void;
}
export interface ISuggested {
(suggested: ISuggestion): void;
}
export interface ISplitEmail {
topLevelDomain?: string;
domain?: string;
address?: string;
}
export interface ISuggestion {
address: string;
domain: string;
full: string;
}
export interface IOptions {
domains?: string[];
topLevelDomains?: string[];
distanceFunction?: IDistanceFunction;
suggested?: ISuggested;
empty?: () => void;
}
export interface IJQueryOptions extends IOptions {
suggested?: IJQuerySuggested;
empty?: (element: JQuery) => void;
}
export interface Static {
defaultDomains: string[];
defaultSecondLevelDomains: string[];
defaultTopLevelDomains: string[];
domainThreshold: number;
topLevelThreshold: number;
run(opts: IOptions):void;
suggest: ISuggestFunction;
encodeEmail(email: string): string;
splitEmail(email: string): ISplitEmail;
sift3Distance(s1: string, s2: string): number;
findClosestDomain(domain: string, domains: string[], distanceFunction?: IDistanceFunction, threshold?: number): boolean|string;
}
}
interface JQuery {
mailcheck(opts: MailcheckModule.IJQueryOptions): void;
}
declare module 'mailcheck' {
export = Mailcheck;
}