@valueflows/vf-graphql-holochain
Version:
GraphQL schema bindings for the Holochain implementation of ValueFlows
46 lines • 9.05 kB
JavaScript
/**
* 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, 'plan', 'plan', 'get_revision');
const readProcesses = mapZomeFn(dnaConfig, conductorUri, 'observation', 'process_index', 'query_processes');
const queryCommitments = mapZomeFn(dnaConfig, conductorUri, 'planning', 'commitment_index', '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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Jlc29sdmVycy9wbGFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFpQixrQkFBa0IsRUFBRSxRQUFRLEVBQW1ELE1BQU0sYUFBYSxDQUFBO0FBQzFILE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFhMUQsT0FBTyxZQUFZLE1BQU0scUJBQXFCLENBQUE7QUFHOUMsZUFBZSxDQUFDLG1CQUErQixrQkFBa0IsRUFBRSxTQUF3QixFQUFFLFlBQW9CLEVBQUUsRUFBRTtJQUNuSCxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BFLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUMxRSxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBMkIsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBQ2pILE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBd0MsU0FBUyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDLENBQUE7SUFDbEosTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQThDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLENBQUE7SUFDN0osTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUVoRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNaLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBWSxFQUFzQixFQUFFO1lBQ3BELE1BQU0sU0FBUyxHQUFHLE1BQU0sYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDL0UsT0FBTyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDaEMsQ0FBQztLQUNGLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNQLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNmLGtCQUFrQixFQUFFLEtBQUssRUFBRSxNQUFZLEVBQXlCLEVBQUU7WUFDaEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDMUYsT0FBTyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDbEMsQ0FBQztRQUNELHFCQUFxQixFQUFFLEtBQUssRUFBRSxNQUFZLEVBQXlCLEVBQUU7WUFDbkUsTUFBTSxXQUFXLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQ3BGLE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ2xDLENBQUM7S0FDRixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDUCxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDVixjQUFjLEVBQUUsR0FBRyxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtRQUMzQyxDQUFDO1FBQ0QsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFxQyxFQUE4QixFQUFFO1lBQ3JGLE9BQU8sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBQyxFQUFFLENBQUEsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbkcsQ0FBQztLQUNGLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNQLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNaLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBWSxFQUFFLElBQTJDLEVBQWlCLEVBQUU7WUFDM0YsT0FBTyxDQUFDLE1BQU0sWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO1FBQ3hDLENBQUM7S0FDRixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDUixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvbHZlcnMgZm9yIFBsYW4gZmllbGRzXG4gKlxuICogQHBhY2thZ2U6IEhvbG9SRUFcbiAqIEBzaW5jZTogICAyMDE5LTA4LTI3XG4gKi9cblxuaW1wb3J0IHsgRE5BSWRNYXBwaW5ncywgREVGQVVMVF9WRl9NT0RVTEVTLCBWZk1vZHVsZSwgQWdlbnRBZGRyZXNzLCBCeVJldmlzaW9uLCBBZGRyZXNzYWJsZUlkZW50aWZpZXIgfSBmcm9tICcuLi90eXBlcy5qcydcbmltcG9ydCB7IGV4dHJhY3RFZGdlcywgbWFwWm9tZUZuIH0gZnJvbSAnLi4vY29ubmVjdGlvbi5qcydcblxuaW1wb3J0IHtcbiAgUHJvY2VzcyxcbiAgUGxhblByb2Nlc3NGaWx0ZXJQYXJhbXMsXG4gIFBsYW4sXG4gIFBsYW5SZXNwb25zZSxcbiAgQ29tbWl0bWVudCxcbiAgUHJvY2Vzc0Nvbm5lY3Rpb24sXG4gIENvbW1pdG1lbnRDb25uZWN0aW9uLFxuICBBY2NvdW50aW5nU2NvcGVcbn0gZnJvbSAnQHZhbHVlZmxvd3MvdmYtZ3JhcGhxbCdcbmltcG9ydCB7IENvbW1pdG1lbnRTZWFyY2hJbnB1dCwgUHJvY2Vzc1NlYXJjaElucHV0IH0gZnJvbSAnLi96b21lU2VhcmNoSW5wdXRUeXBlcy5qcydcbmltcG9ydCBhZ2VudFF1ZXJpZXMgZnJvbSAnLi4vcXVlcmllcy9hZ2VudC5qcydcblxuXG5leHBvcnQgZGVmYXVsdCAoZW5hYmxlZFZGTW9kdWxlczogVmZNb2R1bGVbXSA9IERFRkFVTFRfVkZfTU9EVUxFUywgZG5hQ29uZmlnOiBETkFJZE1hcHBpbmdzLCBjb25kdWN0b3JVcmk6IHN0cmluZykgPT4ge1xuICBjb25zdCBoYXNIaXN0b3J5ID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5IaXN0b3J5KVxuICBjb25zdCBoYXNQcm9jZXNzID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5Qcm9jZXNzKVxuICBjb25zdCBoYXNDb21taXRtZW50ID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5Db21taXRtZW50KVxuICBjb25zdCBoYXNBZ2VudCA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuQWdlbnQpXG5cbiAgY29uc3QgcmVhZFJldmlzaW9uID0gbWFwWm9tZUZuPEJ5UmV2aXNpb24sIFBsYW5SZXNwb25zZT4oZG5hQ29uZmlnLCBjb25kdWN0b3JVcmksICdwbGFuJywgJ3BsYW4nLCAnZ2V0X3JldmlzaW9uJylcbiAgY29uc3QgcmVhZFByb2Nlc3NlcyA9IG1hcFpvbWVGbjxQcm9jZXNzU2VhcmNoSW5wdXQsIFByb2Nlc3NDb25uZWN0aW9uPihkbmFDb25maWcsIGNvbmR1Y3RvclVyaSwgJ29ic2VydmF0aW9uJywgJ3Byb2Nlc3NfaW5kZXgnLCAncXVlcnlfcHJvY2Vzc2VzJylcbiAgY29uc3QgcXVlcnlDb21taXRtZW50cyA9IG1hcFpvbWVGbjxDb21taXRtZW50U2VhcmNoSW5wdXQsIENvbW1pdG1lbnRDb25uZWN0aW9uPihkbmFDb25maWcsIGNvbmR1Y3RvclVyaSwgJ3BsYW5uaW5nJywgJ2NvbW1pdG1lbnRfaW5kZXgnLCAncXVlcnlfY29tbWl0bWVudHMnKVxuICBjb25zdCByZWFkQWdlbnQgPSBhZ2VudFF1ZXJpZXMoZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpWydhZ2VudCddXG5cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgKGhhc1Byb2Nlc3MgPyB7XG4gICAgICBwcm9jZXNzZXM6IGFzeW5jIChyZWNvcmQ6IFBsYW4pOiBQcm9taXNlPFByb2Nlc3NbXT4gPT4ge1xuICAgICAgICBjb25zdCBwcm9jZXNzZXMgPSBhd2FpdCByZWFkUHJvY2Vzc2VzKHsgcGFyYW1zOiB7IHBsYW5uZWRXaXRoaW46IHJlY29yZC5pZCB9IH0pXG4gICAgICAgIHJldHVybiBleHRyYWN0RWRnZXMocHJvY2Vzc2VzKVxuICAgICAgfSxcbiAgICB9IDoge30pLFxuICAgIChoYXNDb21taXRtZW50ID8ge1xuICAgICAgaW5kZXBlbmRlbnREZW1hbmRzOiBhc3luYyAocmVjb3JkOiBQbGFuKTogUHJvbWlzZTxDb21taXRtZW50W10+ID0+IHtcbiAgICAgICAgY29uc3QgY29tbWl0bWVudHMgPSBhd2FpdCBxdWVyeUNvbW1pdG1lbnRzKHsgcGFyYW1zOiB7IGluZGVwZW5kZW50RGVtYW5kT2Y6IHJlY29yZC5pZCB9IH0pXG4gICAgICAgIHJldHVybiBleHRyYWN0RWRnZXMoY29tbWl0bWVudHMpXG4gICAgICB9LFxuICAgICAgbm9uUHJvY2Vzc0NvbW1pdG1lbnRzOiBhc3luYyAocmVjb3JkOiBQbGFuKTogUHJvbWlzZTxDb21taXRtZW50W10+ID0+IHtcbiAgICAgICAgY29uc3QgY29tbWl0bWVudHMgPSBhd2FpdCBxdWVyeUNvbW1pdG1lbnRzKHsgcGFyYW1zOiB7IHBsYW5uZWRXaXRoaW46IHJlY29yZC5pZCB9IH0pXG4gICAgICAgIHJldHVybiBleHRyYWN0RWRnZXMoY29tbWl0bWVudHMpXG4gICAgICB9LFxuICAgIH0gOiB7fSksXG4gICAgKGhhc0FnZW50ID8ge1xuICAgICAgaW52b2x2ZWRBZ2VudHM6ICgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZXNvbHZlciB1bmltcGxlbWVudGVkJylcbiAgICAgIH0sXG4gICAgICBpblNjb3BlT2Y6IGFzeW5jIChyZWNvcmQ6IHsgaW5TY29wZU9mOiBBZ2VudEFkZHJlc3NbXSB9KTogUHJvbWlzZTxBY2NvdW50aW5nU2NvcGVbXT4gPT4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKChyZWNvcmQuaW5TY29wZU9mIHx8IFtdKS5tYXAoKGFkZHJlc3MpPT5yZWFkQWdlbnQocmVjb3JkLCB7YWRkcmVzc30pKSkpXG4gICAgICB9LFxuICAgIH0gOiB7fSksXG4gICAgKGhhc0hpc3RvcnkgPyB7XG4gICAgICByZXZpc2lvbjogYXN5bmMgKHJlY29yZDogUGxhbiwgYXJnczogeyByZXZpc2lvbklkOiBBZGRyZXNzYWJsZUlkZW50aWZpZXIgfSk6IFByb21pc2U8UGxhbj4gPT4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHJlYWRSZXZpc2lvbihhcmdzKSkucGxhblxuICAgICAgfSxcbiAgICB9IDoge30pLFxuICApXG59XG5cbiJdfQ==