UNPKG

graphql-gene

Version:

Generates automatically an executable schema out of your ORM models

1 lines 2.44 kB
{"version":3,"file":"operators.cjs","sources":["../../src/utils/operators.ts"],"sourcesContent":["type Entries<T> = {\n [K in keyof T]-?: Exclude<T[K], null | undefined> extends never ? never : [K, T[K]]\n}[keyof T][]\n\ntype Nullable<T> = T | null | undefined\n\nexport function getEntries<T extends object>(obj: T) {\n return Object.entries(obj) as Entries<T>\n}\n\nexport function getOperatorMap<T>(type: T) {\n // Generic operators\n const isEq = (value: Nullable<T>, input: T) => value === input\n const isIn = (value: Nullable<T>, input: T[]) => !!(value && input.includes(value))\n const isNull = (value: Nullable<T>, input: boolean) =>\n (input && value === null) || (!input && value !== null)\n\n // String operators\n const isLike = (value: Nullable<string>, input: string) => {\n if (!value) return false\n\n const regexString = [\n input.replace(/(^%)?([^%]+)(%$)?/, '$2'),\n input.endsWith('%') ? '' : '$',\n ].join('')\n\n return new RegExp(regexString, 'i').test(value)\n }\n\n let operatorMap = (<T extends object>(map: T) =>\n map as T & { like?: typeof isLike; notLike?: typeof isLike })({\n eq: isEq,\n ne: (...args: Parameters<typeof isEq>) => !isEq(...args),\n in: isIn,\n notIn: (...args: Parameters<typeof isIn>) => !isIn(...args),\n null: isNull,\n })\n\n if (typeof type === 'string') {\n operatorMap = {\n ...operatorMap,\n like: isLike,\n notLike: (...args: Parameters<typeof isLike>) => !isLike(...args),\n }\n }\n return operatorMap\n}\n"],"names":["getEntries","obj","getOperatorMap","type","isEq","value","input","isIn","isNull","isLike","regexString","operatorMap","map","args"],"mappings":"gFAMO,SAASA,EAA6BC,EAAQ,CACnD,OAAO,OAAO,QAAQA,CAAG,CAC3B,CAEO,SAASC,EAAkBC,EAAS,CAEzC,MAAMC,EAAO,CAACC,EAAoBC,IAAaD,IAAUC,EACnDC,EAAO,CAACF,EAAoBC,IAAe,CAAC,EAAED,GAASC,EAAM,SAASD,CAAK,GAC3EG,EAAS,CAACH,EAAoBC,IACjCA,GAASD,IAAU,MAAU,CAACC,GAASD,IAAU,KAG9CI,EAAS,CAACJ,EAAyBC,IAAkB,CACzD,GAAI,CAACD,EAAO,MAAO,GAEnB,MAAMK,EAAc,CAClBJ,EAAM,QAAQ,oBAAqB,IAAI,EACvCA,EAAM,SAAS,GAAG,EAAI,GAAK,GAAA,EAC3B,KAAK,EAAE,EAET,OAAO,IAAI,OAAOI,EAAa,GAAG,EAAE,KAAKL,CAAK,CAChD,EAEA,IAAIM,GAAkCC,GACpCA,GAA8D,CAC9D,GAAIR,EACJ,GAAI,IAAIS,IAAkC,CAACT,EAAK,GAAGS,CAAI,EACvD,GAAIN,EACJ,MAAO,IAAIM,IAAkC,CAACN,EAAK,GAAGM,CAAI,EAC1D,KAAML,CAAA,CACP,EAED,OAAI,OAAOL,GAAS,WAClBQ,EAAc,CACZ,GAAGA,EACH,KAAMF,EACN,QAAS,IAAII,IAAoC,CAACJ,EAAO,GAAGI,CAAI,CAAA,GAG7DF,CACT"}