UNPKG

extremum-cli

Version:
104 lines (103 loc) 4.7 kB
"use strict"; var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@apollo/client/core"); var chalk_1 = __importDefault(require("chalk")); var commander_1 = require("commander"); var extremum_client_1 = __importDefault(require("../../extremum-client")); var helpers_1 = require("../../helpers"); var get = function (uuid, params) { if (params === void 0) { params = {}; } return (0, extremum_client_1.default)().storage.entities.get(uuid, params); }; var list = function (collectionNameOrId, params) { var offset = params.offset, limit = params.limit, expand = params.expand; return (0, extremum_client_1.default)().storage.entities.list(collectionNameOrId, { offset: offset, limit: limit, expand: expand, }); }; var create = function (name, opt) { var payload = (0, helpers_1.safeParseJson)(opt.data); return (0, extremum_client_1.default)().storage.entities.create(name, payload); }; var remove = function (uuid) { return (0, extremum_client_1.default)().storage.entities.delete(uuid); }; var update = function (uuid, opt) { var payload = (0, helpers_1.safeParseJson)(opt.data); return (0, extremum_client_1.default)().storage.entities.update(uuid, payload); }; var link = function (subject, object, opt) { return (0, extremum_client_1.default)().storage.entities.link(subject, object, opt.predicate); }; var unlink = function (subject, object, opt) { return (0, extremum_client_1.default)().storage.entities.unlink(subject, object, opt.predicate); }; var listLinks = function (subject, opt) { return (0, extremum_client_1.default)().storage.entities.listLinks(subject, opt.predicate); }; var executeGraphQL = function (opt) { var query = opt.file ? (0, helpers_1.safeReadFile)(opt.file) : opt.query; if (!query || (opt.file && opt.query)) { console.error(chalk_1.default.red('Error: you must specify either --file or --query option')); process.exit(-1); } return (0, extremum_client_1.default)().storage.entities.graphql.execute((0, core_1.gql)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n "], ["\n ", "\n "])), query)); }; var entities = new commander_1.Command('entities').description('manage entities'); entities .command('get <instance-uuid>') .description('get entity instance') .action((0, helpers_1.actionRunner)(get)); entities .command('ls <collection>') .description('list collection items') .option('--expand', 'extended output format', false) .option('--offset <offset>', 'first item offset', (0, helpers_1.convertIntegerParameter)('offset'), 0) .option('--limit <limit>', 'maximum number of items in the output', (0, helpers_1.convertIntegerParameter)('limit'), 20) .action((0, helpers_1.actionRunner)(list)); entities .command('create <collection>') .requiredOption('--data <instance-data>', 'instance data') .description('create entity instance') .action((0, helpers_1.actionRunner)(create)); entities .command('remove <instance-uuid>') .description('remove entity instance') .action((0, helpers_1.actionRunner)(remove)); entities .command('update <instance-uuid>') .description('update entity instance') .requiredOption('--data <patch>', 'JSON patch') .action((0, helpers_1.actionRunner)(update)); entities .command('link <subject> <object>') .description('create a link between two objects') .requiredOption('-p, --predicate <predicate>', 'predicate') .action((0, helpers_1.actionRunner)(link)); entities .command('unlink <subject> <object>') .description('remove link between two objects') .requiredOption('-p, --predicate <predicate>', 'predicate') .action((0, helpers_1.actionRunner)(unlink)); entities .command('ls-links <subject>') .description('get outbound links for a subject') .option('-p, --predicate <predicate>', 'predicate') .action((0, helpers_1.actionRunner)(listLinks)); entities .command('graphql') .description('execute a GraphQL query') .option('-f, --file <filename>', 'name of a file containing query text') .option('-q, --query <query>', 'query text') .action((0, helpers_1.actionRunner)(executeGraphQL)); exports.default = entities; var templateObject_1;