UNPKG

2.06 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _stringify = require('babel-runtime/core-js/json/stringify');
8
9var _stringify2 = _interopRequireDefault(_stringify);
10
11var _typeof2 = require('babel-runtime/helpers/typeof');
12
13var _typeof3 = _interopRequireDefault(_typeof2);
14
15exports.observablePath = observablePath;
16exports.initLocalCollection = initLocalCollection;
17exports.clone = clone;
18
19var _model = require('@startupjs/model');
20
21var _model2 = _interopRequireDefault(_model);
22
23var _observerUtil = require('@nx-js/observer-util');
24
25var _get = require('lodash/get');
26
27var _get2 = _interopRequireDefault(_get);
28
29var _semaphore = require('./semaphore');
30
31var _semaphore2 = _interopRequireDefault(_semaphore);
32
33function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34
35function observablePath(path) {
36 var segments = _model2.default._splitPath(path);
37 var originalSegments = _model2.default._dereference(segments, true);
38 var parentSegments = originalSegments.slice(0, -1);
39 var leafSegment = originalSegments[originalSegments.length - 1];
40 var result = (0, _get2.default)(_model2.default.data, originalSegments);
41 if ((typeof result === 'undefined' ? 'undefined' : (0, _typeof3.default)(result)) === 'object' && result !== null && !(0, _observerUtil.isObservable)(result)) {
42 (0, _get2.default)(_model2.default.data, parentSegments)[leafSegment] = (0, _observerUtil.observable)(result);
43 }
44}
45
46function initLocalCollection(collection) {
47 _semaphore2.default.ignoreCollectionObservableWarning = true;
48 _semaphore2.default.allowComponentSetter = true;
49 _model2.default.set(collection + '.__OBSERVABLE', true);
50 _semaphore2.default.allowComponentSetter = false;
51 _semaphore2.default.ignoreCollectionObservableWarning = false;
52 _model2.default.data[collection] = (0, _observerUtil.observable)(_model2.default.data[collection]);
53}
54
55function clone(data) {
56 var stringified = (0, _stringify2.default)(data);
57 if (!stringified) return undefined;
58 return JSON.parse(stringified);
59}
\No newline at end of file