UNPKG

@eluvio/elv-utils-js

Version:

Utilities for the Eluvio Content Fabric

54 lines (40 loc) 1.26 kB
// template for scripts that work with either an object or a draft of an object const {ModOpt} = require('../../options') const ExistDft = require('../kits/ExistDft') const ExistObj = require('../kits/ExistObj') const chkNoObjectIdOrToken = (argv) => { if(!argv.objectId && !argv.writeToken) { throw Error('Must supply either --objectId or --writeToken') } return true // tell yargs that the arguments passed the check } const blueprint = { name: 'ExistObjOrDft', concerns: [ExistDft, ExistObj], options: [ ModOpt('objectId', {demand: false}), ModOpt('writeToken', {demand: false}) ], checksMap: {chkNoObjectIdOrToken} } const New = context => { const relevantConcern = context.args.writeToken ? context.concerns.ExistDft : context.concerns.ExistObj const argsProc = async () => await relevantConcern.argsProc() const info = async () => await relevantConcern.info() const metadata = async ({subtree} = {}) => await relevantConcern.metadata({subtree}) const partList = async () => await relevantConcern.partList() const typeHash = async () => await relevantConcern.typeHash() return { argsProc, info, metadata, partList, typeHash } } module.exports = { blueprint, New }