@leosprograms/vf-graphql-holochain
Version:
GraphQL schema bindings for the Holochain implementation of ValueFlows
36 lines (31 loc) • 995 B
text/typescript
/**
* Resolver callbacks for measurement struct sub-fields
*
* @package: HoloREA
* @since: 2019-12-24
*/
import { DNAIdMappings, DEFAULT_VF_MODULES, VfModule, ById, AddressableIdentifier } from '../types.js'
import { mapZomeFn } from '../connection.js'
import {
Maybe,
Measure,
Unit,
UnitResponse,
} from '@leosprograms/vf-graphql'
export default (enabledVFModules: VfModule[] = DEFAULT_VF_MODULES, dnaConfig: DNAIdMappings, conductorUri: string) => {
const readUnit = mapZomeFn<ById, UnitResponse>(dnaConfig, conductorUri, 'combined', 'unit', 'get_unit')
return {
hasUnitId: async (record: { hasUnit: AddressableIdentifier }): Promise<Maybe<string>> => {
if (!record.hasUnit) {
return null
}
return record.hasUnit
},
hasUnit: async (record: { hasUnit: AddressableIdentifier }): Promise<Maybe<Unit>> => {
if (!record.hasUnit) {
return null
}
return (await readUnit({ id: record.hasUnit })).unit
},
}
}