extremum-cli
Version:
Extremum CLI
104 lines (103 loc) • 4.7 kB
JavaScript
;
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;