UNPKG

1.48 kBJavaScriptView Raw
1"use strict";
2var __assign = (this && this.__assign) || function () {
3 __assign = Object.assign || function(t) {
4 for (var s, i = 1, n = arguments.length; i < n; i++) {
5 s = arguments[i];
6 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7 t[p] = s[p];
8 }
9 return t;
10 };
11 return __assign.apply(this, arguments);
12};
13Object.defineProperty(exports, "__esModule", { value: true });
14var utils_1 = require("./utils");
15function makeIsolateSink(namespace) {
16 return function (sink, scope) {
17 if (scope === ':root') {
18 return sink;
19 }
20 return sink.map(function (node) {
21 if (!node) {
22 return node;
23 }
24 var scopeObj = getScopeObj(scope);
25 var newNode = __assign({}, node, { data: __assign({}, node.data, { isolate: !node.data || !Array.isArray(node.data.isolate)
26 ? namespace.concat([scopeObj])
27 : node.data.isolate }) });
28 return __assign({}, newNode, { key: newNode.key !== undefined
29 ? newNode.key
30 : JSON.stringify(newNode.data.isolate) });
31 });
32 };
33}
34exports.makeIsolateSink = makeIsolateSink;
35function getScopeObj(scope) {
36 return {
37 type: utils_1.isClassOrId(scope) ? 'sibling' : 'total',
38 scope: scope,
39 };
40}
41exports.getScopeObj = getScopeObj;
42//# sourceMappingURL=isolate.js.map
\No newline at end of file