UNPKG

@sanity/migrate

Version:

Tooling for running data migrations on Sanity.io projects

21 lines (19 loc) 842 B
import {maybeDecompress} from '../fs-webstream/maybeDecompress.js' import {readFileAsWebStream} from '../fs-webstream/readFileAsWebStream.js' import {drain} from '../tar-webstream/drain.js' import {untar} from '../tar-webstream/untar.js' import {streamToAsyncIterator} from '../utils/streamToAsyncIterator.js' export async function* fromExportArchive(path: string): AsyncGenerator<Uint8Array, void, unknown> { for await (const [header, entry] of streamToAsyncIterator( untar(await maybeDecompress(readFileAsWebStream(path))), )) { if (header.type === 'file' && header.name.endsWith('.ndjson')) { for await (const chunk of streamToAsyncIterator(entry)) { yield chunk } } else { // It's not ndjson, so drain the entry stream, so we can move on with the next entry await drain(entry) } } }