ancora su Typescript...
suddiviso i ts dai html e scss
This commit is contained in:
23
src/validation/duplicate.ts
Normal file
23
src/validation/duplicate.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
type t = string | number;
|
||||
type fn = () => t[];
|
||||
|
||||
export function duplicate(matches: t[] | fn, ignoreCase: boolean = false) {
|
||||
if (Array.isArray(matches)) return factory(matches, ignoreCase);
|
||||
|
||||
return value => {
|
||||
let cb = factory(matches(), ignoreCase);
|
||||
return cb(value);
|
||||
};
|
||||
}
|
||||
|
||||
function factory(values: t[], ignoreCase: boolean) {
|
||||
return value => {
|
||||
if (value === undefined || value === null || values.length === 0)
|
||||
return true;
|
||||
else{
|
||||
let flags = ignoreCase ? "i" : "";
|
||||
let exp = new RegExp(`^(${value})$`, flags);
|
||||
return values.find(o => exp.test(o.toString())) === undefined;
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user