UNPKG

@needle-tools/engine

Version:

Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.

42 lines (37 loc) 1.44 kB
import { createBuildInfoFile } from '../common/buildinfo.js'; import { waitForBuildPipelineToFinish } from './build-pipeline.js'; import { getOutputDirectory } from './config.js'; let level = 0; /** Create a buildinfo file in the build directory * @param {import('../types').userSettings} userSettings * @returns {import('vite').Plugin | null} */ export const needleBuildInfo = (command, config, userSettings) => { if (userSettings?.noBuildInfo) return null; return { name: 'needle:buildinfo', apply: "build", enforce: "post", buildStart: () => { level++; }, closeBundle: async () => { if (--level > 0) { console.log("[needle-buildinfo] - Skipped because of nested build"); return; } const task = waitForBuildPipelineToFinish(); if (task instanceof Promise) { console.log("[needle-buildinfo] - Waiting for build pipeline to finish"); await task.catch(() => { }).finally(() => console.log("[needle-buildinfo] - Build pipeline finished!")); } // wait for gzip await delay(500); const buildDirectory = getOutputDirectory(); createBuildInfoFile(buildDirectory); } } } function delay(ms) { return new Promise(res => setTimeout(res, ms)); }