{"version":3,"file":"config.cjs","names":[],"sources":["../../src/config.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { DEFAULT_ENTRY, DEFAULT_IGNORE, DEFAULT_MANIFEST_HEADER } from \"./constants.js\";\n\nexport function normalizeExtension(value: string): string {\n  return value.startsWith(\".\") ? value : `.${value}`;\n}\n\nexport const extensionSchema = z\n  .union([z.boolean(), z.string()])\n  .default(true)\n  .transform((value) => {\n    if (typeof value === \"string\") {\n      return normalizeExtension(value);\n    }\n    return value;\n  });\n\nexport type ExtensionOption = z.infer<typeof extensionSchema>;\n\nexport const formattingSchema = z.object({\n  quotes: z.enum([\"single\", \"double\"]).default(\"double\"),\n  header: z.array(z.string()).default([...DEFAULT_MANIFEST_HEADER]),\n  extension: extensionSchema,\n});\n\nexport type FormattingOptions = z.input<typeof formattingSchema>;\nexport type ResolvedFormattingOptions = z.infer<typeof formattingSchema>;\n\nexport const DEFAULT_FORMATTING: ResolvedFormattingOptions = {\n  quotes: \"double\",\n  header: [...DEFAULT_MANIFEST_HEADER],\n  extension: true,\n};\n\nexport const taserConfigSchema = z\n  .object({\n    routesDir: z.string().optional(),\n    entry: z.string().default(DEFAULT_ENTRY),\n    entryPath: z.string().optional(),\n    serverDir: z.string().optional(),\n    serverEntry: z.string().optional(),\n    serverEntryPath: z.string().optional(),\n    basePath: z.string().optional(),\n    ignore: z.array(z.string()).default([...DEFAULT_IGNORE]),\n    formatting: formattingSchema.default(DEFAULT_FORMATTING),\n  })\n  .transform((config) => ({\n    ...config,\n    entry: config.entryPath ?? config.entry,\n    serverEntry: config.serverEntryPath ?? config.serverEntry,\n  }));\n\nexport type TaserConfig = z.input<typeof taserConfigSchema>;\nexport type ResolvedTaserConfig = z.infer<typeof taserConfigSchema>;\n\nexport function resolveImportExtension(extension?: ExtensionOption): string | null {\n  if (typeof extension === \"string\") {\n    return normalizeExtension(extension);\n  }\n  return extension === false ? null : \".js\";\n}\n"],"mappings":";;;AAIA,SAAgB,mBAAmB,OAAuB;CACxD,OAAO,MAAM,WAAW,GAAG,IAAI,QAAQ,IAAI;AAC7C;AAEA,IAAa,kBAAkB,IAAA,EAC5B,MAAM,CAAC,IAAA,EAAE,QAAQ,GAAG,IAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAChC,QAAQ,IAAI,CAAC,CACb,WAAW,UAAU;CACpB,IAAI,OAAO,UAAU,UACnB,OAAO,mBAAmB,KAAK;CAEjC,OAAO;AACT,CAAC;AAIH,IAAa,mBAAmB,IAAA,EAAE,OAAO;CACvC,QAAQ,IAAA,EAAE,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC,CAAC,QAAQ,QAAQ;CACrD,QAAQ,IAAA,EAAE,MAAM,IAAA,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,kBAAA,uBAAuB,CAAC;CAChE,WAAW;AACb,CAAC;AAKD,IAAa,qBAAgD;CAC3D,QAAQ;CACR,QAAQ,CAAC,GAAG,kBAAA,uBAAuB;CACnC,WAAW;AACb;AAEA,IAAa,oBAAoB,IAAA,EAC9B,OAAO;CACN,WAAW,IAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,OAAO,IAAA,EAAE,OAAO,CAAC,CAAC,QAAQ,kBAAA,aAAa;CACvC,WAAW,IAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,WAAW,IAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,aAAa,IAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,iBAAiB,IAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CACrC,UAAU,IAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,QAAQ,IAAA,EAAE,MAAM,IAAA,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,kBAAA,cAAc,CAAC;CACvD,YAAY,iBAAiB,QAAQ,kBAAkB;AACzD,CAAC,CAAC,CACD,WAAW,YAAY;CACtB,GAAG;CACH,OAAO,OAAO,aAAa,OAAO;CAClC,aAAa,OAAO,mBAAmB,OAAO;AAChD,EAAE;AAKJ,SAAgB,uBAAuB,WAA4C;CACjF,IAAI,OAAO,cAAc,UACvB,OAAO,mBAAmB,SAAS;CAErC,OAAO,cAAc,QAAQ,OAAO;AACtC"}