UNPKG

@applicaster/zapplicaster-cli

Version:

CLI Tool for the zapp app and Quick Brick project

84 lines (65 loc) 1.91 kB
const R = require("ramda"); const { resolve } = require("path"); const { inspect } = require("util"); const { writeJsonToFile } = require("../../file"); const logger = require("../../logger"); function enrichManifest({ manifest, packageJson }) { const shouldEnrichManifest = packageJson.applicaster?.quickbrick?.min_version; if (shouldEnrichManifest) { return { ...manifest, characteristics: { ...(manifest.characteristics || {}), applicaster: { quickbrick: packageJson.applicaster.quickbrick }, }, }; } return manifest; } function renderManifest({ manifestConfig, packageJson, pluginPath, version, dryRun, }) { return async function (platform) { const manifest = manifestConfig({ platform, version }); const enrichedManifest = enrichManifest({ manifest, packageJson }); if (dryRun) { logger.log("Running with --dry-run flag. Not writing manifests"); logger.log("manifest: ", inspect(enrichedManifest)); return true; } return writeJsonToFile( `${pluginPath}/manifests/${platform}.json`, enrichedManifest ); }; } async function generateManifest(configuration) { const { pluginPath, platforms, version, dryRun } = configuration; if (!platforms) { logger.log("Manifest does not exsist, Skipping generation"); return true; } try { const manifestConfig = require( resolve(pluginPath, "manifests/manifest.config.js") ); const packageJson = require(resolve(pluginPath, "package.json")); const manifestRenderer = renderManifest({ manifestConfig, pluginPath, packageJson, version, dryRun, }); return Promise.all(R.map(manifestRenderer, platforms)); } catch (e) { throw new Error( "An error occured when generating the manifest: " + e.message ); } } module.exports = { generateManifest };