This release is 18 versions behind 5.0.12 — the latest version of @lost-c3/lib. Jump to latest
Lost for easy making Construct 3 Addons.
This package works with DenoIt is unknown whether this package works with Cloudflare Workers, Node.js, Bun, Browsers




JSR Score
35%
Published
4 months ago (3.3.2)
import DenoJson from '../deno.json' with { type: "json" }; import { Colors, join, Logger } from "../deps.ts"; import type { AddonType } from "../lib/config.ts"; import { Paths } from "../shared/paths.ts"; export async function downloadAddonBase(addonType: AddonType) { Logger.Log(`🌐 Downloading addon base ...`); await Deno.mkdir(join(Paths.Root, '.addon_base'), { recursive: true }); const response = await fetch(Paths.Links.AddonBase[addonType]); if (!response.ok) { Logger.Error('build', 'Error while getting addon base', `Status: ${response.statusText}`); Deno.exit(1); } const fileContent = await response.text(); const metadata: IAddonBaseMetadata = { download_url: Paths.Links.AddonBase[addonType], addon_type: addonType, version: DenoJson.version, timestamp: Date.now() } await Deno.writeTextFile(join(Paths.ProjectFolders.AddonBase, 'metadata.json'), JSON.stringify(metadata, null, 4)); await Deno.writeTextFile(Paths.ProjectFiles.AddonBase[addonType], fileContent); Logger.Success(Colors.bold(`${Colors.green('Successfully')} installed addon base!`)); } export default async function checkAddonBaseExists(addonType: AddonType) { try { const dirStat = await Deno.stat(Paths.ProjectFiles.AddonBase[addonType]); if (dirStat) { const fileContent = await Deno.readTextFile(join(Paths.ProjectFolders.AddonBase, 'metadata.json')); const metadata: IAddonBaseMetadata = JSON.parse(fileContent); if (metadata.version !== DenoJson.version) { await downloadAddonBase(addonType); } } } catch (_e) { await downloadAddonBase(addonType); } }