UNPKG

@applicaster/zapplicaster-cli

Version:

CLI Tool for the zapp app and Quick Brick project

56 lines (43 loc) 1.57 kB
const R = require("ramda"); const { saveRemoteJsonToFile, saveFontFiles, saveAssets, } = require("../../download"); const { renderConfigFile } = require("../../render"); /** * @typedef configuration * @type {Object} * @property {String} appVersionId: ID of the app version in Zapp * @property {Object} buildParams: zapp build params for the app * @property {String} platform: Platform of the app * @property {Boolean} openSdk: whether or not the app should use an open SDK * @property {Boolean} verbose: verbose output flag */ /** * Retrieves configuration files from S3 and copy them locally * to the matching (config|assets|fonts)/${platform} folder * @param {configuration} configuration */ async function configFilesRetriever(configuration) { const { buildParams, template, runtimeConfigurationUrls } = configuration; const { configFiles = [] } = template; if (Array.isArray(configFiles) && !R.propEq("length", 0, configFiles)) { await Promise.all(R.map(renderConfigFile(configuration), configFiles)); } const configFilesUrls = Object.entries(runtimeConfigurationUrls).map( ([key, value]) => { const newKey = key.replace("_url", ".json"); return [newKey, value]; } ); // download files & save json files await Promise.all( R.map(saveRemoteJsonToFile(configuration), configFilesUrls) ); const { fonts_url, fonts, assets_url } = buildParams; saveFontFiles(configuration, fonts_url, fonts); saveAssets(configuration, assets_url); return true; } module.exports = { configFilesRetriever };