mock-violentmonkey
Version:
Mock violentmonkey's globals for testing userscripts
12 lines (11 loc) • 657 B
TypeScript
export type JsonValue = number | null | string | boolean | JsonObject | JsonArray;
export type JsonArray = readonly JsonValue[];
export type JsonObject = {
[key: string]: JsonValue;
};
type IsPrimitive<T> = T extends number | boolean | string | null | undefined ? true : false;
type PartialDeepUnionValues<T> = IsPrimitive<T> extends true ? T : T extends Array<infer V> ? Array<PartialDeep<V>> : T extends ReadonlyArray<infer V> ? ReadonlyArray<PartialDeep<V>> : T extends Record<string, unknown> ? PartialDeep<T> : never;
export type PartialDeep<T> = {
[Key in keyof T]?: T[Key] extends infer V1 ? PartialDeepUnionValues<V1> : never;
};
export {};