fix(cli): add automatic handler of .node files for codebase bundler

This commit is contained in:
Ruben Fiszel
2025-11-07 23:10:21 +00:00
parent 5e6c2163e8
commit 9cdc176537
3 changed files with 67 additions and 17 deletions

View File

@@ -2,7 +2,7 @@ import { Codebase, SyncOptions } from "../core/conf.ts";
import { log } from "../../deps.ts";
import { digestDir } from "./utils.ts";
export type SyncCodebase = Codebase & { getDigest: () => Promise<string> };
export type SyncCodebase = Codebase & { getDigest: (forceTar?: boolean) => Promise<string> };
export function listSyncCodebases(
options: SyncOptions
): SyncCodebase[] {
@@ -13,16 +13,21 @@ export function listSyncCodebases(
}
for (const codebase of options?.codebases ?? []) {
let _digest: string | undefined = undefined;
const getDigest: () => Promise<string> = async () => {
if (_digest == undefined) {
let alreadyPrinted = false;
const getDigest: (forceTar?: boolean) => Promise<string> = async (forceTar?: boolean) => {
if (_digest == undefined || forceTar) {
_digest = await digestDir(
codebase.relative_path,
JSON.stringify(codebase)
);
if (Array.isArray(codebase.assets) && codebase.assets.length > 0) {
if (forceTar || (Array.isArray(codebase.assets) && codebase.assets.length > 0)) {
_digest += ".tar";
}
log.info(`Codebase ${codebase.relative_path}, digest: ${_digest}`);
if (!alreadyPrinted) {
alreadyPrinted = true;
log.info(`Codebase ${codebase.relative_path}, digest: ${_digest}`);
}
return _digest;
}
return _digest;
};