UNPKG

@tokens-studio/sdk

Version:
62 lines 2.59 kB
import { resolveReleaseVersion } from './resolve-release-version.js'; import { getArtifactUrl, getRelease } from '../utils/queries.js'; import { fetchZIP } from './fetch-zip.js'; import { combineFunctionsConfig } from './combine-functions-config.js'; import { tasks } from '@tokens-studio/cli-kit'; import { error } from '../utils/messages.js'; export async function fetchRelease(client, config) { const { project, org, release } = config; // fetch sets data from release const version = await resolveReleaseVersion(release, { project, org, client, }); let result = { tokens: [], configs: [] }; await tasks({ start: 'Fetching release data', end: 'Done!', }, [ { pending: 'release', start: 'Getting release', end: 'Fetched release', while: async () => { const { tokensArtifactUrl: tokensPath, configArtifactUrl: configPath, } = await getRelease(client, { project, organization: org, version }); const [tokensUrl, configUrl] = await Promise.all([ tokensPath ? getArtifactUrl(client, { project, organization: org, releaseVersion: version, artifactPath: tokensPath, }) : Promise.resolve(null), configPath ? getArtifactUrl(client, { project, organization: org, releaseVersion: version, artifactPath: configPath, }) : Promise.resolve(null), ]); const [tokenFiles, configFiles] = await Promise.all([tokensUrl, configUrl].map((url) => url ? fetchZIP(url) : Promise.resolve([]))); const configs = await Promise.all((configFiles ?? []).map(async (cfgFile) => { const combinedContent = await combineFunctionsConfig(JSON.parse(cfgFile.contents)); return { filename: cfgFile.filename, contents: combinedContent, }; })); result = { tokens: tokenFiles ?? [], configs }; }, onError(e) { error(e); throw e; }, }, ]); return result; } //# sourceMappingURL=fetch-release.js.map