datasette-ts 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -24017,6 +24017,7 @@ function normalizeLibsqlRows(result) {
24017
24017
 
24018
24018
  // src/cli/deploy-cloudflare.ts
24019
24019
  var DEFAULT_IMPORTS_DIR = ".datasette-ts/imports";
24020
+ var MAX_TEXT_BINDING_BYTES = 5 * 1024;
24020
24021
  async function runCloudflareDeploy(args) {
24021
24022
  const startedAt = Date.now();
24022
24023
  logStep("Starting Cloudflare deploy");
@@ -24031,8 +24032,6 @@ async function runCloudflareDeploy(args) {
24031
24032
  logStep(`Worker entrypoint: ${workerEntrypoint}`);
24032
24033
  const assetsPath = join(packageRoot, "public");
24033
24034
  await assertFileExists(assetsPath, "assets directory");
24034
- logStep("Initializing Alchemy app");
24035
- const app = await alchemy(options.workerName);
24036
24035
  let importFile;
24037
24036
  try {
24038
24037
  logStep("Exporting SQLite for D1 import");
@@ -24059,6 +24058,30 @@ async function runCloudflareDeploy(args) {
24059
24058
  logStep("Precomputing inspect data");
24060
24059
  inspectData = await loadInspectDataFromFile(options.dbFile, options.dbName);
24061
24060
  }
24061
+ const schemaJson = JSON.stringify({ [options.dbName]: schema });
24062
+ const schemaSize = byteLength(schemaJson);
24063
+ let schemaBinding = null;
24064
+ if (schemaSize <= MAX_TEXT_BINDING_BYTES) {
24065
+ schemaBinding = schemaJson;
24066
+ } else {
24067
+ logStep(
24068
+ `Schema JSON is ${formatBytes2(schemaSize)}; skipping text binding and using runtime introspection.`
24069
+ );
24070
+ }
24071
+ let inspectBinding = null;
24072
+ if (inspectData) {
24073
+ const inspectJson = JSON.stringify(inspectData);
24074
+ const inspectSize = byteLength(inspectJson);
24075
+ if (inspectSize <= MAX_TEXT_BINDING_BYTES) {
24076
+ inspectBinding = inspectJson;
24077
+ } else {
24078
+ logStep(
24079
+ `Inspect data is ${formatBytes2(inspectSize)}; skipping text binding.`
24080
+ );
24081
+ }
24082
+ }
24083
+ logStep("Initializing Alchemy app");
24084
+ const app = await alchemy(options.workerName);
24062
24085
  logStep("Creating D1 database");
24063
24086
  const db = await D1Database(`d1-${options.d1Name}`, {
24064
24087
  name: options.d1Name,
@@ -24073,11 +24096,13 @@ async function runCloudflareDeploy(args) {
24073
24096
  const bindings = {
24074
24097
  DATASETTE_DB: db,
24075
24098
  ASSETS: staticAssets,
24076
- DATASETTE_DB_NAME: options.dbName,
24077
- DATASETTE_SCHEMA: JSON.stringify({ [options.dbName]: schema })
24099
+ DATASETTE_DB_NAME: options.dbName
24078
24100
  };
24079
- if (inspectData) {
24080
- bindings.DATASETTE_INSPECT_DATA = JSON.stringify(inspectData);
24101
+ if (schemaBinding) {
24102
+ bindings.DATASETTE_SCHEMA = schemaBinding;
24103
+ }
24104
+ if (inspectBinding) {
24105
+ bindings.DATASETTE_INSPECT_DATA = inspectBinding;
24081
24106
  }
24082
24107
  logStep("Deploying worker");
24083
24108
  const worker = await Worker(`worker-${options.workerName}`, {
@@ -24281,6 +24306,26 @@ function formatDuration(ms) {
24281
24306
  const seconds = (ms / 1e3).toFixed(1);
24282
24307
  return `${seconds}s`;
24283
24308
  }
24309
+ function byteLength(value) {
24310
+ if (typeof Buffer !== "undefined") {
24311
+ return Buffer.byteLength(value, "utf8");
24312
+ }
24313
+ return new TextEncoder().encode(value).length;
24314
+ }
24315
+ function formatBytes2(bytes) {
24316
+ if (!Number.isFinite(bytes) || bytes < 0) {
24317
+ return "0 B";
24318
+ }
24319
+ const units = ["B", "KB", "MB", "GB"];
24320
+ let value = bytes;
24321
+ let index = 0;
24322
+ while (value >= 1024 && index < units.length - 1) {
24323
+ value /= 1024;
24324
+ index += 1;
24325
+ }
24326
+ const rounded = index === 0 ? value.toFixed(0) : value.toFixed(1);
24327
+ return `${rounded} ${units[index]}`;
24328
+ }
24284
24329
 
24285
24330
  // src/cli/serve.ts
24286
24331
  init_registry();