{"version":3,"file":"config.mjs","names":["coreDefineConfig"],"sources":["../src/config/define-config.ts"],"sourcesContent":["import sqliteAdapter from '@prisma-next/adapter-sqlite/control';\nimport type { PrismaNextConfig } from '@prisma-next/config/config-types';\nimport { defineConfig as coreDefineConfig } from '@prisma-next/config/config-types';\nimport sqliteDriver from '@prisma-next/driver-sqlite/control';\nimport sql from '@prisma-next/family-sql/control';\nimport type { ControlExtensionDescriptor } from '@prisma-next/framework-components/control';\nimport { prismaContract } from '@prisma-next/sql-contract-psl/provider';\nimport { typescriptContractFromPath } from '@prisma-next/sql-contract-ts/config-types';\nimport {\n  SQLITE_INTEGER_CODEC_ID,\n  SQLITE_TEXT_CODEC_ID,\n} from '@prisma-next/target-sqlite/codec-ids';\nimport sqlite, { sqliteCreateNamespace } from '@prisma-next/target-sqlite/control';\nimport sqlitePackRef from '@prisma-next/target-sqlite/pack';\nimport { ifDefined } from '@prisma-next/utils/defined';\nimport { extname, join } from 'pathe';\n\nexport interface SqliteConfigOptions {\n  readonly contract: string;\n  readonly outputPath?: string;\n  readonly db?: {\n    readonly connection?: string;\n  };\n  readonly extensions?: readonly ControlExtensionDescriptor<'sql', 'sqlite'>[];\n  readonly migrations?: {\n    readonly dir?: string;\n  };\n}\n\nfunction deriveOutputPath(contractPath: string): string {\n  const ext = extname(contractPath);\n  if (ext.length === 0) {\n    return `${contractPath}.json`;\n  }\n  return `${contractPath.slice(0, -ext.length)}.json`;\n}\n\nexport function defineConfig(options: SqliteConfigOptions): PrismaNextConfig<'sql', 'sqlite'> {\n  const extensions = options.extensions ?? [];\n  const output =\n    options.outputPath !== undefined\n      ? join(options.outputPath, 'contract.json')\n      : deriveOutputPath(options.contract);\n  const ext = extname(options.contract);\n\n  const contractConfig =\n    ext === '.ts'\n      ? typescriptContractFromPath(options.contract, output)\n      : prismaContract(options.contract, {\n          output,\n          target: sqlitePackRef,\n          createNamespace: sqliteCreateNamespace,\n          enumInferenceCodecs: { text: SQLITE_TEXT_CODEC_ID, int: SQLITE_INTEGER_CODEC_ID },\n        });\n\n  return coreDefineConfig({\n    family: sql,\n    target: sqlite,\n    adapter: sqliteAdapter,\n    driver: sqliteDriver,\n    extensionPacks: extensions,\n    contract: contractConfig,\n    ...ifDefined('db', options.db),\n    ...ifDefined('migrations', options.migrations),\n  });\n}\n"],"mappings":";;;;;;;;;;;;AA6BA,SAAS,iBAAiB,cAA8B;CACtD,MAAM,MAAM,QAAQ,YAAY;CAChC,IAAI,IAAI,WAAW,GACjB,OAAO,GAAG,aAAa;CAEzB,OAAO,GAAG,aAAa,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE;AAC/C;AAEA,SAAgB,aAAa,SAAiE;CAC5F,MAAM,aAAa,QAAQ,cAAc,CAAC;CAC1C,MAAM,SACJ,QAAQ,eAAe,KAAA,IACnB,KAAK,QAAQ,YAAY,eAAe,IACxC,iBAAiB,QAAQ,QAAQ;CAavC,OAAOA,eAAiB;EACtB,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,QAAQ;EACR,gBAAgB;EAChB,UAlBU,QAAQ,QAAQ,QAGxB,MAAM,QACJ,2BAA2B,QAAQ,UAAU,MAAM,IACnD,eAAe,QAAQ,UAAU;GAC/B;GACA,QAAQ;GACR,iBAAiB;GACjB,qBAAqB;IAAE,MAAM;IAAsB,KAAK;GAAwB;EAClF,CAAC;EASL,GAAG,UAAU,MAAM,QAAQ,EAAE;EAC7B,GAAG,UAAU,cAAc,QAAQ,UAAU;CAC/C,CAAC;AACH"}