text: 'use strict';
  
  module.exports = () => {
      const _features = [];
      const _archive = [];
      return {
          getFeature: name => {
              const toggle = _features.find(f => f.name === name);
              if (toggle) {
                  return Promise.resolve(toggle);
              }
              return Promise.reject(new Error('could not find toggle'));
          },
          hasFeature: name => {
              const toggle = _features.find(f => f.name === name);
              const archived = _archive.find(f => f.name === name);
              if (toggle) {
                  return Promise.resolve({ name, archived: false });
              }
              if (archived) {
                  return Promise.resolve({ name, archived: true });
              }
              return Promise.reject();
          },
          getFeatures: () => Promise.resolve(_features),
          addFeature: feature => _features.push(feature),
          getArchivedFeatures: () => Promise.resolve(_archive),
          addArchivedFeature: feature => _archive.push(feature),
      };
  };
  