UNPKG

baqend

Version:

Baqend JavaScript SDK

127 lines 10.6 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.schema = exports.downloadSchema = exports.uploadSchema = void 0; const path_1 = require("path"); const baqend_1 = require("baqend"); const inquirer_1 = __importDefault(require("inquirer")); const account = __importStar(require("./account")); const helper_1 = require("./helper"); const SCHEMA_FILE_PATH = './baqend/schema/'; function uploadSchema(db, force = false) { return __awaiter(this, void 0, void 0, function* () { let fileNames; try { fileNames = yield (0, helper_1.readDir)(SCHEMA_FILE_PATH); } catch (e) { throw new Error('Your schema folder baqend is empty, no schema changes were deployed.'); } const schemas = yield Promise.all(fileNames.map((fileName) => __awaiter(this, void 0, void 0, function* () { const file = yield (0, helper_1.readFile)((0, path_1.join)(SCHEMA_FILE_PATH, fileName), 'utf-8'); return JSON.parse(file); }))); if (force) { const { answer } = yield inquirer_1.default.prompt([ { type: 'confirm', name: 'answer', message: 'This will delete ALL your App data. Are you sure you want to continue?' }, ]); if (!answer) { return false; } schemas.forEach((schemaDescriptor) => { console.log(`Replacing ${schemaDescriptor.class.replace('/db/', '')} Schema`); }); yield db.send(new baqend_1.message.ReplaceAllSchemas(schemas)); return true; } const acls = schemas.map((schemaDescriptor) => { console.log(`Updating ${schemaDescriptor.class.replace('/db/', '')} Schema`); return { operation: 'updateClassAcl', bucket: schemaDescriptor.class, acl: schemaDescriptor.acl }; }); try { // We need to update acls separately, since they are not changed by an additive update // Deploy schemas first to ensure all schemas exists yield db.send(new baqend_1.message.UpdateAllSchemas(schemas)); yield db.send(new baqend_1.message.UpdateAllSchemas(acls)); return true; } catch (e) { console.error(`Schema update failed with error: ${e.message}`); return false; } }); } exports.uploadSchema = uploadSchema; function downloadSchema(db) { return db.send(new baqend_1.message.GetAllSchemas()).then((res) => Promise.all(res.entity.map((schemaDescriptor) => { const classname = schemaDescriptor.class.replace('/db/', ''); const filename = `baqend/schema/${classname}.json`; if (!(0, helper_1.isNativeClassNamespace)(classname) && classname !== 'Object') { return (0, helper_1.writeFile)(filename, JSON.stringify(schemaDescriptor, null, 2), 'utf-8').then(() => { console.log(`Downloaded ${classname} Schema`); }); } return Promise.resolve(); }))); } exports.downloadSchema = downloadSchema; function schema(args) { return account.login(args).then((db) => (0, helper_1.ensureDir)(SCHEMA_FILE_PATH).then(() => { switch (args.command) { case 'upload': case 'deploy': return uploadSchema(db, args.force).then((deployed) => { console.log('---------------------------------------'); if (deployed) { console.log(`The schema was successfully ${args.force ? 'replaced' : 'updated'}`); } else { console.log('The schema update was aborted'); } }); case 'download': return downloadSchema(db).then(() => { console.log('---------------------------------------'); console.log('Your schema was successfully downloaded'); }); default: throw new Error(`Invalid command: "${args.command}". Please use one of ["deploy", "download"].`); } })); } exports.schema = schema; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQXdDO0FBQ3hDLG1DQUFzRDtBQUN0RCx3REFBZ0M7QUFDaEMsbURBQXFDO0FBRXJDLHFDQUVrQjtBQUlsQixNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBTzVDLFNBQXNCLFlBQVksQ0FBQyxFQUFpQixFQUFFLFFBQWlCLEtBQUs7O1FBQzFFLElBQUksU0FBUyxDQUFDO1FBQ2QsSUFBSTtZQUNGLFNBQVMsR0FBRyxNQUFNLElBQUEsZ0JBQU8sRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzdDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7U0FDekY7UUFFRCxNQUFNLE9BQU8sR0FBYyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQzFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBTyxRQUFRLEVBQUUsRUFBRTtZQUMvQixNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsaUJBQVEsRUFBQyxJQUFBLFdBQVEsRUFBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMzRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFZLENBQUM7UUFDckMsQ0FBQyxDQUFBLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxrQkFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDdkMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLHdFQUF3RSxFQUFFO2FBQ3ZILENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsT0FBTyxL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