John Cowen 6589cbbd0d
ui: Move to Workspaced Structure (#8994)
* ui: Add the most basic workspace root in /ui

* We already have a LICENSE file in the repository root

* Change directory path in build scripts ui-v2 -> ui

* Make yarn install flags configurable from elsewhere

* Minimal workspace root makefile

* Call the new docker specific target

* Update yarn in the docker build image

* Reconfigure the netlify target and move to the higher makefile

* Move ui-v2 -> ui/packages/consul-ui

* Change repo root to refleect new folder structure

* Temporarily don't hoist consul-api-double

* Fixup CI configuration

* Fixup lint errors

* Fixup Netlify target
2020-10-21 15:23:16 +01:00

39 lines
1.1 KiB
JavaScript

import Service from '@ember/service';
import getStorage from 'consul-ui/utils/storage/local-storage';
const SCHEME = 'consul';
const storage = getStorage(SCHEME);
// promise aware assertion
export const ifNotBlocking = function(repo) {
return repo.findBySlug('client').then(function(settings) {
return typeof settings.blocking !== 'undefined' && !settings.blocking;
});
};
export default Service.extend({
storage: storage,
findAll: function(key) {
return Promise.resolve(this.storage.all());
},
findBySlug: function(slug) {
return Promise.resolve(this.storage.getValue(slug));
},
persist: function(obj) {
const storage = this.storage;
Object.keys(obj).forEach((item, i) => {
storage.setValue(item, obj[item]);
});
return Promise.resolve(obj);
},
delete: function(obj) {
// TODO: Loop through and delete the specified keys
if (!Array.isArray(obj)) {
obj = [obj];
}
const storage = this.storage;
const item = obj.reduce(function(prev, item, i, arr) {
storage.removeValue(item);
return prev;
}, {});
return Promise.resolve(item);
},
});