UNPKG

bit-bin

Version:

<a href="https://opensource.org/licenses/Apache-2.0"><img alt="apache" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a> <a href="https://github.com/teambit/bit/blob/master/CONTRIBUTING.md"><img alt="prs" src="https://img.shields.io/b

141 lines (106 loc) 3.25 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; function _bluebird() { const data = require("bluebird"); _bluebird = function () { return data; }; return data; } function _defineProperty2() { const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); _defineProperty2 = function () { return data; }; return data; } function _object() { const data = _interopRequireDefault(require("./objects/object")); _object = function () { return data; }; return data; } function _utils() { const data = require("../utils"); _utils = function () { return data; }; return data; } function _objectRegistrar() { const data = require("./object-registrar"); _objectRegistrar = function () { return data; }; return data; } // import logger from '../logger/logger'; class ComponentObjects { constructor(component, objects) { (0, _defineProperty2().default)(this, "component", void 0); (0, _defineProperty2().default)(this, "objects", void 0); this.component = component; this.objects = objects; } toString() { return JSON.stringify({ component: (0, _utils().toBase64ArrayBuffer)(this.component), objects: this.objects.map(_utils().toBase64ArrayBuffer) }); } // Used mainly by server side hooks getParsedComponent() { const component = _object().default.parseSync(this.component, _objectRegistrar().typesObj); return component; } // @TODO optimize ASAP. static fromString(str) { return ComponentObjects.fromObject(JSON.parse(str)); } static manyToString(componentsAndObjects) { const result = JSON.stringify(componentsAndObjects.map(componentAndObject => componentAndObject.toString())); return result; } static manyFromString(str) { return JSON.parse(str).map(componentObject => ComponentObjects.fromString(componentObject)); } static fromObject(object) { // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX! // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX! const { component, objects } = object; return new ComponentObjects(_from64Buffer(component), objects.map(_from64Buffer)); } /** * prefer using `this.toObjectsAsync()` if not must to be sync. */ toObjects(repo) { return { // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX! component: _object().default.parseSync(this.component, repo.types), objects: this.objects.map(obj => _object().default.parseSync(obj, repo.types)) }; } /** * see `this.toObject()` for the sync version */ toObjectsAsync(repo) { var _this = this; return (0, _bluebird().coroutine)(function* () { return { // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX! component: yield _object().default.parseObject(_this.component, repo.types), objects: yield Promise.all(_this.objects.map(obj => _object().default.parseObject(obj, repo.types))) }; })(); } } exports.default = ComponentObjects; function _from64Buffer(val) { return Buffer.from(val, 'base64'); }