UNPKG

@datalayer/core

Version:

[![Datalayer](https://assets.datalayer.tech/datalayer-25.svg)](https://datalayer.io)

83 lines (82 loc) 3.21 kB
/* * Copyright (c) 2023-2025 Datalayer, Inc. * Distributed under the terms of the Modified BSD License. */ /** * Runtime snapshots API functions for the Datalayer platform. * * Provides functions for managing runtime snapshots (saved runtime states). * * @module api/runtimes/snapshots */ import { requestDatalayerAPI } from '../DatalayerApi'; import { API_BASE_PATHS, DEFAULT_SERVICE_URLS } from '../constants'; import { validateToken, validateRequiredString } from '../utils/validation'; /** * Create a snapshot of a runtime instance. * @param token - Authentication token * @param data - Snapshot creation configuration * @param baseUrl - Base URL for the API (defaults to production Runtimes URL) * @returns Promise resolving to the created snapshot response * @throws {Error} If authentication token is missing or invalid */ export const createSnapshot = async (token, data, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => { validateToken(token); return requestDatalayerAPI({ url: `${baseUrl}${API_BASE_PATHS.RUNTIMES}/runtime-snapshots`, method: 'POST', token, body: data, }); }; /** * List all runtime snapshots. * @param token - Authentication token * @param baseUrl - Base URL for the API (defaults to production Runtimes URL) * @returns Promise resolving to list of snapshots * @throws {Error} If authentication token is missing or invalid */ export const listSnapshots = async (token, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => { validateToken(token); return requestDatalayerAPI({ url: `${baseUrl}${API_BASE_PATHS.RUNTIMES}/runtime-snapshots`, method: 'GET', token, }); }; /** * Get details for a specific runtime snapshot. * @param token - Authentication token * @param snapshotId - The unique identifier of the snapshot * @param baseUrl - Base URL for the API (defaults to production Runtimes URL) * @returns Promise resolving to snapshot details wrapped in response * @throws {Error} If authentication token is missing or invalid * @throws {Error} If snapshot ID is missing or invalid */ export const getSnapshot = async (token, snapshotId, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => { validateToken(token); validateRequiredString(snapshotId, 'Snapshot ID'); return requestDatalayerAPI({ url: `${baseUrl}${API_BASE_PATHS.RUNTIMES}/runtime-snapshots/${snapshotId}`, method: 'GET', token, }); }; /** * Delete a runtime snapshot. * @param token - Authentication token * @param snapshotId - The unique identifier of the snapshot to delete * @param baseUrl - Base URL for the API (defaults to production Runtimes URL) * @returns Promise resolving when deletion is complete * @throws {Error} If authentication token is missing or invalid * @throws {Error} If snapshot ID is missing or invalid */ export const deleteSnapshot = async (token, snapshotId, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => { validateToken(token); validateRequiredString(snapshotId, 'Snapshot ID'); return requestDatalayerAPI({ url: `${baseUrl}${API_BASE_PATHS.RUNTIMES}/runtime-snapshots/${snapshotId}`, method: 'DELETE', token, }); };