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
を永続化する意味はまったくないので、趣味の問題だ。