{"version":3,"file":"config.mjs","names":[],"sources":["../src/config.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n                       ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website:                  https://stormsoftware.com\n Repository:               https://github.com/storm-software/stryke\n Documentation:            https://docs.stormsoftware.com/projects/stryke\n Contact:                  https://stormsoftware.com/contact\n\n SPDX-License-Identifier:  Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport * as z from \"zod\";\n\nexport enum ModelAction {\n  FIND_UNIQUE = \"findUnique\",\n  FIND_UNIQUE_OR_THROW = \"findUniqueOrThrow\",\n  FIND_FIRST = \"findFirst\",\n  FIND_FIRST_OR_THROW = \"findFirstOrThrow\",\n  FIND_MANY = \"findMany\",\n  CREATE = \"create\",\n  CREATE_MANY = \"createMany\",\n  CREATE_MANY_AND_RETURN = \"createManyAndReturn\",\n  UPDATE = \"update\",\n  UPDATE_MANY = \"updateMany\",\n  UPDATE_MANY_AND_RETURN = \"updateManyAndReturn\",\n  UPSERT = \"upsert\",\n  DELETE = \"delete\",\n  DELETE_MANY = \"deleteMany\",\n  GROUP_BY = \"groupBy\",\n  COUNT = \"count\", // TODO: count does not actually exist, why?\n  AGGREGATE = \"aggregate\",\n  FIND_RAW = \"findRaw\",\n  AGGREGATE_RAW = \"aggregateRaw\"\n}\n\nconst modelActionEnum = z.nativeEnum(ModelAction);\n\nconst configBoolean = z\n  .string()\n  .trim()\n  .transform(value =>\n    !value ||\n    value.toLowerCase() === \"false\" ||\n    value.toLowerCase() === \"n\" ||\n    value.toLowerCase() === \"no\" ||\n    value === \"0\"\n      ? false\n      : value.toLowerCase() === \"true\" ||\n          value.toLowerCase() === \"y\" ||\n          value.toLowerCase() === \"yes\" ||\n          value === \"1\"\n        ? true\n        : value\n  );\n\nexport const configSchema = z.object({\n  debug: configBoolean.default(\"false\"),\n  withNext: configBoolean.default(\"true\"),\n  withMiddleware: configBoolean.default(\"false\"),\n  withShield: configBoolean.default(\"false\"),\n  contextPath: z.string().trim().default(\"../context\"),\n  trpcOptions: configBoolean.default(\"true\"),\n  showModelNameInProcedure: configBoolean.default(\"false\"),\n  generateModelActions: z\n    .string()\n    .default(Object.values(ModelAction).join(\",\"))\n    .transform(arg => {\n      return arg.split(\",\").map(action => modelActionEnum.parse(action.trim()));\n    }),\n\n  // Zod configuration\n  withZod: configBoolean.default(\"true\"),\n  relationModel: configBoolean.default(\"true\").or(z.literal(\"default\")),\n  modelSuffix: z.string().default(\"Schema\"),\n  modelCase: z.enum([\"PascalCase\", \"camelCase\"]).default(\"camelCase\"),\n  useDecimalJs: configBoolean.default(\"true\"),\n  imports: z.string().optional(),\n  prismaJsonNullability: configBoolean.default(\"true\")\n});\n\nexport type Config = z.infer<typeof configSchema>;\n"],"mappings":";;;AAoBA,IAAY,cAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KACD;AAED,MAAM,kBAAkB,EAAE,WAAW,YAAY;AAEjD,MAAM,gBAAgB,EACnB,QAAQ,CACR,MAAM,CACN,WAAU,UACT,CAAC,SACD,MAAM,aAAa,KAAK,WACxB,MAAM,aAAa,KAAK,OACxB,MAAM,aAAa,KAAK,QACxB,UAAU,MACN,QACA,MAAM,aAAa,KAAK,UACtB,MAAM,aAAa,KAAK,OACxB,MAAM,aAAa,KAAK,SACxB,UAAU,MACV,OACA,MACP;AAEH,MAAa,eAAe,EAAE,OAAO;CACnC,OAAO,cAAc,QAAQ,QAAQ;CACrC,UAAU,cAAc,QAAQ,OAAO;CACvC,gBAAgB,cAAc,QAAQ,QAAQ;CAC9C,YAAY,cAAc,QAAQ,QAAQ;CAC1C,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,aAAa;CACpD,aAAa,cAAc,QAAQ,OAAO;CAC1C,0BAA0B,cAAc,QAAQ,QAAQ;CACxD,sBAAsB,EACnB,QAAQ,CACR,QAAQ,OAAO,OAAO,YAAY,CAAC,KAAK,IAAI,CAAC,CAC7C,WAAU,QAAO;AAChB,SAAO,IAAI,MAAM,IAAI,CAAC,KAAI,WAAU,gBAAgB,MAAM,OAAO,MAAM,CAAC,CAAC;GACzE;CAGJ,SAAS,cAAc,QAAQ,OAAO;CACtC,eAAe,cAAc,QAAQ,OAAO,CAAC,GAAG,EAAE,QAAQ,UAAU,CAAC;CACrE,aAAa,EAAE,QAAQ,CAAC,QAAQ,SAAS;CACzC,WAAW,EAAE,KAAK,CAAC,cAAc,YAAY,CAAC,CAAC,QAAQ,YAAY;CACnE,cAAc,cAAc,QAAQ,OAAO;CAC3C,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,uBAAuB,cAAc,QAAQ,OAAO;CACrD,CAAC"}