import TypeNode from 'type/type-node'; import InstanceNode from 'type/instance-node'; import FetchListFieldNodesOperation from 'operation/fetch-list-field-nodes'; import Operation, { OperationInput } from 'operation'; interface Input extends OperationInput { readonly type_node: TypeNode; } class FetchTypeInstancesOperation extends Operation { protected async performInternal(): Promise { const type_node = this.getTypeNode(); const repository = this.getRepository(); const account = this.getAccount(); const input = { node: type_node, field_key: 'instances', repository, account }; const operation = new FetchListFieldNodesOperation(input); const nodes = await operation.perform(); return nodes as InstanceNode[]; } private getTypeNode(): TypeNode { const input = this.getInput(); return input.type_node; } } export default FetchTypeInstancesOperation;