Skip to content

Commit 0553b48

Browse files
committed
Rename ‘value’ to ‘current’
1 parent 5f47ff8 commit 0553b48

File tree

3 files changed

+37
-35
lines changed

3 files changed

+37
-35
lines changed

readme.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,20 +57,20 @@ function Loader() {
5757
}
5858

5959
const loader = start(Loader);
60-
loader.value; // "idle"
60+
loader.current; // "idle"
6161

6262
loader.next("FETCH");
63-
loader.value; // "loading"
63+
loader.current; // "loading"
6464

6565
loader.resolved.then((result) => {
6666
console.log("Fetched", result.fetchData);
6767
// Use response of fetch()
68-
loader.value; // "success"
68+
loader.current; // "success"
6969
});
7070

7171
/* Or with await: */
7272
// const { fetchData } = await loader.resolved;
73-
// loader.value; // "success"
73+
// loader.current; // "success"
7474
```
7575

7676
### Passing parameters to a machine with closures
@@ -108,14 +108,14 @@ function SpecificLoader() {
108108

109109
// Start our specific loader machine
110110
const loader = start(SpecificLoader);
111-
loader.value; // "idle"
111+
loader.current; // "idle"
112112

113113
loader.next("FETCH");
114-
loader.value; // "loading"
114+
loader.current; // "loading"
115115

116116
loader.resolved.then(([response]) => {
117117
// Use response of fetch()
118-
loader.value; // "success"
118+
loader.current; // "success"
119119
});
120120
```
121121

@@ -125,6 +125,8 @@ loader.resolved.then(([response]) => {
125125
## TODO
126126

127127
- [ ] Parallel states by returning object for initial state
128+
- [ ] Assign data somehow?
129+
- [ ] Allow sending objects: `Event | { type: string }`
128130
- [ ] More examples!
129131
- [ ] Hook for React
130132
- [ ] Hook for Preact

src/index.test.ts

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -47,33 +47,33 @@ describe("Machine with entry and exit actions", () => {
4747

4848
test("sending events", async () => {
4949
const loader = start(Loader);
50-
expect(loader.value).toEqual("idle");
50+
expect(loader.current).toEqual("idle");
5151
expect(loader.changeCount).toEqual(0);
5252

5353
loader.next("NOOP");
54-
expect(loader.value).toEqual("idle");
54+
expect(loader.current).toEqual("idle");
5555
expect(loader.changeCount).toEqual(0);
5656

5757
const transitionResult = loader.next("FETCH");
5858
expect(fetch).toHaveBeenCalledWith("https://example.org/");
5959
expect(transitionResult.actions).toEqual([
6060
{ type: "entry", f: fetchData },
6161
]);
62-
expect(loader.value).toEqual("loading");
62+
expect(loader.current).toEqual("loading");
6363
expect(loader.changeCount).toEqual(1);
6464
expect(finishedLoading).toHaveBeenCalledTimes(0);
6565

6666
await expect(loader.resolved).resolves.toEqual({ fetchData: 42 });
6767
await expect(Promise.resolve(transitionResult)).resolves.toEqual({ fetchData: 42 });
6868
expect(finishedLoading).toHaveBeenCalledTimes(1);
6969
expect(loader.changeCount).toEqual(2);
70-
expect(loader.value).toEqual("success");
70+
expect(loader.current).toEqual("success");
7171
expect(succeeded).toHaveBeenCalledTimes(1);
7272

7373
const transitionResult2 = loader.next("FETCH");
7474
// expect(transitionResult2.actions).toEqual([]);
7575
expect(loader.changeCount).toEqual(2);
76-
expect(loader.value).toEqual("success");
76+
expect(loader.current).toEqual("success");
7777
expect(succeeded).toHaveBeenCalledTimes(1);
7878

7979
await loader.resolved;
@@ -87,38 +87,38 @@ describe("Machine with entry and exit actions", () => {
8787

8888
test("sending events", async () => {
8989
const loader = start(Loader);
90-
expect(loader.value).toEqual("idle");
90+
expect(loader.current).toEqual("idle");
9191

9292
const transitionResult = loader.next("FETCH");
9393
expect(fetch).toHaveBeenCalledTimes(1);
9494
expect(fetch).toHaveBeenLastCalledWith("https://example.org/");
9595
expect(transitionResult.actions).toEqual([
9696
{ type: "entry", f: fetchData },
9797
]);
98-
expect(loader.value).toEqual("loading");
98+
expect(loader.current).toEqual("loading");
9999
expect(loader.changeCount).toEqual(1);
100100

101101
await expect(loader.resolved).rejects.toEqual(new Error("Failed!"));
102102
await expect(Promise.resolve(transitionResult)).rejects.toEqual(
103103
new Error("Failed!")
104104
);
105105
expect(loader.changeCount).toEqual(2);
106-
expect(loader.value).toEqual("failure");
106+
expect(loader.current).toEqual("failure");
107107

108108
loader.next("FETCH");
109109
expect(fetch).toHaveBeenCalledTimes(1);
110110
expect(loader.changeCount).toEqual(2);
111111

112112
loader.next("RETRY");
113-
expect(loader.value).toEqual("loading");
113+
expect(loader.current).toEqual("loading");
114114
expect(loader.changeCount).toEqual(3);
115115

116116
expect(fetch).toHaveBeenCalledTimes(2);
117117
expect(fetch).toHaveBeenLastCalledWith("https://example.org/");
118118

119119
await expect(loader.resolved).resolves.toEqual({ fetchData: 42 });
120120
expect(loader.changeCount).toEqual(4);
121-
expect(loader.value).toEqual("success");
121+
expect(loader.current).toEqual("success");
122122
});
123123
});
124124
});
@@ -157,18 +157,18 @@ describe("Form Field Machine with always()", () => {
157157
test("sending events", () => {
158158
const formField = start(FormField);
159159
expect(formField).toBeDefined();
160-
expect(formField.value).toEqual("initial");
160+
expect(formField.current).toEqual("initial");
161161

162162
formField.next("CHANGE");
163-
expect(formField.value).toEqual("editing");
163+
expect(formField.current).toEqual("editing");
164164
expect(formField.changeCount).toEqual(1);
165165

166166
formField.next("CHANGE");
167-
expect(formField.value).toEqual("editing");
167+
expect(formField.current).toEqual("editing");
168168
expect(formField.changeCount).toEqual(1);
169169

170170
formField.next("BLUR");
171-
expect(formField.value).toEqual("valid");
171+
expect(formField.current).toEqual("valid");
172172
expect(formField.changeCount).toEqual(3);
173173
});
174174
});
@@ -181,18 +181,18 @@ describe("Form Field Machine with always()", () => {
181181
test("sending events", () => {
182182
const formField = start(FormField);
183183
expect(formField).toBeDefined();
184-
expect(formField.value).toEqual("initial");
184+
expect(formField.current).toEqual("initial");
185185

186186
formField.next("CHANGE");
187-
expect(formField.value).toEqual("editing");
187+
expect(formField.current).toEqual("editing");
188188
expect(formField.changeCount).toEqual(1);
189189

190190
formField.next("CHANGE");
191-
expect(formField.value).toEqual("editing");
191+
expect(formField.current).toEqual("editing");
192192
expect(formField.changeCount).toEqual(1);
193193

194194
formField.next("BLUR");
195-
expect(formField.value).toEqual("invalid");
195+
expect(formField.current).toEqual("invalid");
196196
expect(formField.changeCount).toEqual(3);
197197
});
198198
});
@@ -240,28 +240,28 @@ describe("Hierarchical Traffic Lights Machine", () => {
240240
test("sending events", () => {
241241
const machine = start(TrafficLights);
242242
expect(machine).toBeDefined();
243-
expect(machine.value).toEqual("green");
243+
expect(machine.current).toEqual("green");
244244

245245
machine.next("TIMER");
246-
expect(machine.value).toEqual("yellow");
246+
expect(machine.current).toEqual("yellow");
247247
expect(machine.changeCount).toEqual(1);
248248

249249
machine.next("TIMER");
250-
// expect(machine.value).toEqual("red");
251-
// expect(machine.value).toEqual(["red", "walk"]);
252-
expect(machine.value).toEqual({ "red": "walk" });
250+
// expect(machine.current).toEqual("red");
251+
// expect(machine.current).toEqual(["red", "walk"]);
252+
expect(machine.current).toEqual({ "red": "walk" });
253253
expect(machine.changeCount).toEqual(3);
254254

255255
machine.next("TIMER");
256-
expect(machine.value).toEqual("green");
256+
expect(machine.current).toEqual("green");
257257
expect(machine.changeCount).toEqual(4);
258258

259259
machine.next("POWER_RESTORED");
260-
expect(machine.value).toEqual({ "red": "walk" });
260+
expect(machine.current).toEqual({ "red": "walk" });
261261
expect(machine.changeCount).toEqual(6);
262262

263263
machine.next("POWER_OUTAGE");
264-
expect(machine.value).toEqual({ "red": "blinking" });
264+
expect(machine.current).toEqual({ "red": "blinking" });
265265
expect(machine.changeCount).toEqual(7);
266266
});
267267
});

src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ export function compound(...targets: Array<StateDefinition>): Compound {
7373

7474
export interface MachineInstance extends Iterator<null | string | Record<string, string>, void, string> {
7575
changeCount: number;
76-
value: null | string | Record<string, string>;
76+
current: null | string | Record<string, string>;
7777
resolved: null | Promise<Array<any>>;
7878
done: boolean;
7979
next(
@@ -362,7 +362,7 @@ export function start(
362362
get changeCount() {
363363
return changeCount;
364364
},
365-
get value() {
365+
get current() {
366366
return instance.current !== null ? instance.current[rootName] : null;
367367
},
368368
get resolved() {

0 commit comments

Comments
 (0)