move evaluate logic without transpiler to core
+ breaking change: evalScope is now imported from core + breaking change: deprecated extend is now removed + add repl.mjs
This commit is contained in:
parent
0485632e22
commit
371af755df
14 changed files with 107 additions and 85 deletions
23
packages/core/repl.mjs
Normal file
23
packages/core/repl.mjs
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import { Cyclist } from './cyclist.mjs';
|
||||
import { evaluate as _evaluate } from './evaluate.mjs';
|
||||
|
||||
export function repl({ interval, defaultOutput, onSchedulerError, onEvalError, onEval, getTime, transpiler }) {
|
||||
const scheduler = new Cyclist({ interval, onTrigger: defaultOutput, onError: onSchedulerError, getTime });
|
||||
const evaluate = async (code) => {
|
||||
if (!code) {
|
||||
throw new Error('no code to evaluate');
|
||||
}
|
||||
try {
|
||||
const { pattern } = await _evaluate(code, transpiler);
|
||||
scheduler.setPattern(pattern);
|
||||
onEval({
|
||||
pattern,
|
||||
code,
|
||||
});
|
||||
} catch (err) {
|
||||
onEvalError?.(err);
|
||||
console.warn('eval error', err);
|
||||
}
|
||||
};
|
||||
return { scheduler, evaluate };
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue