{"version":3,"file":"constants.cjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["import type { GeneConfig, ValueOf } from 'graphql-gene'\nimport { Op } from 'sequelize'\nimport { DataType, Model } from 'sequelize-typescript'\n\nexport class GeneModel extends Model {\n  static geneConfig?: GeneConfig\n}\n\nexport const GENERIC_OPERATORS = {\n  and: 'and',\n  or: 'or',\n  eq: 'eq',\n  ne: 'ne',\n  in: 'in',\n  notIn: 'notIn',\n  null: 'null',\n} as const\n\nexport const DATE_AND_NUMBER_OPERATORS = {\n  lt: 'lt',\n  lte: 'lte',\n  gt: 'gt',\n  gte: 'gte',\n} as const\n\nexport const STRING_OPERATORS = {\n  like: 'like',\n  notLike: 'notLike',\n} as const\n\nexport const ALL_OPERATORS = {\n  ...GENERIC_OPERATORS,\n  ...DATE_AND_NUMBER_OPERATORS,\n  ...STRING_OPERATORS,\n}\n\nexport const GENE_TO_SEQUELIZE_OPERATORS: {\n  [k in ValueOf<typeof ALL_OPERATORS>]: (\n    value:\n      | string\n      | boolean\n      | number\n      | { [k in ValueOf<typeof ALL_OPERATORS>]: string | boolean | number }[]\n  ) => [\n    symbol,\n    (\n      | string\n      | boolean\n      | number\n      | null\n      | { [k in ValueOf<typeof ALL_OPERATORS>]: string | boolean | number | null }[]\n    ),\n  ]\n} = {\n  [GENERIC_OPERATORS.and]: value => [Op.and, value],\n  [GENERIC_OPERATORS.or]: value => [Op.or, value],\n  [GENERIC_OPERATORS.eq]: value => [Op.eq, value],\n  [GENERIC_OPERATORS.ne]: value => [Op.ne, value],\n  [GENERIC_OPERATORS.in]: value => [Op.in, value],\n  [GENERIC_OPERATORS.notIn]: value => [Op.notIn, value],\n  [GENERIC_OPERATORS.null]: value => (value ? [Op.is, null] : [Op.not, null]),\n  [DATE_AND_NUMBER_OPERATORS.lt]: value => [Op.lt, value],\n  [DATE_AND_NUMBER_OPERATORS.lte]: value => [Op.lte, value],\n  [DATE_AND_NUMBER_OPERATORS.gt]: value => [Op.gt, value],\n  [DATE_AND_NUMBER_OPERATORS.gte]: value => [Op.gte, value],\n  [STRING_OPERATORS.like]: value => [Op.like, value],\n  [STRING_OPERATORS.notLike]: value => [Op.notLike, value],\n}\n\nexport const DATE_SCALAR = 'Date' as const\nexport const DATE_TIME_SCALAR = 'DateTime' as const\nexport const JSON_SCALAR = 'JSON' as const\n\nexport const SEQUELIZE_TYPE_TO_GRAPHQL = {\n  ABSTRACT: '',\n  STRING: 'String',\n  CHAR: 'String',\n  TEXT: 'String',\n  NUMBER: 'Int',\n  TINYINT: 'Int',\n  SMALLINT: 'Int',\n  MEDIUMINT: 'Int',\n  INTEGER: 'Int',\n  BIGINT: 'Int',\n  FLOAT: 'Float',\n  REAL: 'Float',\n  DOUBLE: 'Float',\n  DECIMAL: 'Float',\n  BOOLEAN: 'Boolean',\n  TIME: 'DateTime',\n  DATE: 'DateTime',\n  DATEONLY: 'Date',\n  HSTORE: 'String',\n  JSON: 'JSON',\n  JSONB: 'JSON',\n  NOW: 'Date',\n  BLOB: '',\n  RANGE: '',\n  UUID: 'ID',\n  UUIDV1: 'ID',\n  UUIDV4: 'ID',\n  VIRTUAL: '',\n  ENUM: '',\n  ARRAY: '',\n  GEOMETRY: '',\n  GEOGRAPHY: '',\n  CIDR: '',\n  INET: '',\n  MACADDR: '',\n  CITEXT: '',\n  TSVECTOR: '',\n} satisfies {\n  [k in keyof typeof DataType]:\n    | 'ID'\n    | 'String'\n    | 'Int'\n    | 'Float'\n    | 'Boolean'\n    | 'DateTime'\n    | 'Date'\n    | 'JSON'\n    | ''\n}\n\nenum DATE_TYPES {\n  TIME = 'TIME',\n  DATE = 'DATE',\n  DATEONLY = 'DATEONLY',\n  NOW = 'NOW',\n}\n\nconst DATE_TYPE_KEYS = new Set(Object.keys(DATE_TYPES))\n\nexport const SEQUELIZE_TYPE_TO_GRAPHQL_WITH_DATE_AS_STRING = (() => {\n  const dataTypeMap = {} as Omit<typeof SEQUELIZE_TYPE_TO_GRAPHQL, `${DATE_TYPES}`> & {\n    [dataType in `${DATE_TYPES}`]: 'String'\n  }\n\n  Object.entries(SEQUELIZE_TYPE_TO_GRAPHQL).forEach(([dataType, graphqlType]) => {\n    ;(dataTypeMap as unknown as Record<string, ValueOf<typeof SEQUELIZE_TYPE_TO_GRAPHQL>>)[\n      dataType\n    ] = DATE_TYPE_KEYS.has(dataType as 'TIME') ? 'String' : graphqlType\n  })\n  return dataTypeMap\n})()\n"],"mappings":"gIAIA,IAAa,EAAb,cAA+B,EAAA,KAAM,CACnC,OAAO,YAGI,EAAoB,CAC/B,IAAK,MACL,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,MAAO,QACP,KAAM,OACP,CAEY,EAA4B,CACvC,GAAI,KACJ,IAAK,MACL,GAAI,KACJ,IAAK,MACN,CAEY,EAAmB,CAC9B,KAAM,OACN,QAAS,UACV,CAEY,EAAgB,CAC3B,GAAG,EACH,GAAG,EACH,GAAG,EACJ,CAEY,EAiBT,EACD,EAAkB,KAAM,GAAS,CAAC,EAAA,GAAG,IAAK,EAAM,EAChD,EAAkB,IAAK,GAAS,CAAC,EAAA,GAAG,GAAI,EAAM,EAC9C,EAAkB,IAAK,GAAS,CAAC,EAAA,GAAG,GAAI,EAAM,EAC9C,EAAkB,IAAK,GAAS,CAAC,EAAA,GAAG,GAAI,EAAM,EAC9C,EAAkB,IAAK,GAAS,CAAC,EAAA,GAAG,GAAI,EAAM,EAC9C,EAAkB,OAAQ,GAAS,CAAC,EAAA,GAAG,MAAO,EAAM,EACpD,EAAkB,MAAO,GAAU,EAAQ,CAAC,EAAA,GAAG,GAAI,KAAK,CAAG,CAAC,EAAA,GAAG,IAAK,KAAK,EACzE,EAA0B,IAAK,GAAS,CAAC,EAAA,GAAG,GAAI,EAAM,EACtD,EAA0B,KAAM,GAAS,CAAC,EAAA,GAAG,IAAK,EAAM,EACxD,EAA0B,IAAK,GAAS,CAAC,EAAA,GAAG,GAAI,EAAM,EACtD,EAA0B,KAAM,GAAS,CAAC,EAAA,GAAG,IAAK,EAAM,EACxD,EAAiB,MAAO,GAAS,CAAC,EAAA,GAAG,KAAM,EAAM,EACjD,EAAiB,SAAU,GAAS,CAAC,EAAA,GAAG,QAAS,EAAM,CACzD,CAEY,EAAc,OACd,EAAmB,WACnB,EAAc,OAEd,EAA4B,CACvC,SAAU,GACV,OAAQ,SACR,KAAM,SACN,KAAM,SACN,OAAQ,MACR,QAAS,MACT,SAAU,MACV,UAAW,MACX,QAAS,MACT,OAAQ,MACR,MAAO,QACP,KAAM,QACN,OAAQ,QACR,QAAS,QACT,QAAS,UACT,KAAM,WACN,KAAM,WACN,SAAU,OACV,OAAQ,SACR,KAAM,OACN,MAAO,OACP,IAAK,OACL,KAAM,GACN,MAAO,GACP,KAAM,KACN,OAAQ,KACR,OAAQ,KACR,QAAS,GACT,KAAM,GACN,MAAO,GACP,SAAU,GACV,UAAW,GACX,KAAM,GACN,KAAM,GACN,QAAS,GACT,OAAQ,GACR,SAAU,GACX,CAaI,EAAL,SAAA,EAAA,OACE,GAAA,KAAO,OACP,EAAA,KAAO,OACP,EAAA,SAAW,WACX,EAAA,IAAM,SAJH,GAAA,EAAA,CAKJ,CAEK,EAAiB,IAAI,IAAI,OAAO,KAAK,EAAW,CAAC,CAE1C,OAAuD,CAClE,IAAM,EAAc,EAAE,CAStB,OALA,OAAO,QAAQ,EAA0B,CAAC,SAAS,CAAC,EAAU,KAAiB,CAC3E,EACA,GACE,EAAe,IAAI,EAAmB,CAAG,SAAW,GACxD,CACK,KACL"}