UNPKG

sb-mig

Version:

CLI to rule the world. (and handle stuff related to Storyblok CMS)

41 lines (40 loc) 1.58 kB
import { managementApi } from "../../api/managementApi.js"; import { compare, discoverDatasources, discoverManyDatasources, LOOKUP_TYPE, SCOPE, } from "../utils/discover.js"; export const syncProvidedDatasources = async (args, config) => { const { datasources } = args; const allLocalDatasources = await discoverManyDatasources({ scope: SCOPE.local, type: LOOKUP_TYPE.fileName, fileNames: datasources, }); const allExternalDatasources = await discoverManyDatasources({ scope: SCOPE.external, type: LOOKUP_TYPE.fileName, fileNames: datasources, }); // #3: compare results, prefer local ones (so we have to create final external paths array and local array of things to sync from where) const { local, external } = compare({ local: allLocalDatasources, external: allExternalDatasources, }); managementApi.datasources.syncDatasources({ providedDatasources: [...local, ...external], }, config); }; export const syncAllDatasources = async (config) => { const allLocalDatasources = await discoverDatasources({ scope: SCOPE.local, type: LOOKUP_TYPE.fileName, }); const allExternalDatasources = await discoverDatasources({ scope: SCOPE.external, type: LOOKUP_TYPE.fileName, }); const { local, external } = compare({ local: allLocalDatasources, external: allExternalDatasources, }); managementApi.datasources.syncDatasources({ providedDatasources: [...local, ...external], }, config); };