|
|
@@ -1,54 +0,0 @@
|
|
|
-#!/usr/bin/env bun
|
|
|
-
|
|
|
-import fs from "fs"
|
|
|
-import path from "path"
|
|
|
-import { fileURLToPath } from "url"
|
|
|
-
|
|
|
-const __filename = fileURLToPath(import.meta.url)
|
|
|
-const __dirname = path.dirname(__filename)
|
|
|
-const dir = path.resolve(__dirname, "..")
|
|
|
-
|
|
|
-process.chdir(dir)
|
|
|
-
|
|
|
-// Load migrations from migration directories
|
|
|
-const migrationDirs = (
|
|
|
- await fs.promises.readdir(path.join(dir, "migration"), {
|
|
|
- withFileTypes: true,
|
|
|
- })
|
|
|
-)
|
|
|
- .filter((entry) => entry.isDirectory() && /^\d{4}\d{2}\d{2}\d{2}\d{2}\d{2}/.test(entry.name))
|
|
|
- .map((entry) => entry.name)
|
|
|
- .sort()
|
|
|
-
|
|
|
-const migrations = await Promise.all(
|
|
|
- migrationDirs.map(async (name) => {
|
|
|
- const file = path.join(dir, "migration", name, "migration.sql")
|
|
|
- const sql = await Bun.file(file).text()
|
|
|
- const match = /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/.exec(name)
|
|
|
- const timestamp = match
|
|
|
- ? Date.UTC(
|
|
|
- Number(match[1]),
|
|
|
- Number(match[2]) - 1,
|
|
|
- Number(match[3]),
|
|
|
- Number(match[4]),
|
|
|
- Number(match[5]),
|
|
|
- Number(match[6]),
|
|
|
- )
|
|
|
- : 0
|
|
|
- return { sql, timestamp, name }
|
|
|
- }),
|
|
|
-)
|
|
|
-console.log(`Loaded ${migrations.length} migrations`)
|
|
|
-
|
|
|
-await Bun.build({
|
|
|
- target: "node",
|
|
|
- entrypoints: ["./src/node.ts"],
|
|
|
- outdir: "./dist",
|
|
|
- format: "esm",
|
|
|
- external: ["jsonc-parser"],
|
|
|
- define: {
|
|
|
- OPENCODE_MIGRATIONS: JSON.stringify(migrations),
|
|
|
- },
|
|
|
-})
|
|
|
-
|
|
|
-console.log("Build complete")
|