2017-04-03 bouzuya/fake-history-fns をつくった
bouzuya/fake-history-fns をつくった。
fake-history-fns は bouzuya/fake-history (2017-04-01) の class
を使わない版。 fake-history は History interface を備えた fake object である 。特徴というか利点は次のとおり。
- 関数単位での
import
ができる JSON.stringify
/JSON.parse
で serialize / deserialize できる- (個人的に) OOP は難しいので FP (?)
README にある例。
import * as assert from 'assert';
import {
back,
create,
current,
currentState,
length,
next,
nextState,
previous,
previousState,
pushState,
state
} from 'fake-history-fns';
const p0 = create();
const p1 = pushState(p0, 1, '1', '/1');
const p2 = pushState(p1, 2, '2', '/2');
const p3 = pushState(p2, 3, '3', '/3');
const b1 = back(p0);
assert(length(b1) === 3);
assert(state(b1) === 2);
assert(current(b1) === '/2');
assert(currentState(b1) === 2);
assert(next(b1) === '/3');
assert(nextState(b1) === 3);
assert(previous(b1) === '/1');
assert(previousState(b1) === 1);
bouzuya/mr-jums には fake-history でなく fake-history-fns を採用した。実際には関数単位での import
なんてしないし、 History
を永続化する意味はまったくないので、趣味の問題だ。