@zimtsui/iterflow 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/test.js DELETED
@@ -1,281 +0,0 @@
1
- var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
2
- if (value !== null && value !== void 0) {
3
- if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
4
- var dispose, inner;
5
- if (async) {
6
- if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
7
- dispose = value[Symbol.asyncDispose];
8
- }
9
- if (dispose === void 0) {
10
- if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
11
- dispose = value[Symbol.dispose];
12
- if (async) inner = dispose;
13
- }
14
- if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
15
- if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
16
- env.stack.push({ value: value, dispose: dispose, async: async });
17
- }
18
- else if (async) {
19
- env.stack.push({ async: true });
20
- }
21
- return value;
22
- };
23
- var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
24
- return function (env) {
25
- function fail(e) {
26
- env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
27
- env.hasError = true;
28
- }
29
- var r, s = 0;
30
- function next() {
31
- while (r = env.stack.pop()) {
32
- try {
33
- if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
34
- if (r.dispose) {
35
- var result = r.dispose.call(r.value);
36
- if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
37
- }
38
- else s |= 1;
39
- }
40
- catch (e) {
41
- fail(e);
42
- }
43
- }
44
- if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
45
- if (env.hasError) throw env.error;
46
- }
47
- return next();
48
- };
49
- })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
50
- var e = new Error(message);
51
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
- });
53
- import test from 'ava';
54
- import { Evaluation, Optimization, Opposition, Rejection, opteva, } from "./exports.js";
55
- test('Evaluation.Initialized.from rejects evaluators that miss the sentinel first yield', async (t) => {
56
- async function* raw() {
57
- yield 'not-a-sentinel';
58
- throw new Error('unreachable');
59
- }
60
- const error = await t.throwsAsync(async () => {
61
- await Evaluation.Initialized.from(raw());
62
- });
63
- t.true(error instanceof Error);
64
- if (error instanceof Error)
65
- t.is(error.cause, 'not-a-sentinel');
66
- });
67
- test('Optimization.Cache.from replays the latest accepted draft and preserves it after opposition', async (t) => {
68
- const env_1 = { stack: [], error: void 0, hasError: false };
69
- try {
70
- const seenRejections = [];
71
- async function* raw() {
72
- let draft = 'draft-1';
73
- for (;;)
74
- try {
75
- yield draft;
76
- }
77
- catch (e) {
78
- if (!(e instanceof Rejection))
79
- throw e;
80
- seenRejections.push(e.message);
81
- if (e.message === 'revise')
82
- draft = 'draft-2';
83
- else if (e.message === 'wrong')
84
- yield new Opposition('keep draft-2');
85
- else
86
- throw e;
87
- }
88
- }
89
- const cache = __addDisposableResource(env_1, Optimization.Cache.from(raw()), true);
90
- t.is(await cache.next().then(r => r.value), 'draft-1');
91
- t.is(await cache.next().then(r => r.value), 'draft-1');
92
- t.is(await cache.throw(new Rejection('revise')).then(r => r.value), 'draft-2');
93
- t.is(await cache.next().then(r => r.value), 'draft-2');
94
- const opposition = await cache.throw(new Rejection('wrong')).then(r => r.value);
95
- t.true(opposition instanceof Opposition);
96
- if (opposition instanceof Opposition)
97
- t.is(opposition.message, 'keep draft-2');
98
- t.is(await cache.next().then(r => r.value), 'draft-2');
99
- t.deepEqual(seenRejections, ['revise', 'wrong']);
100
- }
101
- catch (e_1) {
102
- env_1.error = e_1;
103
- env_1.hasError = true;
104
- }
105
- finally {
106
- const result_1 = __disposeResources(env_1);
107
- if (result_1)
108
- await result_1;
109
- }
110
- });
111
- test('Optimization.Snapshot.from rethrows revisions and only returns oppositions', async (t) => {
112
- const env_2 = { stack: [], error: void 0, hasError: false };
113
- try {
114
- async function* raw() {
115
- let draft = 'draft-1';
116
- for (;;)
117
- try {
118
- yield draft;
119
- }
120
- catch (e) {
121
- if (!(e instanceof Rejection))
122
- throw e;
123
- if (e.message === 'revise')
124
- draft = 'draft-2';
125
- else if (e.message === 'wrong')
126
- yield new Opposition('keep draft-2');
127
- else
128
- throw e;
129
- }
130
- }
131
- const cache = __addDisposableResource(env_2, Optimization.Cache.from(raw()), true);
132
- const snapshot = Optimization.Snapshot.from(cache);
133
- t.is(await snapshot.next().then(r => r.value), 'draft-1');
134
- const revision = new Rejection('revise');
135
- let thrown;
136
- try {
137
- await snapshot.throw(revision);
138
- }
139
- catch (e) {
140
- thrown = e;
141
- }
142
- t.is(thrown, revision);
143
- t.is(await snapshot.next().then(r => r.value), 'draft-2');
144
- const opposition = await snapshot.throw(new Rejection('wrong')).then(r => r.value);
145
- t.true(opposition instanceof Opposition);
146
- if (opposition instanceof Opposition)
147
- t.is(opposition.message, 'keep draft-2');
148
- }
149
- catch (e_2) {
150
- env_2.error = e_2;
151
- env_2.hasError = true;
152
- }
153
- finally {
154
- const result_2 = __disposeResources(env_2);
155
- if (result_2)
156
- await result_2;
157
- }
158
- });
159
- test('opteva returns a recovered snapshot when the evaluator accepts immediately', async (t) => {
160
- const env_3 = { stack: [], error: void 0, hasError: false };
161
- try {
162
- async function* optimize() {
163
- yield 'draft';
164
- throw new Error('unreachable');
165
- }
166
- async function* evaluate() {
167
- const draft = yield new Evaluation.FirstYield();
168
- yield draft.length;
169
- throw new Error('unreachable');
170
- }
171
- const optimization = __addDisposableResource(env_3, Optimization.Cache.from(optimize()), true);
172
- const evaluation = __addDisposableResource(env_3, await Evaluation.Initialized.from(evaluate()), true);
173
- const snapshot = await opteva(Optimization.Snapshot.from(optimization), evaluation);
174
- t.is(await snapshot.next().then(r => r.value), 5);
175
- t.is(await snapshot.next().then(r => r.value), 5);
176
- }
177
- catch (e_3) {
178
- env_3.error = e_3;
179
- env_3.hasError = true;
180
- }
181
- finally {
182
- const result_3 = __disposeResources(env_3);
183
- if (result_3)
184
- await result_3;
185
- }
186
- });
187
- test('opteva surfaces a rejection after optimizer revision and succeeds on the next attempt', async (t) => {
188
- const env_4 = { stack: [], error: void 0, hasError: false };
189
- try {
190
- async function* optimize() {
191
- let draft = 'draft-1';
192
- for (;;)
193
- try {
194
- yield draft;
195
- }
196
- catch (e) {
197
- if (!(e instanceof Rejection))
198
- throw e;
199
- if (e.message === 'too short')
200
- draft = 'draft-2';
201
- else
202
- throw e;
203
- }
204
- }
205
- async function* evaluate() {
206
- let draft = yield new Evaluation.FirstYield();
207
- draft = yield new Rejection('too short');
208
- yield draft.toUpperCase();
209
- throw new Error('unreachable');
210
- }
211
- const optimization = __addDisposableResource(env_4, Optimization.Cache.from(optimize()), true);
212
- const evaluation = __addDisposableResource(env_4, await Evaluation.Initialized.from(evaluate()), true);
213
- let rejection;
214
- try {
215
- await opteva(Optimization.Snapshot.from(optimization), evaluation);
216
- }
217
- catch (e) {
218
- rejection = e;
219
- }
220
- t.true(rejection instanceof Rejection);
221
- if (rejection instanceof Rejection)
222
- t.is(rejection.message, 'too short');
223
- const snapshot = await opteva(Optimization.Snapshot.from(optimization), evaluation);
224
- t.is(await snapshot.next().then(r => r.value), 'DRAFT-2');
225
- }
226
- catch (e_4) {
227
- env_4.error = e_4;
228
- env_4.hasError = true;
229
- }
230
- finally {
231
- const result_4 = __disposeResources(env_4);
232
- if (result_4)
233
- await result_4;
234
- }
235
- });
236
- test('opteva resolves optimizer opposition through evaluator.throw without restarting', async (t) => {
237
- const env_5 = { stack: [], error: void 0, hasError: false };
238
- try {
239
- async function* optimize() {
240
- for (;;)
241
- try {
242
- yield 'candidate';
243
- }
244
- catch (e) {
245
- if (!(e instanceof Rejection))
246
- throw e;
247
- if (e.message === 'wrong')
248
- yield new Opposition('candidate is valid');
249
- else
250
- throw e;
251
- }
252
- }
253
- async function* evaluate() {
254
- const draft = yield new Evaluation.FirstYield();
255
- try {
256
- yield new Rejection('wrong');
257
- }
258
- catch (e) {
259
- if (!(e instanceof Opposition))
260
- throw e;
261
- yield `${draft}:${e.message}`;
262
- throw new Error('unreachable');
263
- }
264
- throw new Error('unreachable');
265
- }
266
- const optimization = __addDisposableResource(env_5, Optimization.Cache.from(optimize()), true);
267
- const evaluation = __addDisposableResource(env_5, await Evaluation.Initialized.from(evaluate()), true);
268
- const snapshot = await opteva(Optimization.Snapshot.from(optimization), evaluation);
269
- t.is(await snapshot.next().then(r => r.value), 'candidate:candidate is valid');
270
- }
271
- catch (e_5) {
272
- env_5.error = e_5;
273
- env_5.hasError = true;
274
- }
275
- finally {
276
- const result_5 = __disposeResources(env_5);
277
- if (result_5)
278
- await result_5;
279
- }
280
- });
281
- //# sourceMappingURL=test.js.map
package/build/test.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}