1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _stringify = require('babel-runtime/core-js/json/stringify');
|
8 |
|
9 | var _stringify2 = _interopRequireDefault(_stringify);
|
10 |
|
11 | var _typeof2 = require('babel-runtime/helpers/typeof');
|
12 |
|
13 | var _typeof3 = _interopRequireDefault(_typeof2);
|
14 |
|
15 | exports.observablePath = observablePath;
|
16 | exports.initLocalCollection = initLocalCollection;
|
17 | exports.clone = clone;
|
18 |
|
19 | var _model = require('@startupjs/model');
|
20 |
|
21 | var _model2 = _interopRequireDefault(_model);
|
22 |
|
23 | var _observerUtil = require('@nx-js/observer-util');
|
24 |
|
25 | var _get = require('lodash/get');
|
26 |
|
27 | var _get2 = _interopRequireDefault(_get);
|
28 |
|
29 | var _semaphore = require('./semaphore');
|
30 |
|
31 | var _semaphore2 = _interopRequireDefault(_semaphore);
|
32 |
|
33 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
34 |
|
35 | function 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 |
|
46 | function 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 |
|
55 | function 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 |