UNPKG

@eluvio/elv-utils-js

Version:

Utilities for the Eluvio Content Fabric

90 lines (76 loc) 2.06 kB
// code related to --objectId const {StdOpt} = require('../options') const ArgLibraryId = require('./ArgLibraryId') const FabricObject = require('./libs/FabricObject') const blueprint = { name: 'ArgObjectId', concerns: [ArgLibraryId, FabricObject], options: [ StdOpt('objectId') ] } const New = context => { let argsProcMemo // fill in implied missing args const argsProc = async () => { if(!argsProcMemo) { const foundLibId = await context.concerns.FabricObject.libraryId({objectId: context.args.objectId}) if(context.args.libraryId) { if(context.args.libraryId !== foundLibId) throw Error(`--libraryId ${context.args.libraryId} supplied, but objectId ${context.args.objectId} has library ID: ${foundLibId}`) } else { context.args.libraryId = foundLibId } argsProcMemo = context.args } return argsProcMemo } const objDelete = async () => { const {libraryId, objectId} = await argsProc() return await context.concerns.FabricObject.del({ libraryId, objectId }) } const objLatestHash = async () => { const {libraryId, objectId} = await argsProc() return await context.concerns.FabricObject.latestVersionHash({ libraryId, objectId }) } const objMetadata = async ({subtree} = {}) => { const {libraryId, objectId} = await argsProc() return await context.concerns.FabricObject.metadata({ libraryId, objectId, subtree }) } const objPartList = async () => { const {libraryId, objectId} = await argsProc() return await context.concerns.FabricObject.partList({ libraryId, objectId }) } const objVersionList = async () => { const {libraryId, objectId} = await argsProc() return await context.concerns.FabricObject.versionList({ libraryId, objectId }) } // instance interface return { argsProc, objDelete, objLatestHash, objMetadata, objPartList, objVersionList } } module.exports = { blueprint, New }