1.1.2Updated a month ago
import { IsValidVersionNumber } from "$utils/version_helpers.ts";
import { Sort } from "$utils/sort_utils.ts";

const published_viapak_versions = Deno.readDirSync('./packages/@viapak/viapak')
  .filter(e => e.isDirectory && IsValidVersionNumber(e.name))
  .map(e => e.name)
  .toArray()
  .sort(Sort.Version.Descending);

if(published_viapak_versions.length === 0) throw new Error('No Viapak versions have been published.')
const published_viapak_latest = published_viapak_versions[0];

// Fix imports to parent packages folder

console.log(`Preparing to patch Viapak@${published_viapak_latest} for build process...`);

const deno_file_path = `./packages/@viapak/viapak/${published_viapak_latest}/deno.json`;

const original_deno_json_contents = Deno.readTextFileSync(deno_file_path);

const modified_deno_json_contents = original_deno_json_contents
  // fix build script
    .replace(`": "./packages/`, `": "../../../../packages/`)
  ;
console.log("patch generated");

// Replace deno.json with patched version
Deno.writeTextFileSync(deno_file_path, modified_deno_json_contents);
console.log("deno.json - patched");

const build_import_path = `./packages/@viapak/viapak/${published_viapak_latest}/www/dev.ts`;

setTimeout(() => {
  // Restore original deno.json file
  Deno.writeTextFileSync(deno_file_path, original_deno_json_contents);
  console.log("deno.json - original file restored");
}, 500)

console.log("build process started");
await import(build_import_path);