Skip to main content
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
It is unknown whether this package works with Cloudflare Workers
It is unknown whether this package works with Node.js
This package works with Deno
It is unknown whether this package works with Bun
It is unknown whether this package works with Browsers
JSR Score
35%
Published
4 months ago (3.3.2)
Package root>cli>check-addon-base-exists.ts
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); } }