{"version":3,"file":"migrator.cjs","names":[],"sources":["../../src/effect-sqlite-wasm/migrator.ts"],"sourcesContent":["import type { MigrationMeta } from '~/migrator.ts';\nimport { formatToMillis } from '~/migrator.utils.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { migrate as coreMigrate } from '~/sqlite-core/effect/session.ts';\nimport type { EffectSQLiteWasmDatabase } from './driver.ts';\n\ninterface MigrationConfig {\n\tmigrations: Record<string, string>;\n\tmigrationsTable?: string;\n\t/** @internal */\n\tinit?: boolean;\n}\n\nfunction readMigrationFiles({ migrations }: MigrationConfig): MigrationMeta[] {\n\tconst migrationQueries: MigrationMeta[] = [];\n\n\tconst sortedMigrations = Object.keys(migrations).sort();\n\n\tfor (const key of sortedMigrations) {\n\t\tconst query = migrations[key];\n\t\tif (!query) {\n\t\t\tthrow new Error(`Missing migration: ${key}`);\n\t\t}\n\n\t\ttry {\n\t\t\tconst result = query.split('--> statement-breakpoint').map((it) => {\n\t\t\t\treturn it;\n\t\t\t});\n\n\t\t\tconst migrationDate = formatToMillis(key.slice(0, 14));\n\n\t\t\tmigrationQueries.push({\n\t\t\t\tsql: result,\n\t\t\t\tbps: true,\n\t\t\t\tfolderMillis: migrationDate,\n\t\t\t\thash: '',\n\t\t\t\tname: key,\n\t\t\t});\n\t\t} catch {\n\t\t\tthrow new Error(`Failed to parse migration: ${key}`);\n\t\t}\n\t}\n\n\treturn migrationQueries;\n}\n\nexport function migrate<TRelations extends AnyRelations>(\n\tdb: EffectSQLiteWasmDatabase<TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\treturn coreMigrate(migrations, db.session, config);\n}\n"],"mappings":";;;;;;AAaA,SAAS,mBAAmB,EAAE,cAAgD;CAC7E,MAAM,mBAAoC,EAAE;CAE5C,MAAM,mBAAmB,OAAO,KAAK,WAAW,CAAC,MAAM;AAEvD,MAAK,MAAM,OAAO,kBAAkB;EACnC,MAAM,QAAQ,WAAW;AACzB,MAAI,CAAC,MACJ,OAAM,IAAI,MAAM,sBAAsB,MAAM;AAG7C,MAAI;GACH,MAAM,SAAS,MAAM,MAAM,2BAA2B,CAAC,KAAK,OAAO;AAClE,WAAO;KACN;GAEF,MAAM,wDAA+B,IAAI,MAAM,GAAG,GAAG,CAAC;AAEtD,oBAAiB,KAAK;IACrB,KAAK;IACL,KAAK;IACL,cAAc;IACd,MAAM;IACN,MAAM;IACN,CAAC;UACK;AACP,SAAM,IAAI,MAAM,8BAA8B,MAAM;;;AAItD,QAAO;;AAGR,SAAgB,QACf,IACA,QACC;AAED,qDADmB,mBAAmB,OAAO,EACd,GAAG,SAAS,OAAO"}