import * as check from "../../../sync/check/dictionary"; import {AssertError} from "../../../sync/error/AssertError"; export function assertHasKeys (name : string, mixed : any, keys : T[]) : ({ [key : string] : any })|never { const error = check.checkHasKeys(mixed, keys); if (error === undefined) { return mixed; } else { throw new AssertError(name, error, mixed, keys); } } export function assertHasKeysHandler (keys : T[]) : (name : string, mixed : any) => ({ [key : string] : any })|never { return (name : string, mixed : any) : ({ [key : string] : any })|never => { return assertHasKeys(name, mixed, keys); }; } export function assertNotHasKeys (name : string, mixed : any, keys : T[]) : ({ [key : string] : any })|never { const error = check.checkNotHasKeys(mixed, keys); if (error === undefined) { return mixed; } else { throw new AssertError(name, error, mixed, keys); } } export function assertNotHasKeysHandler (keys : T[]) : (name : string, mixed : any) => ({ [key : string] : any })|never { return (name : string, mixed : any) : ({ [key : string] : any })|never => { return assertNotHasKeys(name, mixed, keys); }; }