Files
emdash-patch-imageupload/packages/core/tsdown.config.ts
kunthawat 2d1be52177 Emdash source with visual editor image upload fix
Fixes:
1. media.ts: wrap placeholder generation in try-catch
2. toolbar.ts: check r.ok, display error message in popover
2026-05-03 10:44:54 +07:00

96 lines
2.7 KiB
TypeScript

import { execSync } from "node:child_process";
import { readFileSync } from "node:fs";
import { defineConfig } from "tsdown";
function readPackageVersion(): string {
const parsed: unknown = JSON.parse(readFileSync("package.json", "utf-8"));
if (
typeof parsed === "object" &&
parsed !== null &&
"version" in parsed &&
typeof parsed.version === "string"
) {
return parsed.version;
}
throw new Error("package.json is missing a string `version` field");
}
const pkg = { version: readPackageVersion() };
const commit = (() => {
try {
return execSync("git rev-parse --short HEAD", { encoding: "utf-8" }).trim();
} catch {
return "unknown";
}
})();
export default defineConfig({
entry: [
"src/index.ts",
// Request context (ALS singleton - must be a separate entry for dedup)
"src/request-context.ts",
// Astro integration (build-time)
"src/astro/index.ts",
"src/astro/middleware.ts",
"src/astro/middleware/setup.ts",
"src/astro/middleware/auth.ts",
"src/astro/middleware/redirect.ts",
"src/astro/middleware/request-context.ts",
"src/astro/types.ts",
// Database adapters (config-time + runtime via virtual:emdash/dialect)
"src/db/index.ts",
"src/db/sqlite.ts",
"src/db/libsql.ts",
"src/db/postgres.ts",
// Query instrumentation (used by first-party adapters like @emdash-cms/cloudflare)
"src/database/instrumentation.ts",
// Storage adapters (runtime - loaded via virtual:emdash/storage)
"src/storage/local.ts",
"src/storage/s3.ts",
// Media providers
"src/media/index.ts",
"src/media/local-runtime.ts",
// Runtime exports (depends on virtual modules - for live.config.ts)
"src/runtime.ts",
// Seed engine
"src/seed/index.ts",
// CLI
"src/cli/index.ts",
// Client (programmatic editing API)
"src/client/index.ts",
"src/client/cf-access.ts",
// SEO helpers
"src/seo/index.ts",
// Public page contributions
"src/page/index.ts",
// Plugin admin utilities (shared helpers for plugin admin.tsx files)
"src/plugin-utils.ts",
// Standard plugin adapter (loaded by virtual:emdash/plugins at runtime)
"src/plugins/adapt-sandbox-entry.ts",
],
format: "esm",
dts: true,
clean: true,
define: {
__EMDASH_VERSION__: JSON.stringify(pkg.version),
__EMDASH_COMMIT__: JSON.stringify(commit),
},
// Externalize native modules, dialect-specific packages, and internal shared modules
external: [
// Native modules that use __filename
"better-sqlite3",
"bindings",
"file-uri-to-path",
// Dialect-specific packages
"@libsql/kysely-libsql",
"pg",
// Build tooling (CLI-time dependency with native bindings)
"tsdown",
// Astro virtual modules
"astro:middleware",
"astro:content",
// EmDash virtual modules (resolved at runtime by Vite)
/^virtual:emdash\//,
],
});