Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

node-syntax-tree

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-syntax-tree

A node package for accessing Syntax Tree through WASM

  • 0.2.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

node-syntax-tree

node-syntax-tree is a node package for executing Syntax Tree in a WASM environment. It functions by compiling the Ruby interpreter and Syntax Tree source files into a WASM package that is loaded and executed at runtime.

Getting started

If you're using the npm:

npm install --save node-syntax-tree

Or if you're using yarn, then add the plugin by:

yarn add node-syntax-tree

Usage

node-syntax-tree provides both CJS and ESM modules distributions. To require through CJS, run:

const { default: createSyntaxTree } = require("node-syntax-tree");

To require through ESM, run:

import createSyntaxTree from "node-syntax-tree";

Once you have the import, you can initial the virtual machine and run the associated functions, as in:

createSyntaxTree().then((syntaxTree) => {
  console.log(syntaxTree.handlers.ruby.parse("foo"));
  // => (program (statements ((vcall (ident "foo")))))

  console.log(syntaxTree.handlers.ruby.format("1+1"));
  // => 1 + 1

  console.log(syntaxTree.handlers.haml.parse("= foo"));
  // => (root children=[(script text=" foo")])

  console.log(syntaxTree.handlers.haml.format("=  foo"));
  // => = foo
});

You can access all of the various Syntax Tree plugins except RBS.

TypeScript types are provided along with this package, and effectively boil down to:

type SyntaxTreeHandler = {
    format(source: string): string;
    parse(source: string): string;
    read(filepath: string): string;
};

type SyntaxTree = {
  handlers: Record<"bf" | "css" | "haml" | "json" | "ruby" | "xml", SyntaxTreeHandler>
};

function createSyntaxTree(): Promise<SyntaxTree>;

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/ruby-syntax-tree/node-syntax-tree.

License

The package is available as open source under the terms of the MIT License.

FAQs

Package last updated on 09 Aug 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc