You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
559 B
19 lines
559 B
function newGuid() { |
|
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => { |
|
// tslint:disable:no-bitwise |
|
const r = (Math.random() * 16) | 0; |
|
const v = c === "x" ? r : (r & 0x3) | 0x8; |
|
return v.toString(16); |
|
}); |
|
} |
|
|
|
export function GetUniqueString(prefix: string = "") { |
|
return prefix + "_" + newGuid(); |
|
} |
|
|
|
export function BuildTestObject<T, K extends keyof T = keyof T>( |
|
def: Partial<Pick<T, K>> | T, |
|
constructor?: new () => T |
|
): T { |
|
return Object.assign(constructor === null ? {} : new constructor(), def) as T; |
|
}
|
|
|