exportSnapshot
La función exportSnapshot obtiene el snapshot de contenido de un proyecto desde el endpoint de exportación y se resuelve con el ContentSnapshot ya parseado. Valida la estructura y la versión de esquema del snapshot y — cuando le pasas un snapshotPath — además escribe el JSON del snapshot en esa ruta.
A diferencia de la mayor parte de la librería, exportSnapshot es una función a nivel de paquete (como createClient), no un método del ApiClient. Se importa directamente desde @content-island/api-client.
Es la misma función sobre la que está construida la CLI (npx content-island export), así que puedes usarla directamente desde un script de Node cuando necesites más control del que ofrece la CLI — por ejemplo, para postprocesar el snapshot antes de escribirlo.
Ejemplo:
import { exportSnapshot } from '@content-island/api-client';
const snapshot = await exportSnapshot({ accessToken: process.env.CONTENT_ISLAND_ACCESS_TOKEN!, snapshotPath: './content-island-snapshot.json',});
console.log(snapshot.meta.exportedAt, snapshot.contents.length);Interfaz
La función exportSnapshot acepta un objeto de opciones y devuelve una promesa que se resuelve con el ContentSnapshot ya parseado.
import { exportSnapshot } from '@content-island/api-client';
function exportSnapshot(options: ExportSnapshotOptions): Promise<ContentSnapshot>;Cuando indicas un snapshotPath, el fichero se escribe de forma atómica —primero en un fichero temporal y luego se renombra a su sitio—, de modo que una exportación fallida nunca deja un snapshot a medias o corrupto en disco: o bien obtienes el fichero completo, o se deja intacto el anterior. Omite snapshotPath para recibir solo el objeto parseado sin tocar el sistema de ficheros.
La vista exportada depende del token: un token de acceso con prefijo PREVIEW_ exporta la vista preview; en caso contrario, la vista published. Consulta Modo preview para saber qué es un token de preview y cómo funciona.
Parámetros
La función exportSnapshot acepta un único objeto ExportSnapshotOptions:
interface ExportSnapshotOptions { accessToken: string; snapshotPath?: string; domain?: string; secureProtocol?: boolean; apiVersion?: string;}| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
accessToken | string | Sí | Identifica el proyecto a exportar. Un token con prefijo PREVIEW_ exporta la vista preview; en caso contrario, la vista published. |
snapshotPath | string | No | Cuando se indica, escribe el JSON del snapshot en esta ruta. Omítelo para recibir solo el objeto parseado. |
domain | string | No | Sobrescribe el dominio de la API. |
secureProtocol | boolean | No | Si se debe usar HTTPS. |
apiVersion | string | No | Sobrescribe la versión de la API. |
Salida
La función exportSnapshot se resuelve con el ContentSnapshot ya parseado, que tiene la siguiente estructura:
interface ContentSnapshot { meta: SnapshotMeta; // { schemaVersion, exportedAt, projectId, view } project: Project; contents: Content[];}Si el endpoint de exportación devuelve una respuesta distinta de 2xx, la llamada se rechaza con el ApiClientError estándar del contrato. En particular, una respuesta 429 — el límite de peticiones por proyecto del endpoint de exportación — se manifiesta como un ApiClientError con el código RATE_LIMITED.