UNPKG

@curvenote/cli

Version:
45 lines (44 loc) 1.5 kB
import { stageUploads } from './stage.js'; import { commitUploads } from './commit.js'; import { performFileUploads } from './utils.js'; export * from './types.js'; export * from './utils.js'; export async function uploadToTmpCdn(session, opts) { return uploadToCdn(session, session.config.tempCdnUrl, opts); } export async function uploadToCdn(session, cdn, opts) { const { cdnKey, cached_items, upload_items, files } = await stageUploads(session); const filesToUpload = files .map((file) => { const upload = upload_items.find((f) => f.md5 === file.md5); if (!upload) { session.log.error(`🚨 Could not find upload url for ${file.md5} ${file.from}, upload will be skipped`); return null; } return { from: file.from, to: upload.path, md5: file.md5, size: file.size, contentType: file.contentType, signedUrl: upload.signed_url, }; }) .filter((f) => f !== null); if (filesToUpload.length > 0) { await performFileUploads(session, filesToUpload, opts); } await commitUploads(session, { cdn, cdnKey, files: [ ...cached_items, ...upload_items.map((f) => { // eslint-disable-next-line @typescript-eslint/no-unused-vars const { signed_url, ...rest } = f; return rest; }), ], }); return { cdnKey }; }