UNPKG

@servable/tools

Version:

Servable tools is a utility that builds a protocol's manifest and documents it.

30 lines (25 loc) 819 B
import _ from 'underscore' import adaptProtocolPayload from '../../../../lib/adaptProtocolPayload.js' import cleanProtocols from '../../../../lib/cleanProtocols.js' export default async ({ protocolsPayloads, protocolFactory, instancesPathId }) => { let items = [] for (var i in protocolsPayloads) { const protocolPayload = protocolsPayloads[i] const protocol = await protocolFactory({ protocolPayload, instancesPathId }) //#TODO: protocol.loader const ownProtocols = await protocol.loader.ownProtocols() let a = (ownProtocols && ownProtocols.length) ? ownProtocols.map(adaptProtocolPayload) : null if (a && a.length) { items = items.concat(a) } } items = _.flatten(items.filter(a => a)).filter(a => a) items = cleanProtocols(items) return items }