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
128 lines (94 loc) • 2.85 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.ScopeExtension = 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 _harmony() {
  const data = require("@teambit/harmony");
  _harmony = function () {
    return data;
  };
  return data;
}
function _component() {
  const data = require("../component");
  _component = function () {
    return data;
  };
  return data;
}
function _scopeLoader() {
  const data = require("../../scope/scope-loader");
  _scopeLoader = function () {
    return data;
  };
  return data;
}
class ScopeExtension {
  constructor(legacyScope, tagRegistry) {
    this.legacyScope = legacyScope;
    this.tagRegistry = tagRegistry;
  }
  /**
   * register to the tag slot.
   */
  onTag(tagFn) {
    this.legacyScope.onTag.push(tagFn);
    this.tagRegistry.register(tagFn);
  }
  /**
   * Will fetch a list of components into the current scope.
   * This will only fetch the object and won't write the files to the actual FS
   *
   * @param {ComponentsIds} ids list of ids to fetch
   */
  fetch(ids) {} // eslint-disable-line @typescript-eslint/no-unused-vars
  /**
   * This function will get a component and sealed it's current state into the scope
   *
   * @param {Component[]} components A list of components to seal with specific persist options (such as message and version number)
   * @param {PersistOptions} persistGeneralOptions General persistence options such as verbose
   */
  persist(components, options) {} // eslint-disable-line @typescript-eslint/no-unused-vars
  /**
   * get a component from scope
   * @param id component ID
   */
  get(id) {
    return (0, _bluebird().coroutine)(function* () {
      // eslint-disable-next-line @typescript-eslint/no-unused-vars
      const componentId = typeof id === 'string' ? _component().ComponentID.fromString(id) : id;
      return undefined;
    })();
  }
  /**
   * declare the slots of scope extension.
   */
  static provider(deps, config, [tagSlot]) {
    return (0, _bluebird().coroutine)(function* () {
      const legacyScope = yield (0, _scopeLoader().loadScopeIfExist)();
      if (!legacyScope) {
        return undefined;
      }
      return new ScopeExtension(legacyScope, tagSlot);
    })();
  }
}
exports.ScopeExtension = ScopeExtension;
(0, _defineProperty2().default)(ScopeExtension, "id", '@teambit/scope');
(0, _defineProperty2().default)(ScopeExtension, "slots", [_harmony().Slot.withType()]);