npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

hertzscript-compiler

v0.0.11

Published

Produces preemptible JavaScript coroutines which conform to the HertzScript specification.

Downloads

15

Readme

HertzScript Coroutine Compiler

NPM

The HertzScript compiler produces preemptible JavaScript coroutines which conform to the HertzScript specification.

The HertzScript Dispatcher can be used to execute the compiled code.

See the HertzScript Specification repository for more information.

Usage

There are two different ways to use this:

  1. Import the compiler module into your script.

or

  1. Invoke hzc or hzcompile via terminal.

Compiler Module

This module is the core HertzScript compilation pipeline, and transforms JavaScript functions into instruction streams; all functions within a HzScript program are GeneratorFunctions which yield instructions.

Exported as a single function, you can invoke it like so:

const hzCompile = require("hertzscript-compiler");
const sourceCode = "console.log('Hello World!')";
const compiledCode = hzCompile(sourceCode);

Return Value

The function returns a string which is the compiled JavaScript code.

Function Parameters

hzCompile( source [, module  = false [, standalone = false [, spawn = false ]]]);

source

  • The input JavaScript source code you would like to compile.

module (Optional)

  • If true then the compiled source code will be output as a HertzScript module. Defaults to false.

standalone (Optional)

  • If true then the compiled source code will be output as a self-running HertzScript module. Defaults to false.

spawn (Optional)

  • If true then the spawn keyword compiler will be used to detect and compile the spawn keyword. Defaults to false.

Command-Line Interface

The hzc command imports the compiler module and wraps it in a simple command-line interface.

You can invoke the interface script like so, shown here with the spawn compiler enabled and the ouput code wrapped in --standalone mode:

echo "spawn console.log('Hello World!')" | hzc --spawn -s

You can also supply input and output paths with the -i and -o parameters:

hzc -i path/to/my/script.js -o path/to/my/output.hz.js

Command-Line Options

-s (--standalone)

  • If set, then the compiled source code will be output as a self-running HertzScript module

-i path (--input)

  • This option supplies the text from the given filepath as the input JavaScript source code you would like to compile. If this option is set to nothing, or is not set at all, then the source code is consumed via the standard input of the terminal.

-o path (--output)

  • This option specifies a filepath which the compiled source code will be saved to. If this option is set to nothing, or is not set at all, then the source code is returned via standard output into the terminal.

-m (--module)

  • If set, then the compiled source code will be output as a HertzScript module.

--spawn

  • If set, then the spawn keyword compiler will be used to detect and compile the spawn keyword.