immutable-state-creator
Advanced tools
Comparing version 0.2.2 to 1.0.0-beta1
@@ -1,3 +0,2 @@ | ||
import { List } from 'immutable' | ||
import { createState, StateObject } from '../src' | ||
import { createState } from '../src' | ||
@@ -9,19 +8,15 @@ interface Fields { | ||
const State = createState<Fields, keyof Fields>({ | ||
namespace: 'User', | ||
fields: { | ||
name: 'my name', | ||
age: 10 | ||
} | ||
}) | ||
describe('String and Number', () => { | ||
let State: StateObject<Fields> | ||
beforeEach(function() { | ||
State = createState<Fields>({ | ||
name: 'User', | ||
fields: { | ||
name: 'my name', | ||
age: 10 | ||
} | ||
}) | ||
}); | ||
it('should have initial state', () => { | ||
const initState = State.create() | ||
expect(State.age.getter(initState)).toBe(10) | ||
expect(State.name.getter(initState)).toBe('my name') | ||
expect(State.get('age')(initState)).toBe(10) | ||
expect(State.get('name')(initState)).toBe('my name') | ||
}) | ||
@@ -31,20 +26,10 @@ | ||
const initState = State.create() | ||
const newState = State.age.setter(20)(initState) | ||
expect(State.age.getter(newState)).toBe(20) | ||
const newState = State.set('age', 20)(initState) | ||
expect(State.get('age')(newState)).toBe(20) | ||
expect(newState.get('name')).toBe(initState.get('name')) | ||
const anotherState = State.name.setter('another name')(newState) | ||
const anotherState = State.set('name', 'another name')(newState) | ||
expect(anotherState.get('name')).toBe('another name') | ||
expect(anotherState.get('age')).toBe(newState.get('age')) | ||
}); | ||
it('should throw error if call `clear` on String', function() { | ||
const initState = State.create() | ||
expect(() => State.name.clear(initState)).toThrow(Error) | ||
}); | ||
it('should throw error if call `clear` on Number', function() { | ||
const initState = State.create() | ||
expect(() => State.age.clear(initState)).toThrow(Error) | ||
}); | ||
}) |
@@ -1,4 +0,4 @@ | ||
{"/Users/ruanyl/project/create-state/src/createState.ts": {"path":"/Users/ruanyl/project/create-state/src/createState.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":38}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":45}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":43}},"3":{"start":{"line":52,"column":13},"end":{"line":130,"column":1}},"4":{"start":{"line":53,"column":12},"end":{"line":58,"column":3}},"5":{"start":{"line":54,"column":4},"end":{"line":56,"column":5}},"6":{"start":{"line":55,"column":6},"end":{"line":55,"column":41}},"7":{"start":{"line":57,"column":4},"end":{"line":57,"column":16}},"8":{"start":{"line":60,"column":21},"end":{"line":69,"column":3}},"9":{"start":{"line":62,"column":25},"end":{"line":62,"column":46}},"10":{"start":{"line":63,"column":6},"end":{"line":63,"column":29}},"11":{"start":{"line":67,"column":6},"end":{"line":67,"column":24}},"12":{"start":{"line":71,"column":22},"end":{"line":125,"column":3}},"13":{"start":{"line":72,"column":19},"end":{"line":72,"column":45}},"14":{"start":{"line":73,"column":19},"end":{"line":73,"column":60}},"15":{"start":{"line":73,"column":31},"end":{"line":73,"column":60}},"16":{"start":{"line":75,"column":18},"end":{"line":78,"column":5}},"17":{"start":{"line":76,"column":16},"end":{"line":76,"column":25}},"18":{"start":{"line":77,"column":6},"end":{"line":77,"column":33}},"19":{"start":{"line":80,"column":17},"end":{"line":84,"column":5}},"20":{"start":{"line":80,"column":29},"end":{"line":84,"column":5}},"21":{"start":{"line":82,"column":16},"end":{"line":82,"column":25}},"22":{"start":{"line":83,"column":6},"end":{"line":83,"column":33}},"23":{"start":{"line":85,"column":20},"end":{"line":88,"column":5}},"24":{"start":{"line":85,"column":32},"end":{"line":88,"column":5}},"25":{"start":{"line":86,"column":16},"end":{"line":86,"column":25}},"26":{"start":{"line":87,"column":6},"end":{"line":87,"column":36}},"27":{"start":{"line":89,"column":16},"end":{"line":92,"column":5}},"28":{"start":{"line":90,"column":16},"end":{"line":90,"column":25}},"29":{"start":{"line":91,"column":6},"end":{"line":91,"column":31}},"30":{"start":{"line":93,"column":18},"end":{"line":96,"column":5}},"31":{"start":{"line":94,"column":16},"end":{"line":94,"column":25}},"32":{"start":{"line":95,"column":6},"end":{"line":95,"column":33}},"33":{"start":{"line":97,"column":19},"end":{"line":100,"column":5}},"34":{"start":{"line":97,"column":33},"end":{"line":100,"column":5}},"35":{"start":{"line":98,"column":16},"end":{"line":98,"column":25}},"36":{"start":{"line":99,"column":6},"end":{"line":99,"column":37}},"37":{"start":{"line":101,"column":16},"end":{"line":101,"column":62}},"38":{"start":{"line":101,"column":30},"end":{"line":101,"column":62}},"39":{"start":{"line":101,"column":43},"end":{"line":101,"column":53}},"40":{"start":{"line":102,"column":16},"end":{"line":105,"column":5}},"41":{"start":{"line":102,"column":42},"end":{"line":105,"column":5}},"42":{"start":{"line":103,"column":16},"end":{"line":103,"column":25}},"43":{"start":{"line":104,"column":6},"end":{"line":104,"column":41}},"44":{"start":{"line":106,"column":16},"end":{"line":109,"column":5}},"45":{"start":{"line":106,"column":28},"end":{"line":109,"column":5}},"46":{"start":{"line":107,"column":16},"end":{"line":107,"column":25}},"47":{"start":{"line":108,"column":6},"end":{"line":108,"column":32}},"48":{"start":{"line":110,"column":21},"end":{"line":113,"column":5}},"49":{"start":{"line":111,"column":16},"end":{"line":111,"column":25}},"50":{"start":{"line":112,"column":6},"end":{"line":112,"column":29}},"51":{"start":{"line":114,"column":21},"end":{"line":117,"column":5}},"52":{"start":{"line":115,"column":16},"end":{"line":115,"column":25}},"53":{"start":{"line":116,"column":6},"end":{"line":116,"column":29}},"54":{"start":{"line":118,"column":19},"end":{"line":121,"column":5}},"55":{"start":{"line":118,"column":31},"end":{"line":121,"column":5}},"56":{"start":{"line":119,"column":16},"end":{"line":119,"column":25}},"57":{"start":{"line":120,"column":6},"end":{"line":120,"column":35}},"58":{"start":{"line":122,"column":23},"end":{"line":122,"column":134}},"59":{"start":{"line":124,"column":4},"end":{"line":124,"column":21}},"60":{"start":{"line":127,"column":24},"end":{"line":127,"column":85}},"61":{"start":{"line":129,"column":2},"end":{"line":129,"column":53}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":52,"column":27},"end":{"line":52,"column":49}},"loc":{"start":{"line":52,"column":72},"end":{"line":130,"column":1}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":53,"column":12},"end":{"line":53,"column":12}},"loc":{"start":{"line":53,"column":23},"end":{"line":58,"column":3}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":61,"column":4},"end":{"line":null,"column":-1}},"loc":{"start":{"line":61,"column":4},"end":{"line":64,"column":5}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":71,"column":22},"end":{"line":71,"column":22}},"loc":{"start":{"line":71,"column":47},"end":{"line":125,"column":3}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":73,"column":19},"end":{"line":73,"column":19}},"loc":{"start":{"line":73,"column":26},"end":{"line":73,"column":60}}},"5":{"name":"(anonymous_5)","decl":{"start":{"line":75,"column":18},"end":{"line":75,"column":18}},"loc":{"start":{"line":75,"column":27},"end":{"line":78,"column":5}}},"6":{"name":"(anonymous_6)","decl":{"start":{"line":80,"column":17},"end":{"line":80,"column":17}},"loc":{"start":{"line":80,"column":24},"end":{"line":84,"column":5}}},"7":{"name":"(anonymous_7)","decl":{"start":{"line":80,"column":29},"end":{"line":80,"column":29}},"loc":{"start":{"line":80,"column":38},"end":{"line":84,"column":5}}},"8":{"name":"(anonymous_8)","decl":{"start":{"line":85,"column":20},"end":{"line":85,"column":20}},"loc":{"start":{"line":85,"column":27},"end":{"line":88,"column":5}}},"9":{"name":"(anonymous_9)","decl":{"start":{"line":85,"column":32},"end":{"line":85,"column":32}},"loc":{"start":{"line":85,"column":41},"end":{"line":88,"column":5}}},"10":{"name":"(anonymous_10)","decl":{"start":{"line":89,"column":16},"end":{"line":89,"column":16}},"loc":{"start":{"line":89,"column":25},"end":{"line":92,"column":5}}},"11":{"name":"(anonymous_11)","decl":{"start":{"line":93,"column":18},"end":{"line":93,"column":18}},"loc":{"start":{"line":93,"column":27},"end":{"line":96,"column":5}}},"12":{"name":"(anonymous_12)","decl":{"start":{"line":97,"column":19},"end":{"line":97,"column":19}},"loc":{"start":{"line":97,"column":28},"end":{"line":100,"column":5}}},"13":{"name":"(anonymous_13)","decl":{"start":{"line":97,"column":33},"end":{"line":97,"column":33}},"loc":{"start":{"line":97,"column":42},"end":{"line":100,"column":5}}},"14":{"name":"(anonymous_14)","decl":{"start":{"line":101,"column":16},"end":{"line":101,"column":16}},"loc":{"start":{"line":101,"column":25},"end":{"line":101,"column":62}}},"15":{"name":"(anonymous_15)","decl":{"start":{"line":101,"column":38},"end":{"line":101,"column":37}},"loc":{"start":{"line":101,"column":39},"end":{"line":101,"column":53}}},"16":{"name":"(anonymous_16)","decl":{"start":{"line":102,"column":16},"end":{"line":102,"column":16}},"loc":{"start":{"line":102,"column":37},"end":{"line":105,"column":5}}},"17":{"name":"(anonymous_17)","decl":{"start":{"line":102,"column":42},"end":{"line":102,"column":42}},"loc":{"start":{"line":102,"column":51},"end":{"line":105,"column":5}}},"18":{"name":"(anonymous_18)","decl":{"start":{"line":106,"column":16},"end":{"line":106,"column":16}},"loc":{"start":{"line":106,"column":23},"end":{"line":109,"column":5}}},"19":{"name":"(anonymous_19)","decl":{"start":{"line":106,"column":28},"end":{"line":106,"column":28}},"loc":{"start":{"line":106,"column":37},"end":{"line":109,"column":5}}},"20":{"name":"(anonymous_20)","decl":{"start":{"line":110,"column":21},"end":{"line":110,"column":21}},"loc":{"start":{"line":110,"column":30},"end":{"line":113,"column":5}}},"21":{"name":"(anonymous_21)","decl":{"start":{"line":114,"column":21},"end":{"line":114,"column":21}},"loc":{"start":{"line":114,"column":30},"end":{"line":117,"column":5}}},"22":{"name":"(anonymous_22)","decl":{"start":{"line":118,"column":19},"end":{"line":118,"column":19}},"loc":{"start":{"line":118,"column":26},"end":{"line":121,"column":5}}},"23":{"name":"(anonymous_23)","decl":{"start":{"line":118,"column":31},"end":{"line":118,"column":31}},"loc":{"start":{"line":118,"column":40},"end":{"line":121,"column":5}}}},"branchMap":{"0":{"loc":{"start":{"line":54,"column":4},"end":{"line":56,"column":5}},"type":"if","locations":[{"start":{"line":54,"column":4},"end":{"line":56,"column":5}},{"start":{"line":54,"column":4},"end":{"line":56,"column":5}}]}},"s":{"0":5,"1":5,"2":5,"3":5,"4":22,"5":62,"6":0,"7":62,"8":22,"9":22,"10":22,"11":22,"12":22,"13":70,"14":70,"15":18,"16":70,"17":5,"18":5,"19":70,"20":2,"21":2,"22":2,"23":70,"24":1,"25":1,"26":1,"27":70,"28":1,"29":1,"30":70,"31":1,"32":1,"33":70,"34":2,"35":2,"36":2,"37":70,"38":4,"39":4,"40":70,"41":1,"42":1,"43":1,"44":70,"45":1,"46":1,"47":1,"48":70,"49":1,"50":1,"51":70,"52":1,"53":1,"54":70,"55":3,"56":3,"57":3,"58":70,"59":70,"60":22,"61":22},"f":{"0":22,"1":62,"2":22,"3":70,"4":18,"5":5,"6":2,"7":2,"8":1,"9":1,"10":1,"11":1,"12":2,"13":2,"14":4,"15":4,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":3,"23":3},"b":{"0":[0,62]}} | ||
,"/Users/ruanyl/project/create-state/src/index.ts": {"path":"/Users/ruanyl/project/create-state/src/index.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":29}}},"fnMap":{},"branchMap":{},"s":{"0":5},"f":{},"b":{}} | ||
,"/Users/ruanyl/project/create-state/src/utils.ts": {"path":"/Users/ruanyl/project/create-state/src/utils.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":53}},"1":{"start":{"line":3,"column":13},"end":{"line":3,"column":98}},"2":{"start":{"line":3,"column":43},"end":{"line":3,"column":98}},"3":{"start":{"line":3,"column":59},"end":{"line":3,"column":98}},"4":{"start":{"line":3,"column":75},"end":{"line":3,"column":98}},"5":{"start":{"line":4,"column":13},"end":{"line":4,"column":75}},"6":{"start":{"line":4,"column":43},"end":{"line":4,"column":75}},"7":{"start":{"line":4,"column":59},"end":{"line":4,"column":75}},"8":{"start":{"line":5,"column":13},"end":{"line":5,"column":97}},"9":{"start":{"line":5,"column":43},"end":{"line":5,"column":97}},"10":{"start":{"line":5,"column":59},"end":{"line":5,"column":97}},"11":{"start":{"line":6,"column":13},"end":{"line":6,"column":97}},"12":{"start":{"line":6,"column":43},"end":{"line":6,"column":97}},"13":{"start":{"line":6,"column":59},"end":{"line":6,"column":97}},"14":{"start":{"line":7,"column":13},"end":{"line":7,"column":97}},"15":{"start":{"line":7,"column":46},"end":{"line":7,"column":97}},"16":{"start":{"line":7,"column":62},"end":{"line":7,"column":97}},"17":{"start":{"line":8,"column":13},"end":{"line":8,"column":58}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":24}},"loc":{"start":{"line":3,"column":38},"end":{"line":3,"column":98}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":43},"end":{"line":3,"column":43}},"loc":{"start":{"line":3,"column":54},"end":{"line":3,"column":98}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":3,"column":59},"end":{"line":3,"column":59}},"loc":{"start":{"line":3,"column":70},"end":{"line":3,"column":98}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":24}},"loc":{"start":{"line":4,"column":38},"end":{"line":4,"column":75}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":4,"column":43},"end":{"line":4,"column":43}},"loc":{"start":{"line":4,"column":54},"end":{"line":4,"column":75}}},"5":{"name":"(anonymous_5)","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":24}},"loc":{"start":{"line":5,"column":38},"end":{"line":5,"column":97}}},"6":{"name":"(anonymous_6)","decl":{"start":{"line":5,"column":43},"end":{"line":5,"column":43}},"loc":{"start":{"line":5,"column":54},"end":{"line":5,"column":97}}},"7":{"name":"(anonymous_7)","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":24}},"loc":{"start":{"line":6,"column":38},"end":{"line":6,"column":97}}},"8":{"name":"(anonymous_8)","decl":{"start":{"line":6,"column":43},"end":{"line":6,"column":43}},"loc":{"start":{"line":6,"column":54},"end":{"line":6,"column":97}}},"9":{"name":"(anonymous_9)","decl":{"start":{"line":7,"column":27},"end":{"line":7,"column":27}},"loc":{"start":{"line":7,"column":41},"end":{"line":7,"column":97}}},"10":{"name":"(anonymous_10)","decl":{"start":{"line":7,"column":46},"end":{"line":7,"column":46}},"loc":{"start":{"line":7,"column":57},"end":{"line":7,"column":97}}}},"branchMap":{},"s":{"0":5,"1":5,"2":18,"3":18,"4":18,"5":5,"6":70,"7":44,"8":5,"9":0,"10":0,"11":5,"12":0,"13":0,"14":5,"15":0,"16":0,"17":5},"f":{"0":18,"1":18,"2":18,"3":70,"4":44,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},"b":{}} | ||
{"/Users/ruanyl/project/create-state/src/createState.ts": {"path":"/Users/ruanyl/project/create-state/src/createState.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":30}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":43}},"3":{"start":{"line":18,"column":13},"end":{"line":45,"column":1}},"4":{"start":{"line":19,"column":12},"end":{"line":24,"column":3}},"5":{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},"6":{"start":{"line":21,"column":6},"end":{"line":21,"column":40}},"7":{"start":{"line":23,"column":4},"end":{"line":23,"column":16}},"8":{"start":{"line":26,"column":17},"end":{"line":29,"column":3}},"9":{"start":{"line":27,"column":23},"end":{"line":27,"column":47}},"10":{"start":{"line":28,"column":4},"end":{"line":28,"column":27}},"11":{"start":{"line":31,"column":14},"end":{"line":33,"column":3}},"12":{"start":{"line":32,"column":4},"end":{"line":32,"column":40}},"13":{"start":{"line":35,"column":14},"end":{"line":37,"column":3}},"14":{"start":{"line":36,"column":4},"end":{"line":36,"column":43}},"15":{"start":{"line":39,"column":2},"end":{"line":44,"column":3}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":18,"column":27},"end":{"line":18,"column":64}},"loc":{"start":{"line":18,"column":87},"end":{"line":45,"column":1}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":19,"column":12},"end":{"line":19,"column":12}},"loc":{"start":{"line":19,"column":47},"end":{"line":24,"column":3}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":26,"column":17},"end":{"line":null,"column":-1}},"loc":{"start":{"line":26,"column":17},"end":{"line":29,"column":3}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":31,"column":14},"end":{"line":31,"column":14}},"loc":{"start":{"line":31,"column":19},"end":{"line":33,"column":3}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":35,"column":14},"end":{"line":35,"column":14}},"loc":{"start":{"line":35,"column":28},"end":{"line":37,"column":3}}}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},"type":"if","locations":[{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},{"start":{"line":20,"column":4},"end":{"line":22,"column":5}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":5,"6":0,"7":5,"8":1,"9":2,"10":2,"11":1,"12":3,"13":1,"14":2,"15":1},"f":{"0":1,"1":5,"2":2,"3":3,"4":2},"b":{"0":[0,5]}} | ||
,"/Users/ruanyl/project/create-state/src/index.ts": {"path":"/Users/ruanyl/project/create-state/src/index.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":29}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{}} | ||
,"/Users/ruanyl/project/create-state/src/utils.ts": {"path":"/Users/ruanyl/project/create-state/src/utils.ts","statementMap":{"0":{"start":{"line":3,"column":13},"end":{"line":3,"column":147}},"1":{"start":{"line":3,"column":88},"end":{"line":3,"column":147}},"2":{"start":{"line":3,"column":124},"end":{"line":3,"column":147}},"3":{"start":{"line":4,"column":13},"end":{"line":4,"column":127}},"4":{"start":{"line":4,"column":75},"end":{"line":4,"column":127}},"5":{"start":{"line":4,"column":111},"end":{"line":4,"column":127}},"6":{"start":{"line":5,"column":13},"end":{"line":5,"column":97}},"7":{"start":{"line":5,"column":43},"end":{"line":5,"column":97}},"8":{"start":{"line":5,"column":59},"end":{"line":5,"column":97}},"9":{"start":{"line":6,"column":13},"end":{"line":6,"column":97}},"10":{"start":{"line":6,"column":43},"end":{"line":6,"column":97}},"11":{"start":{"line":6,"column":59},"end":{"line":6,"column":97}},"12":{"start":{"line":7,"column":13},"end":{"line":7,"column":97}},"13":{"start":{"line":7,"column":46},"end":{"line":7,"column":97}},"14":{"start":{"line":7,"column":62},"end":{"line":7,"column":97}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":61}},"loc":{"start":{"line":3,"column":83},"end":{"line":3,"column":147}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":88},"end":{"line":3,"column":88}},"loc":{"start":{"line":3,"column":119},"end":{"line":3,"column":147}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":61}},"loc":{"start":{"line":4,"column":70},"end":{"line":4,"column":127}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":75},"end":{"line":4,"column":75}},"loc":{"start":{"line":4,"column":106},"end":{"line":4,"column":127}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":24}},"loc":{"start":{"line":5,"column":38},"end":{"line":5,"column":97}}},"5":{"name":"(anonymous_5)","decl":{"start":{"line":5,"column":43},"end":{"line":5,"column":43}},"loc":{"start":{"line":5,"column":54},"end":{"line":5,"column":97}}},"6":{"name":"(anonymous_6)","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":24}},"loc":{"start":{"line":6,"column":38},"end":{"line":6,"column":97}}},"7":{"name":"(anonymous_7)","decl":{"start":{"line":6,"column":43},"end":{"line":6,"column":43}},"loc":{"start":{"line":6,"column":54},"end":{"line":6,"column":97}}},"8":{"name":"(anonymous_8)","decl":{"start":{"line":7,"column":27},"end":{"line":7,"column":27}},"loc":{"start":{"line":7,"column":41},"end":{"line":7,"column":97}}},"9":{"name":"(anonymous_9)","decl":{"start":{"line":7,"column":46},"end":{"line":7,"column":46}},"loc":{"start":{"line":7,"column":57},"end":{"line":7,"column":97}}}},"branchMap":{},"s":{"0":1,"1":2,"2":2,"3":1,"4":3,"5":3,"6":1,"7":0,"8":0,"9":1,"10":0,"11":0,"12":1,"13":0,"14":0},"f":{"0":2,"1":2,"2":3,"3":3,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"b":{}} | ||
} |
@@ -1,40 +0,16 @@ | ||
import { Map } from 'immutable'; | ||
export interface Dictionary { | ||
[key: string]: any; | ||
} | ||
import { Record } from 'immutable'; | ||
export interface StateConfig<T> { | ||
name: string; | ||
namespace: string; | ||
fields: T; | ||
} | ||
export declare type State = any; | ||
export declare type Getter<T> = (s: State) => T; | ||
export declare type Setter<T> = (v: T) => (s: State) => State; | ||
export declare type EmptySetter = (s: State) => State; | ||
export declare type ValueSetter = (v: any) => (s: State) => State; | ||
export declare type ImmutableMapGetter = <V = any>(k: string) => (s: State) => V; | ||
export declare type ImmutableMapSetter = <K = string, V = any>(k: K, v: V) => (s: State) => State; | ||
export interface ComputedProps<T> { | ||
getter: Getter<T>; | ||
setter: Setter<T>; | ||
clear: EmptySetter; | ||
push: ValueSetter; | ||
unshift: ValueSetter; | ||
pop: EmptySetter; | ||
shift: EmptySetter; | ||
delete: ValueSetter; | ||
get: ImmutableMapGetter; | ||
set: ImmutableMapSetter; | ||
add: ValueSetter; | ||
increase: EmptySetter; | ||
decrease: EmptySetter; | ||
concat: ValueSetter; | ||
export interface GlobalState { | ||
[key: string]: any; | ||
__root: any; | ||
} | ||
export declare type ComputedState<T> = { | ||
[P in keyof T]: ComputedProps<T[P]>; | ||
export declare type LocalState<T> = Record<T> & Readonly<T>; | ||
export declare const createState: <T extends object, K extends keyof T>(config: StateConfig<T>) => { | ||
create: () => LocalState<T>; | ||
get: (k: K) => (x0: GlobalState | LocalState<T>) => T[K]; | ||
set: (k: K, v: T[K]) => (x0: GlobalState | LocalState<T>) => LocalState<T>; | ||
namespace: string; | ||
}; | ||
export interface EmptyState<T> { | ||
create: () => Map<string, any>; | ||
name: string; | ||
} | ||
export declare type StateObject<T> = EmptyState<T> & ComputedState<T>; | ||
export declare const createState: <T extends Dictionary>(config: StateConfig<T>) => StateObject<T>; |
@@ -9,69 +9,23 @@ "use strict"; | ||
if (state.has('__root')) { | ||
return utils_1.getField(config.name)(state); | ||
return state.get(config.namespace); | ||
} | ||
return state; | ||
}; | ||
var emptyState = { | ||
create: function () { | ||
var StateShape = immutable_1.Record(config.fields); | ||
return new StateShape(); | ||
}, | ||
get name() { | ||
return config.name; | ||
}, | ||
var create = function () { | ||
var StateShape = immutable_1.Record(config.fields); | ||
return new StateShape(); | ||
}; | ||
var assignProps = function (value, prop) { | ||
var getter = ramda_1.compose(utils_1.getField(prop), g); | ||
var setter = function (v) { return ramda_1.compose(utils_1.setField(prop)(v), g); }; | ||
var clear = function (s) { | ||
var c = getter(s); | ||
return setter(c.clear())(s); | ||
}; | ||
var push = function (v) { return function (s) { | ||
var c = getter(s); | ||
return setter(c.push(v))(s); | ||
}; }; | ||
var unshift = function (v) { return function (s) { | ||
var c = getter(s); | ||
return setter(c.unshift(v))(s); | ||
}; }; | ||
var pop = function (s) { | ||
var c = getter(s); | ||
return setter(c.pop())(s); | ||
}; | ||
var shift = function (s) { | ||
var c = getter(s); | ||
return setter(c.shift())(s); | ||
}; | ||
var remove = function (key) { return function (s) { | ||
var c = getter(s); | ||
return setter(c.delete(key))(s); | ||
}; }; | ||
var get = function (key) { return ramda_1.compose(function (c) { return c.get(key); }, getter); }; | ||
var set = function (key, value) { return function (s) { | ||
var c = getter(s); | ||
return setter(c.set(key, value))(s); | ||
}; }; | ||
var add = function (v) { return function (s) { | ||
var c = getter(s); | ||
return setter(c.add(v))(s); | ||
}; }; | ||
var increase = function (s) { | ||
var v = getter(s); | ||
return setter(v + 1)(s); | ||
}; | ||
var decrease = function (s) { | ||
var v = getter(s); | ||
return setter(v - 1)(s); | ||
}; | ||
var concat = function (v) { return function (s) { | ||
var c = getter(s); | ||
return setter(c.concat(v))(s); | ||
}; }; | ||
var operations = { getter: getter, setter: setter, clear: clear, push: push, unshift: unshift, pop: pop, shift: shift, delete: remove, get: get, set: set, add: add, increase: increase, decrease: decrease, concat: concat }; | ||
return operations; | ||
var get = function (k) { | ||
return ramda_1.compose(utils_1.getField(k), g); | ||
}; | ||
var computedState = ramda_1.mapObjIndexed(assignProps, config.fields); | ||
return Object.assign({}, emptyState, computedState); | ||
var set = function (k, v) { | ||
return ramda_1.compose(utils_1.setField(k, v), g); | ||
}; | ||
return { | ||
create: create, | ||
get: get, | ||
set: set, | ||
namespace: config.namespace, | ||
}; | ||
}; | ||
//# sourceMappingURL=createState.js.map |
@@ -1,6 +0,6 @@ | ||
export declare const setField: (field: string) => (value: any) => (state: any) => any; | ||
export declare const getField: (field: string) => (state: any) => any; | ||
import { Record } from 'immutable'; | ||
export declare const setField: <T extends object, K extends keyof T>(field: K, value: T[K]) => (state: Record<T> & Readonly<T>) => Record<T> & Readonly<T>; | ||
export declare const getField: <T extends object, K extends keyof T>(field: K) => (state: Record<T> & Readonly<T>) => T[K]; | ||
export declare const incField: (field: string) => (state: any) => any; | ||
export declare const decField: (field: string) => (state: any) => any; | ||
export declare const toggleField: (field: string) => (state: any) => any; | ||
export declare const flipCurry: (x: (a: any) => any) => (...a: any[]) => any; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var ramda_1 = require("ramda"); | ||
exports.setField = function (field) { return function (value) { return function (state) { return state.set(field, value); }; }; }; | ||
exports.setField = function (field, value) { return function (state) { return state.set(field, value); }; }; | ||
exports.getField = function (field) { return function (state) { return state.get(field); }; }; | ||
@@ -9,3 +8,2 @@ exports.incField = function (field) { return function (state) { return state.set(field, state.get(field) + 1); }; }; | ||
exports.toggleField = function (field) { return function (state) { return state.set(field, !state.get(field)); }; }; | ||
exports.flipCurry = ramda_1.compose(ramda_1.curry, ramda_1.flip, ramda_1.uncurryN(2)); | ||
//# sourceMappingURL=utils.js.map |
{ | ||
"name": "immutable-state-creator", | ||
"version": "0.2.2", | ||
"version": "1.0.0-beta1", | ||
"description": "utilities to create immutable state", | ||
@@ -16,9 +16,9 @@ "main": "./lib/index.js", | ||
"jest": "^22.4.3", | ||
"ts-jest": "^22.4.4", | ||
"typescript": "^2.8.3" | ||
"ts-jest": "^23.10.5", | ||
"typescript": "^3.3.3" | ||
}, | ||
"dependencies": { | ||
"@types/jest": "^22.2.3", | ||
"@types/ramda": "^0.25.24", | ||
"immutable": "^3.8.2", | ||
"@types/ramda": "^0.25.48", | ||
"immutable": "^4.0.0-rc.12", | ||
"ramda": "^0.25.0" | ||
@@ -25,0 +25,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
73415
30
632
+ Addedimmutable@4.3.7(transitive)
- Removedimmutable@3.8.2(transitive)
Updated@types/ramda@^0.25.48
Updatedimmutable@^4.0.0-rc.12