mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-19 16:02:14 +00:00
fix(cli): support better esm mode for codebases
This commit is contained in:
+22
-10
@@ -2,34 +2,46 @@ import { Codebase, SyncOptions } from "../core/conf.ts";
|
||||
import { log } from "../../deps.ts";
|
||||
import { digestDir } from "./utils.ts";
|
||||
|
||||
export type SyncCodebase = Codebase & { getDigest: (forceTar?: boolean) => Promise<string> };
|
||||
export function listSyncCodebases(
|
||||
options: SyncOptions
|
||||
): SyncCodebase[] {
|
||||
export type SyncCodebase = Codebase & {
|
||||
getDigest: (forceTar?: boolean) => Promise<string>;
|
||||
};
|
||||
export function listSyncCodebases(options: SyncOptions): SyncCodebase[] {
|
||||
const res: SyncCodebase[] = [];
|
||||
const nb_codebase = options?.codebases?.length ?? 0;
|
||||
if (nb_codebase > 0) {
|
||||
log.info(`Found ${nb_codebase} codebases: ${options?.codebases?.map((c) => c.relative_path).join(", ")}`);
|
||||
log.info(
|
||||
`Found ${nb_codebase} codebases: ${options?.codebases
|
||||
?.map((c) => c.relative_path)
|
||||
.join(", ")}`
|
||||
);
|
||||
}
|
||||
for (const codebase of options?.codebases ?? []) {
|
||||
let _digest: string | undefined = undefined;
|
||||
let alreadyPrinted = false;
|
||||
const getDigest: (forceTar?: boolean) => Promise<string> = async (forceTar?: boolean) => {
|
||||
if (_digest == undefined || forceTar) {
|
||||
let hasAssets = false;
|
||||
const getDigest: (forceTar?: boolean) => Promise<string> = async (
|
||||
forceTar?: boolean
|
||||
) => {
|
||||
if (_digest == undefined) {
|
||||
_digest = await digestDir(
|
||||
codebase.relative_path,
|
||||
JSON.stringify(codebase)
|
||||
);
|
||||
if (forceTar || (Array.isArray(codebase.assets) && codebase.assets.length > 0)) {
|
||||
_digest += ".tar";
|
||||
if (codebase.format == "esm") {
|
||||
_digest += ".esm";
|
||||
}
|
||||
if (!alreadyPrinted) {
|
||||
alreadyPrinted = true;
|
||||
log.info(`Codebase ${codebase.relative_path}, digest: ${_digest}`);
|
||||
}
|
||||
hasAssets =
|
||||
Array.isArray(codebase.assets) && codebase.assets.length > 0;
|
||||
}
|
||||
if (forceTar || hasAssets) {
|
||||
return _digest + ".tar";
|
||||
} else {
|
||||
return _digest;
|
||||
}
|
||||
return _digest;
|
||||
};
|
||||
res.push({ ...codebase, getDigest });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user