UNPKG

@servable/tools

Version:

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

57 lines (52 loc) 1.58 kB
import protocolFactory from "../domain/protocol/factory/index.js" import getProtocolsLiveClasses from "./build/lib/getProtocolsLiveClasses.js" import adaptConfigBasic from "../lib/adaptConfig/basic.js" import extractProtocol from './extractProtocol/index.js' import updateProtocolsExcerpt from './build/lib/updateProtocolsExcerpt.js' export default async ({ servableConfig }) => { const { rootProtocolPayload } = servableConfig adaptConfigBasic({ servableConfig, live: false }) const protocolsCache = [] const appProtocol = await protocolFactory({ protocolPayload: { id: rootProtocolPayload.id, type: rootProtocolPayload.type, path: rootProtocolPayload.path, version: rootProtocolPayload.version }, servableConfig, protocolsCache, instancesPathId: [ { type: 'protocol', value: { id: 'app' } } ], }) const protocolsExcerpt = {} const protocols = await extractProtocol({ protocol: appProtocol, protocolFactory: async ({ protocolPayload, instancesPathId }) => protocolFactory({ protocolPayload, servableConfig, protocolsCache, instancesPathId }), updateProtocolsExcerpt: async ({ adaptedClassesStructs }) => updateProtocolsExcerpt({ adaptedClassesStructs, protocolsExcerpt }), instancesPathId: [ { type: 'protocol', value: { id: 'app' } } ], }) const liveClasses = await getProtocolsLiveClasses({ protocols }) return { protocols, protocolsExcerpt, appProtocol, liveClasses } }