0.1.5Updated 6 months ago
import { Viapak } from "@infinity-beyond/modules/viapak.ts";
import { Zip } from "@infinity-beyond/modules/zip.ts";
import { join } from "https://deno.land/std@0.216.0/path/mod.ts";

export async function prepareApplication() {
  console.log(`Building...`);

  const static_zip_contents = await Viapak.body('/dist/static.zip');

  if(static_zip_contents) {
    await Zip.Unzip(static_zip_contents, join(Deno.cwd(), 'app/static'));
    console.log(`  '- built static web assets\n`)
  } else {
    console.warn(`  '- Could not build static web assets - This may be a ViaPak issue\n`);
  }

  const islands_zip_contents = await Viapak.body('/dist/islands.zip');

  if(islands_zip_contents) {
    await Zip.Unzip(islands_zip_contents, join(Deno.cwd(), 'app/islands'));
    console.log(`  '- built island assets\n`)
  } else {
    console.warn(`  '- Could not build island assets - This may be a ViaPak issue\n`);
  }

  const tailwind_file = await Viapak.text("/dist/required-classes.tsx");
  Deno.writeTextFileSync(join(Deno.cwd(), 'app/components/_required_classes.tsx'), tailwind_file);

  console.log(`  '- built tailwind dependencies`);
}