@leosprograms/vf-graphql-holochain
Version:
GraphQL schema bindings for the Holochain implementation of ValueFlows
93 lines (87 loc) • 3.76 kB
text/typescript
/**
* Mutations manifest for HoloREA
*
* @package: HoloREA
* @since: 2019-05-22
*/
import { DNAIdMappings, DEFAULT_VF_MODULES, VfModule, ByRevision } from '../types.js'
import ResourceSpecification from './resourceSpecification.js'
import ProcessSpecification from './processSpecification.js'
import Unit from './unit.js'
import Process from './process.js'
import EconomicResource from './economicResource.js'
import EconomicEvent from './economicEvent.js'
import Commitment from './commitment.js'
import Fulfillment from './fulfillment.js'
import Intent from './intent.js'
import Satisfaction from './satisfaction.js'
import Proposal from './proposal.js'
import ProposedTo from './proposedTo.js'
import ProposedIntent from './proposedIntent.js'
import Agreement from './agreement.js'
import Plan from './plan.js'
import Agent from './agent.js'
import RecipeFlow from './recipeFlow.js'
import RecipeProcess from './recipeProcess.js'
import recipeExchange from './recipeExchange.js'
// generic deletion calling format used by all mutations
export type deleteHandler = (root: any, args: ByRevision) => Promise<boolean>
export default (enabledVFModules: VfModule[] = DEFAULT_VF_MODULES, dnaConfig: DNAIdMappings, conductorUri: string) => {
const hasAgent = -1 !== enabledVFModules.indexOf(VfModule.Agent)
const hasMeasurement = -1 !== enabledVFModules.indexOf(VfModule.Measurement)
const hasProcessSpecification = -1 !== enabledVFModules.indexOf(VfModule.ProcessSpecification)
const hasResourceSpecification = -1 !== enabledVFModules.indexOf(VfModule.ResourceSpecification)
const hasObservation = -1 !== enabledVFModules.indexOf(VfModule.Observation)
const hasProcess = -1 !== enabledVFModules.indexOf(VfModule.Process)
const hasFulfillment = -1 !== enabledVFModules.indexOf(VfModule.Fulfillment)
const hasIntent = -1 !== enabledVFModules.indexOf(VfModule.Intent)
const hasCommitment = -1 !== enabledVFModules.indexOf(VfModule.Commitment)
const hasSatisfaction = -1 !== enabledVFModules.indexOf(VfModule.Satisfaction)
const hasProposal = -1 !== enabledVFModules.indexOf(VfModule.Proposal)
const hasAgreement = -1 !== enabledVFModules.indexOf(VfModule.Agreement)
const hasPlan = -1 !== enabledVFModules.indexOf(VfModule.Plan)
const hasRecipe = -1 !== enabledVFModules.indexOf(VfModule.Recipe)
return Object.assign(
(hasMeasurement ? { ...Unit(dnaConfig, conductorUri) } : {}),
(hasResourceSpecification ? {
...ResourceSpecification(dnaConfig, conductorUri),
} : {}),
(hasProcessSpecification ? {
...ProcessSpecification(dnaConfig, conductorUri),
} : {}),
(hasObservation ? {
...EconomicResource(dnaConfig, conductorUri),
...EconomicEvent(dnaConfig, conductorUri),
} : {}),
(hasProcess ? {
...Process(dnaConfig, conductorUri),
} : {}),
(hasCommitment ? {
...Commitment(dnaConfig, conductorUri),
} : {}),
(hasFulfillment ? {
...Fulfillment(dnaConfig, conductorUri),
} : {}),
(hasIntent ? {
...Intent(dnaConfig, conductorUri),
} : {}),
(hasSatisfaction ? {
...Satisfaction(dnaConfig, conductorUri),
} : {}),
(hasProposal ? {
...Proposal(dnaConfig, conductorUri),
...ProposedIntent(dnaConfig, conductorUri),
} : {}),
(hasProposal && hasAgent ? {
...ProposedTo(dnaConfig, conductorUri),
} : {}),
(hasAgreement ? { ...Agreement(dnaConfig, conductorUri) } : {}),
(hasPlan ? { ...Plan(dnaConfig, conductorUri) } : {}),
(hasAgent ? { ...Agent(dnaConfig, conductorUri) } : {}),
(hasRecipe ? {
...RecipeFlow(dnaConfig, conductorUri),
...RecipeProcess(dnaConfig, conductorUri),
...recipeExchange(dnaConfig, conductorUri),
} : {}),
)
}