New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

immview

Package Overview
Dependencies
Maintainers
1
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

immview - npm Package Compare versions

Comparing version 1.2.3 to 1.3.0

src/View.js

8

dist/immview.js

@@ -63,3 +63,3 @@ (function webpackUniversalModuleDefinition(root, factory) {

"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{"default":e}}function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t["default"]=e,t}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}();Object.defineProperty(exports,"__esModule",{value:!0});var _immutable=__webpack_require__(2),I=_interopRequireWildcard(_immutable),_Queue=__webpack_require__(3),_Queue2=_interopRequireDefault(_Queue),noop=function(){},Domain=function(){function e(t,i){_classCallCheck(this,e),this.view=null,this.data=null,this._actionNames=null,this._claimView(t),this._claimActions(i)}return _createClass(e,[{key:"_claimView",value:function(e){if(!e.isReactor)throw new Error("view is not inheriting Reactor type");this.view=e,e.isData&&(this.data=e)}},{key:"_claimActions",value:function(e){var t=this;this._actionNames=e?Object.keys(e):[],this._actionNames.forEach(function(i){if(t[i])throw new Error('"'+i+'" is reserved for Domain interface');t[i]=_Queue2["default"].createAction(e[i],t)})}},{key:"subscribe",value:function(e){return this.view.subscribe(e)}},{key:"destroy",value:function(){var e=this;this.view.destroy(),this.view=null,this.data=null,_Queue2["default"].rejectContext(this),this._actionNames.forEach(function(t){e[t]=noop}),this._actionNames=null}},{key:"structure",get:function(){return this.view&&this.view.structure}},{key:"isDomain",get:function(){return!0}}]),e}();exports["default"]=Domain;
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{"default":e}}function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t["default"]=e,t}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}();Object.defineProperty(exports,"__esModule",{value:!0});var _immutable=__webpack_require__(2),I=_interopRequireWildcard(_immutable),_Queue=__webpack_require__(3),_Queue2=_interopRequireDefault(_Queue),noop=function(){},Domain=function(){function e(t,i){_classCallCheck(this,e),this.view=null,this.data=null,this._actionNames=null,this._claimView(t),this._claimActions(i)}return _createClass(e,[{key:"_claimView",value:function(e){if(!e.isReactor)throw new Error("view is not inheriting Reactor type");this.view=e,e.isData&&(this.data=e)}},{key:"_claimActions",value:function(e){var t=this;this._actionNames=e?Object.keys(e):[],this._actionNames.forEach(function(i){if(t[i])throw new Error('"'+i+'" is reserved for Domain interface');t[i]=_Queue2["default"].createAction(e[i],t)})}},{key:"read",value:function(){return this.view?this.view.read():void 0}},{key:"subscribe",value:function(e){return this.view.subscribe(e)}},{key:"destroy",value:function(){var e=this;this.view.destroy(),this.view=null,this.data=null,_Queue2["default"].rejectContext(this),this._actionNames.forEach(function(t){e[t]=noop}),this._actionNames=null}},{key:"structure",get:function(){return this.view&&this.view.structure}},{key:"isDomain",get:function(){return!0}}]),e}();exports["default"]=Domain;

@@ -76,3 +76,3 @@ /***/ },

"use strict";function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r["default"]=e,r}function createAction(e,r){return function(){for(var n=arguments.length,u=Array(n),t=0;n>t;t++)u[t]=arguments[t];appendToQueue(e,r,u),run()}}function appendToQueue(e,r,n){queue=queue.add({action:e,context:r,args:n})}function shiftFromQueue(){var e=queue.first();return queue=queue.rest(),e}function rejectContext(e){queue=queue.filter(function(r){return r.context!==e})}function run(){if(!isRunning){for(isRunning=!0;queue.count()>0;)try{runFirst()}catch(e){console.error("Immview.Queue run - Error occured while running running a function"),console.error(e.message)}isRunning=!1}}function runFirst(){var e=shiftFromQueue(),r=e.context,n=e.action,u=e.args;n.apply(r,u)}Object.defineProperty(exports,"__esModule",{value:!0});var _immutable=__webpack_require__(2),I=_interopRequireWildcard(_immutable),isRunning=!1,queue=I.OrderedSet();exports["default"]={createAction:createAction,rejectContext:rejectContext};
"use strict";function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var u in e)Object.prototype.hasOwnProperty.call(e,u)&&(n[u]=e[u]);return n["default"]=e,n}function createAction(e,n){return function(){for(var u=arguments.length,r=Array(u),t=0;u>t;t++)r[t]=arguments[t];appendAndRunQueue(e,n,r)}}function appendToQueue(e,n,u){queue=queue.add({action:e,context:n,args:u})}function appendAndRunQueue(e,n,u){appendToQueue(e,n,u),run()}function shiftFromQueue(){var e=queue.first();return queue=queue.rest(),e}function rejectContext(e){queue=queue.filter(function(n){return n.context!==e})}function run(){if(!isRunning){for(isRunning=!0;queue.count()>0;)try{runFirst()}catch(e){console.error("Immview.Queue run - Error occured while running running a function"),console.error(e.message)}isRunning=!1}}function runFirst(){var e=shiftFromQueue(),n=e.context,u=e.action,r=e.args;u.apply(n,r)}Object.defineProperty(exports,"__esModule",{value:!0});var _immutable=__webpack_require__(2),I=_interopRequireWildcard(_immutable),isRunning=!1,queue=I.OrderedSet();exports["default"]={createAction:createAction,rejectContext:rejectContext,appendAndRunQueue:appendAndRunQueue};

@@ -83,3 +83,3 @@ /***/ },

"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{"default":e}}function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r["default"]=e,r}function _classCallCheck(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,r){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!r||"object"!=typeof r&&"function"!=typeof r?e:r}function _inherits(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function, not "+typeof r);e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),r&&(Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r)}var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(r,t,n){return t&&e(r.prototype,t),n&&e(r,n),r}}();Object.defineProperty(exports,"__esModule",{value:!0});var _immutable=__webpack_require__(2),I=_interopRequireWildcard(_immutable),_Reactor2=__webpack_require__(5),_Reactor3=_interopRequireDefault(_Reactor2),_require=__webpack_require__(6),immutableWriteWrapper=_require.immutableWriteWrapper,immutableReadWrapper=_require.immutableReadWrapper,Data=function(e){function r(e){_classCallCheck(this,r);var t=_possibleConstructorReturn(this,Object.getPrototypeOf(r).call(this));return immutableReadWrapper(t),immutableWriteWrapper(t),I.Iterable.isIterable(e)?t.digest(e):t.digest(I.fromJS(e)),t}return _inherits(r,e),_createClass(r,[{key:"process",value:function(e){return e}},{key:"destroy",value:function(){this.structure=null,this.reactors=null}},{key:"isData",get:function(){return!0}}]),r}(_Reactor3["default"]);exports["default"]=Data;
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{"default":e}}function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var u=t[r];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(e,u.key,u)}}return function(t,r,u){return r&&e(t.prototype,r),u&&e(t,u),t}}();Object.defineProperty(exports,"__esModule",{value:!0});var _immutable=__webpack_require__(2),I=_interopRequireWildcard(_immutable),_Queue=__webpack_require__(3),_Queue2=_interopRequireDefault(_Queue),_Reactor2=__webpack_require__(5),_Reactor3=_interopRequireDefault(_Reactor2),_require=__webpack_require__(6),immutableWriteWrapper=_require.immutableWriteWrapper,immutableReadWrapper=_require.immutableReadWrapper,Data=function(e){function t(e){_classCallCheck(this,t);var r=_possibleConstructorReturn(this,Object.getPrototypeOf(t).call(this));return immutableReadWrapper(r),immutableWriteWrapper(r),I.Iterable.isIterable(e)?r.digest(e):r.digest(I.fromJS(e)),r}return _inherits(t,e),_createClass(t,[{key:"process",value:function(e){return e}},{key:"destroy",value:function(){this.structure=null,this.reactors=null}},{key:"write",value:function(e){"function"==typeof e?_Queue2["default"].appendAndRunQueue(function(){this.digest(e.apply(this,[this.read()]))},this,[e]):_Queue2["default"].appendAndRunQueue(this.digest,this,[e])}},{key:"isData",get:function(){return!0}}]),t}(_Reactor3["default"]);exports["default"]=Data;

@@ -90,3 +90,3 @@ /***/ },

"use strict";function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r["default"]=e,r}function _classCallCheck(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function hasValue(e){return void 0!==e&&null!==e}var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var u=r[t];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(e,u.key,u)}}return function(r,t,u){return t&&e(r.prototype,t),u&&e(r,u),r}}();Object.defineProperty(exports,"__esModule",{value:!0});var _immutable=__webpack_require__(2),I=_interopRequireWildcard(_immutable),Reactor=function(){function e(){_classCallCheck(this,e),this.reactors=I.Set(),this.structure=void 0}return _createClass(e,[{key:"subscribe",value:function(e){var r=this;return this.reactors=this.reactors.add(e),e(this.structure),function(){r.reactors=r.reactors["delete"](e)}}},{key:"process",value:function(){throw new Error("abstract")}},{key:"digest",value:function(e){var r=this.process(e);!hasValue(r)||hasValue(this.structure)&&I.is(r,this.structure)!==!1||(this.structure=r,this.flush())}},{key:"flush",value:function(){var e=this;this.reactors.forEach(function(r){return r(e.structure)})}},{key:"destroy",value:function(){throw new Error("abstract")}},{key:"isReactor",get:function(){return!0}}]),e}();exports["default"]=Reactor;
"use strict";function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r["default"]=e,r}function _classCallCheck(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function hasValue(e){return void 0!==e&&null!==e}var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var u=r[t];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(e,u.key,u)}}return function(r,t,u){return t&&e(r.prototype,t),u&&e(r,u),r}}();Object.defineProperty(exports,"__esModule",{value:!0});var _immutable=__webpack_require__(2),I=_interopRequireWildcard(_immutable),Reactor=function(){function e(){_classCallCheck(this,e),this.reactors=I.Set(),this.structure=void 0}return _createClass(e,[{key:"subscribe",value:function(e){var r=this;return this.reactors=this.reactors.add(e),e(this.structure),function(){r.reactors=r.reactors["delete"](e)}}},{key:"process",value:function(){throw new Error("abstract")}},{key:"digest",value:function(e){var r=this.process(e);!hasValue(r)||hasValue(this.structure)&&I.is(r,this.structure)!==!1||(this.structure=r,this.flush())}},{key:"flush",value:function(){var e=this;this.reactors.forEach(function(r){return r(e.structure)})}},{key:"destroy",value:function(){throw new Error("abstract")}},{key:"read",value:function(){return this.structure}},{key:"isReactor",get:function(){return!0}}]),e}();exports["default"]=Reactor;

@@ -93,0 +93,0 @@ /***/ },

{
"name": "immview",
"version": "1.2.3",
"version": "1.3.0",
"description": "",

@@ -5,0 +5,0 @@ "main": "dist/immview.js",

@@ -9,5 +9,5 @@ # immview

## Compounds
### Compounds
### Downstream
#### Downstream

@@ -22,3 +22,3 @@ **Data** is independent data source class. Allows direct changes.

### Upstream
#### Upstream

@@ -31,2 +31,4 @@ **Domain** is wrapper for both **Data** and **View**, gathering actions so they are executed in queued fashion as well.

Immview is registered on NPM.
```bash

@@ -39,2 +41,3 @@ npm i immview --save

```javascript
// immview has no default export
import * as IV from 'immview';

@@ -90,8 +93,45 @@

> Data have both read and write functions (list below).
Data have both read and write functions (list below).
> Write functions are queued with Domain actions.
Write functions are queued with Domain actions.
> An initialData object can be object any Immutable.js data structure. Plain objects will be transformed to Immutable.js data structures.
An **initialData** object can be object any Immutable.js data structure. Plain objects will be transformed to Immutable.js data structures.
### Data::read() => Immutable.Iterable
Method used to retrieve current structure holden by the Data.
```javascript
//Example
let d = new Data({a: 1});
d.read().get('a'); // = 1
```
### Data::write(change: Immutable.Iterable ) => void
### Data::write(change: (currentStructure) => Immutable.Iterable) => void
Method used to store new Immutable data structure.
**change** parameter:
- is any Immutable data structure that should replace current one. If passed value is either undefined or null, replacement will not occur.
- is a function that should return Immutable data structure that should replace current one. If function returns undefined or null, replacement will not occur.
This function will not return changed structure so chaining will not be possible. It is because if this the change is requested mid queue run, it will be postponed and executed after all currently queued commands.
```javascript
//Example
let d = new Data({a:1});
d.write(d.read().set('b', 2));
```
```javascript
//Example
let d = new Data({a:1});
d.write(structure => structure.set('b', 2));
```
### Data::subscribe( reaction: (data) => void )
Registers a function called every time when the Data changes value that it holds.
## View

@@ -127,5 +167,12 @@

> A View instance has only read functions (list below).
> A processor function result can be any Immutable.js data structure.
A View instance has only read functions (list below).
A processor function result can be any Immutable.js data structure.
### View::read() => Immutable.Iterable
Method used to retrieve current structure holden by the View.
### View::subscribe( reaction: (data) => void )
Registers a function called every time when the View changes value that it holds.
## Domain

@@ -160,87 +207,9 @@

## Read functions
- equals
- hashCode
- get
- has
- includes
- first
- last
- getIn
- hasIn
- toJS
- toObject
- toArray
- toMap
- toOrderedMap
- toSet
- toOrderedSet
- toList
- toStack
- toSeq
- toKeyedSeq
- toIndexedSeq
- toSetSeq
- keys
- values
- entries
- keySeq
- valueSeq
- entrySeq
- map
- filter
- filterNot
- reverse
- sort
- sortBy
- groupBy
- forEach
- slice
- rest
- butLast
- skip
- skipLast
- skipWhile
- skipUntil
- take
- takeLast
- takeWhile
- takeUntil
- concat
- flatten
- flatMap
- reduce
- reduceRight
- every
- some
- join
- isEmpty
- count
- countBy
- find
- findLast
- findEntry
- findLastEntry
- max
- maxBy
- min
- minBy
- isSubset
- isSuperset
### Domain::read() => Immutable.Iterable
## Write functions
- set
- delete
- update
- merge
- mergeDeep
- setIn
- deleteIn
- updateIn
- mergeIn
- mergeDeepIn
- add
- clear
- union
- intersect
- substract
Method used to retrieve current structure holden by the Domain's View or Data.
> Although **Domain** can be created using **Data**, Domain won't be having **write** method available to discourage writing directly from dependent instances.
### Domain::subscribe( reaction: (data) => void )
Registers a function called every time when the Domain's View or Data changes value that it holds.
import * as I from 'immutable';
import Queue from './Queue';
import Reactor from './Reactor.js';

@@ -38,2 +39,12 @@

write(change) {
if (typeof change === 'function') {
Queue.appendAndRunQueue(function updateStructure() {
this.digest(change.apply(this, [this.read()]));
}, this, [change]);
} else {
Queue.appendAndRunQueue(this.digest, this, [change]);
}
}
}

@@ -5,3 +5,4 @@ import * as I from 'immutable';

let noop = () => {};
let noop = () => {
};

@@ -14,7 +15,13 @@ export default class Domain {

constructor(view, actions) {
/** @type {View} */
/**
* @private
* @type {View} */
this.view = null;
/** @type {Data} */
/**
* @private
* @type {Data} */
this.data = null;
/** @type {String[]} */
/**
* @private
* @type {String[]} */
this._actionNames = null;

@@ -54,2 +61,13 @@

read() {
if (this.view) {
return this.view.read();
}
}
// no write method now and in the future
// as it would encourage developers
// to modify domain data
// outside of the domain scope
get isDomain() {

@@ -56,0 +74,0 @@ return true;

import Queue from './Queue';
/**
* @deprecated
* @description this module is meant for deprecation in next major
*/
/**
* adds read methods to `that`

@@ -5,0 +10,0 @@ * that enable reading from its structure

@@ -14,4 +14,3 @@ import * as I from 'immutable';

return (...args) => {
appendToQueue(action, context, args);
run();
appendAndRunQueue(action, context, args);
};

@@ -34,2 +33,7 @@ }

function appendAndRunQueue(action, context, args) {
appendToQueue(action, context, args);
run();
}
/**

@@ -91,2 +95,3 @@ * Removes and returns first action from the queue and

rejectContext,
appendAndRunQueue,
};

@@ -12,3 +12,10 @@ import * as I from 'immutable';

constructor() {
/**
* @private
*/
this.reactors = I.Set();
/**
* @private
* @type {I.Iterable}
*/
this.structure = undefined; //yet declared

@@ -53,2 +60,6 @@ }

}
read() {
return this.structure;
}
}

@@ -0,1 +1,2 @@

import Queue from '../src/Queue.js';
import Data from '../src/Data';

@@ -17,12 +18,35 @@ import * as I from 'immutable';

it('can be read from', function () {
expect(d.get('a')).toBe(1);
expect(d.getIn(['b', 'c'])).toBe(2);
expect(d.toJS()).toEqual({ a: 1, b: { c: 2 } });
expect(d.read().get('a')).toBe(1);
expect(d.read().getIn(['b', 'c'])).toBe(2);
expect(d.read().toJS()).toEqual({ a: 1, b: { c: 2 } });
});
it('can be written to', function () {
d.set('d', 3);
expect(d.get('d')).toBe(3);
it('can be written to with a new data', function () {
d.write(d.read().setIn(['b', 'c'], 3));
d.write(d.read().set('d', 3));
expect(d.read().getIn(['b', 'c'])).toBe(3);
expect(d.read().get('d')).toBe(3);
});
it('can be written to with a new data', function () {
Queue.appendAndRunQueue(function () {
//this time both writes will be executed after current command execution
d.write(d.read().setIn(['b', 'c'], 3));
d.write(d.read().set('d', 3));
});
// with a value only last write
// requested during one queue command or outside of queue
// will last
expect(d.read().getIn(['b', 'c'])).toBe(2);
expect(d.read().get('d')).toBe(3);
});
it('can be written to with a function returning data', function () {
d.write(v => v.setIn(['b', 'c'], 3));
d.write(v => v.set('d', 3));
expect(d.read().getIn(['b', 'c'])).toBe(3);
expect(d.read().get('d')).toBe(3);
});
it('can be subscribed to', function (done) {

@@ -40,3 +64,3 @@ let forthVal;

forthVal = 3;
d.set('d', forthVal);
d.write(d.read().set('d', forthVal));
});

@@ -57,11 +81,11 @@

expect(reactions).toBe(1); // subscription -> fake reaction
d.update(() => getDataMap().set('d', 3)); // change -> reaction
d.write(getDataMap().set('d', 3)); // change -> reaction
expect(reactions).toBe(2);
d.update(() => getDataMap().set('d', 3)); // no change -> no reaction
d.write(getDataMap().set('d', 3)); // no change -> no reaction
expect(reactions).toBe(2);
d.update(() => getDataMap().set('d', 4)); // change -> reaction
d.write(getDataMap().set('d', 4)); // change -> reaction
expect(reactions).toBe(3);
});
it('can be unsubscribed from', function (done) {
it('can be unsubscribed from', function () {
var reactions = 0;

@@ -72,3 +96,3 @@ var unsub = d.subscribe(() => {

d.set('d', 3); // change -> reaction
d.write(d.read().set('d', 3)); // change -> reaction
expect(reactions).toBe(2);

@@ -78,7 +102,5 @@

d.set('d', 5); // change -> no reaction
d.write(d.read().set('d', 5)); // change -> no reaction
expect(reactions).toBe(2);
done();
});
});

@@ -21,6 +21,6 @@ import Domain from '../src/Domain';

// so it is just informative
expect(d.get('a')).toBe(1);
expect(d.read().get('a')).toBe(1);
let dmn = new Domain(d);
expect(dmn.structure.get('a')).toBe(1);
expect(dmn.read().get('a')).toBe(1);
});

@@ -32,6 +32,6 @@

let v = new View(d, data => data);
expect(d.get('a')).toBe(1);
expect(d.read().get('a')).toBe(1);
let dmn2 = new Domain(v);
expect(dmn2.structure.get('a')).toBe(1);
expect(dmn2.read().get('a')).toBe(1);
});

@@ -73,3 +73,3 @@

dmn.data.set('a', 2);
d.write(v => v.set('a', 2));

@@ -76,0 +76,0 @@ expect(testVar).toBe(3);

@@ -9,20 +9,20 @@ import Domain from '../src/Domain';

it('can be created from a Data', function () {
var aData = new Data({a: 1});
var aData = new Data({ a: 1 });
var resultView = new View(aData, i=>i);
expect(resultView.get('a')).toBe(1);
expect(resultView.read().get('a')).toBe(1);
});
it('can be created from a View', function () {
var aData = new Data({a: 1});
var aData = new Data({ a: 1 });
var aView = new View(aData, i=>i);
var resultView = new View(aView, i=>i);
expect(resultView.get('a')).toBe(1);
expect(resultView.read().get('a')).toBe(1);
});
it('can be created from a Domain', function () {
var aData = new Data({a: 1});
var aData = new Data({ a: 1 });
var aView = new View(aData, i=>i);
var aDomain = new Domain(aView, {});
var resultView = new View(aDomain, i=>i);
expect(resultView.get('a')).toBe(1);
expect(resultView.read().get('a')).toBe(1);
});

@@ -45,14 +45,14 @@

it('can be read from / is a result of processing data', function () {
expect(v.get('a')).toBe(1);
expect(v.get('d')).toBe(3);
expect(v.read().get('a')).toBe(1);
expect(v.read().get('d')).toBe(3);
});
it('cannot be written to', function () {
expect(()=>v.set('a', 1)).toThrow();
expect(() => v.write(v => v.set('a', 1))).toThrow();
});
it('is reacting to new data', function () {
expect(v.toJS()).toEqual({ a: 1, b: { c: 2 }, d: 3 });
d.set('e', 4);
expect(v.toJS()).toEqual({ a: 1, b: { c: 2 }, d: 3, e: 4 });
expect(v.read().toJS()).toEqual({ a: 1, b: { c: 2 }, d: 3 });
d.write(v => v.set('e', 4));
expect(v.read().toJS()).toEqual({ a: 1, b: { c: 2 }, d: 3, e: 4 });
});

@@ -62,13 +62,13 @@

expect(vReactions).toBe(1);
d.set('e', 4);
d.write(v => v.set('e', 4));
expect(vReactions).toBe(2);
d.set('e', 4);
d.write(v => v.set('e', 4));
expect(vReactions).toBe(2);
d.delete('e');
d.write(v => v.delete('e'));
expect(vReactions).toBe(3);
d.delete('e');
d.write(v => v.delete('e'));
expect(vReactions).toBe(3);
d.setIn(['e', 'f'], 6);
d.write(v => v.setIn(['e', 'f'], 6));
expect(vReactions).toBe(4);
expect(v.getIn(['e', 'f'])).toBe(6);
expect(v.read().getIn(['e', 'f'])).toBe(6);
});

@@ -81,8 +81,8 @@

var v2 = new View({ d1, d2 });
expect(v2.toJS()).toEqual({
expect(v2.read().toJS()).toEqual({
d1: { a: 1 },
d2: { a: 2 },
});
d2.set('a', 3);
expect(v2.toJS()).toEqual({
d2.write(v => v.set('a', 3));
expect(v2.read().toJS()).toEqual({
d1: { a: 1 },

@@ -102,8 +102,8 @@ d2: { a: 3 },

});
expect(v2.toJS()).toEqual({
expect(v2.read().toJS()).toEqual({
a: { a: 1 },
b: { a: 2 },
});
d2.set('a', 3);
expect(v2.toJS()).toEqual({
d2.write(v => v.set('a', 3));
expect(v2.read().toJS()).toEqual({
a: { a: 1 },

@@ -110,0 +110,0 @@ b: { a: 3 },

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc