dopry/netlify-cms

View on GitHub
src/integrations/index.js

Summary

Maintainability
A
0 mins
Test Coverage
import Algolia from './providers/algolia/implementation';
import AssetStore from './providers/assetStore/implementation';
import { Map } from 'immutable';

export function resolveIntegrations(interationsConfig, getToken) {
  let integrationInstances = Map({});
  interationsConfig.get('providers').forEach((providerData, providerName) => {
    switch (providerName) {
      case 'algolia':
        integrationInstances = integrationInstances.set('algolia', new Algolia(providerData));
        break;
      case 'assetStore':
        integrationInstances = integrationInstances.set('assetStore', new AssetStore(providerData, getToken));
        break;
    }
  });
  return integrationInstances;
}


export const getIntegrationProvider = (function() {
  let integrations = null;

  return (interationsConfig, getToken, provider) => {
    if (integrations) {
      return integrations.get(provider);
    } else {
      integrations = resolveIntegrations(interationsConfig, getToken);
      return integrations.get(provider);
    }
  };
}());