/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: BUSL-1.1 */ import Helper from '@ember/component/helper'; import { get } from '@ember/object'; import { Collection as Service } from 'consul-ui/models/service'; import { Collection as ServiceInstance } from 'consul-ui/models/service-instance'; const collections = { service: Service, 'service-instance': ServiceInstance, }; class EmptyCollection {} export default class CollectionHelper extends Helper { compute([collection, str], hash) { if (collection.length > 0) { // TODO: Looksee if theres ever going to be a public way to get this const modelName = get(collection, 'firstObject')._internalModel.modelName; const Collection = collections[modelName]; return new Collection(collection); } else { return new EmptyCollection(); } } }