This package has been deprecated

Author message:

Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

@strudel.cycles/eval

0.8.0 • Public • Published

@strudel.cycles/eval

This package contains the strudel code transformer and evaluator. It allows creating strudel patterns from input code that is optimized for minimal keystrokes and human readability.

Deprecation Note

This package will not be developed further. Consider using @strudel.cycles/transpiler as a replacement.

Install

npm i @strudel.cycles/eval --save

Example

import { evalScope } from '@strudel.cycles/core';
import { evaluate } from '@strudel.cycles/eval';

evalScope(
  import('@strudel.cycles/core'),
  // import other strudel packages here
); // add strudel to eval scope

async function run(code) {
  const { pattern } = await evaluate(code);
  const events = pattern.firstCycle();
  console.log(events.map((e) => e.show()).join('\n'));
}

run('sequence([a3, [b3, c4]])');

yields:

(0/1 -> 1/2, 0/1 -> 1/2, a3)
(1/2 -> 3/4, 1/2 -> 3/4, b3)
(3/4 -> 1/1, 3/4 -> 1/1, c4)

play with @strudel.cycles/eval on codesandbox

Dev Notes

shift-traverser is currently monkey patched because its package.json uses estraverse@^4.2.0, which does not support the spread operator (Error: Unknown node type SpreadProperty.). By monkey patched, I mean I copied the source of shift-traverser to a subfolder and installed the dependencies (shift-spec + estraverse@^5.3.0)

Package Sidebar

Install

npm i @strudel.cycles/eval

Weekly Downloads

7

Version

0.8.0

License

AGPL-3.0-or-later

Unpacked Size

66.5 kB

Total Files

12

Last publish

Collaborators

  • felixroos
  • yaxupaxo