polen
Version:
A framework for delightful GraphQL developer portals
24 lines • 895 B
JavaScript
import { computed, reactive } from '@vue/reactivity';
export const create = (dataTypeOperations) => {
return new ExtensibleData(dataTypeOperations);
};
export class ExtensibleData {
value = computed(() => {
const namespacedDataItems = Array.from(this.namespacedReactiveData.values());
const data = this.dataTypeOperations.join(namespacedDataItems);
return data;
});
namespacedReactiveData = reactive(new Map());
dataTypeOperations;
constructor(dataTypeOperations) {
this.dataTypeOperations = dataTypeOperations;
}
get(namespace) {
if (!this.namespacedReactiveData.has(namespace)) {
const data = this.dataTypeOperations.create();
this.namespacedReactiveData.set(namespace, data);
}
return this.namespacedReactiveData.get(namespace);
}
}
//# sourceMappingURL=extensible-data.js.map