@visactor/vrender
Version:
```typescript import { xxx } from '@visactor/vrender'; ```
62 lines (51 loc) • 3.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.syncLegacyPickersToApp = exports.syncLegacyRenderersToApp = exports.ensureBootstrap = exports.BOOTSTRAP_STATE = void 0;
const bootstrap_1 = require("@visactor/vrender-core/legacy/bootstrap"), symbol_1 = require("@visactor/vrender-core/render/symbol");
exports.BOOTSTRAP_STATE = Symbol.for("vrender.bootstrap.state");
const LEGACY_RENDERER_NAMESPACE = "vrender:legacy-renderer", LEGACY_PICKER_NAMESPACE = "vrender:legacy-picker", legacyEntryKeys = new WeakMap;
function ensureBootstrap(target, key) {
var _a;
const state = null !== (_a = target[exports.BOOTSTRAP_STATE]) && void 0 !== _a ? _a : new Set;
return target[exports.BOOTSTRAP_STATE] = state, !state.has(key) && (state.add(key),
!0);
}
function createBootstrapEntryKey(entry, prefix) {
var _a, _b, _c, _d;
const type = null !== (_a = null == entry ? void 0 : entry.type) && void 0 !== _a ? _a : "unknown", numberType = null !== (_b = null == entry ? void 0 : entry.numberType) && void 0 !== _b ? _b : "unknown", ctor = null !== (_d = null === (_c = null == entry ? void 0 : entry.constructor) || void 0 === _c ? void 0 : _c.name) && void 0 !== _d ? _d : "anonymous";
return `${prefix}:${String(numberType)}:${String(type)}:${ctor}`;
}
function getTrackedEntryKeys(registry, namespace) {
let namespaces = legacyEntryKeys.get(registry);
namespaces || (namespaces = new Map, legacyEntryKeys.set(registry, namespaces));
let keys = namespaces.get(namespace);
return keys || (keys = new Set, namespaces.set(namespace, keys)), keys;
}
function clearTrackedEntryKeys(registry, namespace, unregister) {
const keys = getTrackedEntryKeys(registry, namespace);
unregister && keys.forEach((key => unregister(key))), keys.clear();
}
function syncLegacyRenderersToApp(app) {
var _a, _b;
const legacyRenderers = null !== (_a = (0, bootstrap_1.getLegacyBindingContext)().getAll(symbol_1.GraphicRender)) && void 0 !== _a ? _a : [], registeredKeys = getTrackedEntryKeys(app.registry.renderer, "vrender:legacy-renderer"), seen = new Set;
clearTrackedEntryKeys(app.registry.renderer, "vrender:legacy-renderer", null === (_b = app.registry.renderer.unregister) || void 0 === _b ? void 0 : _b.bind(app.registry.renderer)),
legacyRenderers.forEach((renderer => {
var _a;
const key = createBootstrapEntryKey(renderer, "vrender:legacy-renderer");
seen.has(key) || (seen.add(key), null === (_a = null == renderer ? void 0 : renderer.reInit) || void 0 === _a || _a.call(renderer),
app.registry.renderer.register(key, renderer), registeredKeys.add(key));
}));
}
function syncLegacyPickersToApp(app, pickerContribution) {
var _a, _b;
const legacyPickers = null !== (_a = (0, bootstrap_1.getLegacyBindingContext)().getAll(pickerContribution)) && void 0 !== _a ? _a : [], registeredKeys = getTrackedEntryKeys(app.registry.picker, "vrender:legacy-picker"), seen = new Set;
clearTrackedEntryKeys(app.registry.picker, "vrender:legacy-picker", null === (_b = app.registry.picker.unregister) || void 0 === _b ? void 0 : _b.bind(app.registry.picker)),
legacyPickers.forEach((picker => {
const key = createBootstrapEntryKey(picker, "vrender:legacy-picker");
seen.has(key) || (seen.add(key), app.registry.picker.register(key, picker), registeredKeys.add(key));
}));
}
exports.ensureBootstrap = ensureBootstrap, exports.syncLegacyRenderersToApp = syncLegacyRenderersToApp,
exports.syncLegacyPickersToApp = syncLegacyPickersToApp;
//# sourceMappingURL=bootstrap-utils.js.map