-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
90 lines (72 loc) · 2.27 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/* @macrome
* @generatedby @macrome/generator-typescript
* @generatedfrom ./index.ts#1666026794223
* This file is autogenerated. Please do not edit it directly.
* When editing run `npx macrome watch` then change the file this is generated from.
*/
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "Pattern", {
enumerable: true,
get: function() {
return _pattern.Pattern;
}
});
(exports.execGlobal = (exports.exec = void 0));
Object.defineProperty(exports, "parse", {
enumerable: true,
get: function() {
return _pattern.parse;
}
});
(exports.test = void 0);
var _asyncPeekerate = _interopRequireDefault(require("iter-tools-es/methods/async-peekerate"));
var _asyncWrap = _interopRequireDefault(require("iter-tools-es/methods/async-wrap"));
var _asyncConsume = _interopRequireDefault(require("iter-tools-es/methods/async-consume"));
var _api = require("./api");
var _engine = require("../internal/engine");
var _pattern = require("../pattern");
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const { exec, test, execGlobal } = new _api.AsyncApi(async function* generate(
pattern,
iterable,
) {
const engine = new _engine.Engine(pattern);
let peekr = await (0, _asyncPeekerate.default)(iterable);
try {
engine.feed(null);
while (!peekr.done) {
engine.feed(peekr.value);
yield* engine.traverse0();
engine.traverse1();
if (engine.done) {
break;
} else {
peekr = await peekr.advance();
}
}
if (peekr.done) {
engine.feed(null);
yield* engine.traverse0();
}
} finally {
await peekr.return();
}
});
exports.execGlobal = execGlobal;
exports.test = test;
exports.exec = exec;
const warmupPattern1 = (0, _pattern.parse)('.*', 'g');
const warmupPattern2 = (0, _pattern.parse)('(a)|(b)', 'g');
for (let i = 0; i < 4; i++) {
(0, _asyncConsume.default)(execGlobal(warmupPattern1, (0, _asyncWrap.default)('ab')));
(0, _asyncConsume.default)(execGlobal(warmupPattern2, (0, _asyncWrap.default)('ab')));
(0, _asyncConsume.default)(execGlobal(warmupPattern2, (0, _asyncWrap.default)('a')));
(0, _asyncConsume.default)(execGlobal(warmupPattern2, (0, _asyncWrap.default)('')));
}