UNPKG

@leosprograms/vf-graphql-holochain

Version:

GraphQL schema bindings for the Holochain implementation of ValueFlows

46 lines 9.02 kB
/** * Resolvers for Plan fields * * @package: HoloREA * @since: 2019-08-27 */ import { DEFAULT_VF_MODULES, VfModule } from '../types.js'; import { extractEdges, mapZomeFn } from '../connection.js'; import agentQueries from '../queries/agent.js'; export default (enabledVFModules = DEFAULT_VF_MODULES, dnaConfig, conductorUri) => { const hasHistory = -1 !== enabledVFModules.indexOf(VfModule.History); const hasProcess = -1 !== enabledVFModules.indexOf(VfModule.Process); const hasCommitment = -1 !== enabledVFModules.indexOf(VfModule.Commitment); const hasAgent = -1 !== enabledVFModules.indexOf(VfModule.Agent); const readRevision = mapZomeFn(dnaConfig, conductorUri, 'combined', 'plan', 'get_revision'); const readProcesses = mapZomeFn(dnaConfig, conductorUri, 'combined', 'indexing', 'query_processes'); const queryCommitments = mapZomeFn(dnaConfig, conductorUri, 'combined', 'indexing', 'query_commitments'); const readAgent = agentQueries(dnaConfig, conductorUri)['agent']; return Object.assign((hasProcess ? { processes: async (record) => { const processes = await readProcesses({ params: { plannedWithin: record.id } }); return extractEdges(processes); }, } : {}), (hasCommitment ? { independentDemands: async (record) => { const commitments = await queryCommitments({ params: { independentDemandOf: record.id } }); return extractEdges(commitments); }, nonProcessCommitments: async (record) => { const commitments = await queryCommitments({ params: { plannedWithin: record.id } }); return extractEdges(commitments); }, } : {}), (hasAgent ? { involvedAgents: () => { throw new Error('resolver unimplemented'); }, inScopeOf: async (record) => { return (await Promise.all((record.inScopeOf || []).map((address) => readAgent(record, { address })))); }, } : {}), (hasHistory ? { revision: async (record, args) => { return (await readRevision(args)).plan; }, } : {})); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Jlc29sdmVycy9wbGFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFpQixrQkFBa0IsRUFBRSxRQUFRLEVBQW1ELE1BQU0sYUFBYSxDQUFBO0FBQzFILE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFhMUQsT0FBTyxZQUFZLE1BQU0scUJBQXFCLENBQUE7QUFHOUMsZUFBZSxDQUFDLG1CQUErQixrQkFBa0IsRUFBRSxTQUF3QixFQUFFLFlBQW9CLEVBQUUsRUFBRTtJQUNuSCxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BFLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUMxRSxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBMkIsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBQ3JILE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBd0MsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUE7SUFDMUksTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQThDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFBO0lBQ3JKLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFaEUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUNsQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDWixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQVksRUFBc0IsRUFBRTtZQUNwRCxNQUFNLFNBQVMsR0FBRyxNQUFNLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQy9FLE9BQU8sWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ2hDLENBQUM7S0FDRixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDUCxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDZixrQkFBa0IsRUFBRSxLQUFLLEVBQUUsTUFBWSxFQUF5QixFQUFFO1lBQ2hFLE1BQU0sV0FBVyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQzFGLE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ2xDLENBQUM7UUFDRCxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsTUFBWSxFQUF5QixFQUFFO1lBQ25FLE1BQU0sV0FBVyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtZQUNwRixPQUFPLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNsQyxDQUFDO0tBQ0YsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ1AsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ1YsY0FBYyxFQUFFLEdBQUcsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDM0MsQ0FBQztRQUNELFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBcUMsRUFBOEIsRUFBRTtZQUNyRixPQUFPLENBQUMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUMsRUFBRSxDQUFBLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ25HLENBQUM7S0FDRixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDUCxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDWixRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQVksRUFBRSxJQUEyQyxFQUFpQixFQUFFO1lBQzNGLE9BQU8sQ0FBQyxNQUFNLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUN4QyxDQUFDO0tBQ0YsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ1IsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzb2x2ZXJzIGZvciBQbGFuIGZpZWxkc1xuICpcbiAqIEBwYWNrYWdlOiBIb2xvUkVBXG4gKiBAc2luY2U6ICAgMjAxOS0wOC0yN1xuICovXG5cbmltcG9ydCB7IEROQUlkTWFwcGluZ3MsIERFRkFVTFRfVkZfTU9EVUxFUywgVmZNb2R1bGUsIEFnZW50QWRkcmVzcywgQnlSZXZpc2lvbiwgQWRkcmVzc2FibGVJZGVudGlmaWVyIH0gZnJvbSAnLi4vdHlwZXMuanMnXG5pbXBvcnQgeyBleHRyYWN0RWRnZXMsIG1hcFpvbWVGbiB9IGZyb20gJy4uL2Nvbm5lY3Rpb24uanMnXG5cbmltcG9ydCB7XG4gIFByb2Nlc3MsXG4gIFBsYW5Qcm9jZXNzRmlsdGVyUGFyYW1zLFxuICBQbGFuLFxuICBQbGFuUmVzcG9uc2UsXG4gIENvbW1pdG1lbnQsXG4gIFByb2Nlc3NDb25uZWN0aW9uLFxuICBDb21taXRtZW50Q29ubmVjdGlvbixcbiAgQWNjb3VudGluZ1Njb3BlXG59IGZyb20gJ0BsZW9zcHJvZ3JhbXMvdmYtZ3JhcGhxbCdcbmltcG9ydCB7IENvbW1pdG1lbnRTZWFyY2hJbnB1dCwgUHJvY2Vzc1NlYXJjaElucHV0IH0gZnJvbSAnLi96b21lU2VhcmNoSW5wdXRUeXBlcy5qcydcbmltcG9ydCBhZ2VudFF1ZXJpZXMgZnJvbSAnLi4vcXVlcmllcy9hZ2VudC5qcydcblxuXG5leHBvcnQgZGVmYXVsdCAoZW5hYmxlZFZGTW9kdWxlczogVmZNb2R1bGVbXSA9IERFRkFVTFRfVkZfTU9EVUxFUywgZG5hQ29uZmlnOiBETkFJZE1hcHBpbmdzLCBjb25kdWN0b3JVcmk6IHN0cmluZykgPT4ge1xuICBjb25zdCBoYXNIaXN0b3J5ID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5IaXN0b3J5KVxuICBjb25zdCBoYXNQcm9jZXNzID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5Qcm9jZXNzKVxuICBjb25zdCBoYXNDb21taXRtZW50ID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5Db21taXRtZW50KVxuICBjb25zdCBoYXNBZ2VudCA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuQWdlbnQpXG5cbiAgY29uc3QgcmVhZFJldmlzaW9uID0gbWFwWm9tZUZuPEJ5UmV2aXNpb24sIFBsYW5SZXNwb25zZT4oZG5hQ29uZmlnLCBjb25kdWN0b3JVcmksICdjb21iaW5lZCcsICdwbGFuJywgJ2dldF9yZXZpc2lvbicpXG4gIGNvbnN0IHJlYWRQcm9jZXNzZXMgPSBtYXBab21lRm48UHJvY2Vzc1NlYXJjaElucHV0LCBQcm9jZXNzQ29ubmVjdGlvbj4oZG5hQ29uZmlnLCBjb25kdWN0b3JVcmksICdjb21iaW5lZCcsICdpbmRleGluZycsICdxdWVyeV9wcm9jZXNzZXMnKVxuICBjb25zdCBxdWVyeUNvbW1pdG1lbnRzID0gbWFwWm9tZUZuPENvbW1pdG1lbnRTZWFyY2hJbnB1dCwgQ29tbWl0bWVudENvbm5lY3Rpb24+KGRuYUNvbmZpZywgY29uZHVjdG9yVXJpLCAnY29tYmluZWQnLCAnaW5kZXhpbmcnLCAncXVlcnlfY29tbWl0bWVudHMnKVxuICBjb25zdCByZWFkQWdlbnQgPSBhZ2VudFF1ZXJpZXMoZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpWydhZ2VudCddXG5cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgKGhhc1Byb2Nlc3MgPyB7XG4gICAgICBwcm9jZXNzZXM6IGFzeW5jIChyZWNvcmQ6IFBsYW4pOiBQcm9taXNlPFByb2Nlc3NbXT4gPT4ge1xuICAgICAgICBjb25zdCBwcm9jZXNzZXMgPSBhd2FpdCByZWFkUHJvY2Vzc2VzKHsgcGFyYW1zOiB7IHBsYW5uZWRXaXRoaW46IHJlY29yZC5pZCB9IH0pXG4gICAgICAgIHJldHVybiBleHRyYWN0RWRnZXMocHJvY2Vzc2VzKVxuICAgICAgfSxcbiAgICB9IDoge30pLFxuICAgIChoYXNDb21taXRtZW50ID8ge1xuICAgICAgaW5kZXBlbmRlbnREZW1hbmRzOiBhc3luYyAocmVjb3JkOiBQbGFuKTogUHJvbWlzZTxDb21taXRtZW50W10+ID0+IHtcbiAgICAgICAgY29uc3QgY29tbWl0bWVudHMgPSBhd2FpdCBxdWVyeUNvbW1pdG1lbnRzKHsgcGFyYW1zOiB7IGluZGVwZW5kZW50RGVtYW5kT2Y6IHJlY29yZC5pZCB9IH0pXG4gICAgICAgIHJldHVybiBleHRyYWN0RWRnZXMoY29tbWl0bWVudHMpXG4gICAgICB9LFxuICAgICAgbm9uUHJvY2Vzc0NvbW1pdG1lbnRzOiBhc3luYyAocmVjb3JkOiBQbGFuKTogUHJvbWlzZTxDb21taXRtZW50W10+ID0+IHtcbiAgICAgICAgY29uc3QgY29tbWl0bWVudHMgPSBhd2FpdCBxdWVyeUNvbW1pdG1lbnRzKHsgcGFyYW1zOiB7IHBsYW5uZWRXaXRoaW46IHJlY29yZC5pZCB9IH0pXG4gICAgICAgIHJldHVybiBleHRyYWN0RWRnZXMoY29tbWl0bWVudHMpXG4gICAgICB9LFxuICAgIH0gOiB7fSksXG4gICAgKGhhc0FnZW50ID8ge1xuICAgICAgaW52b2x2ZWRBZ2VudHM6ICgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZXNvbHZlciB1bmltcGxlbWVudGVkJylcbiAgICAgIH0sXG4gICAgICBpblNjb3BlT2Y6IGFzeW5jIChyZWNvcmQ6IHsgaW5TY29wZU9mOiBBZ2VudEFkZHJlc3NbXSB9KTogUHJvbWlzZTxBY2NvdW50aW5nU2NvcGVbXT4gPT4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKChyZWNvcmQuaW5TY29wZU9mIHx8IFtdKS5tYXAoKGFkZHJlc3MpPT5yZWFkQWdlbnQocmVjb3JkLCB7YWRkcmVzc30pKSkpXG4gICAgICB9LFxuICAgIH0gOiB7fSksXG4gICAgKGhhc0hpc3RvcnkgPyB7XG4gICAgICByZXZpc2lvbjogYXN5bmMgKHJlY29yZDogUGxhbiwgYXJnczogeyByZXZpc2lvbklkOiBBZGRyZXNzYWJsZUlkZW50aWZpZXIgfSk6IFByb21pc2U8UGxhbj4gPT4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHJlYWRSZXZpc2lvbihhcmdzKSkucGxhblxuICAgICAgfSxcbiAgICB9IDoge30pLFxuICApXG59XG5cbiJdfQ==