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

wispy

v0.1.1

Published

Reversible alternative syntax for Javascript

Downloads

3

Readme

wispy

npm version

Reversible alternative syntax for Javascript.

What is a reversible transpiler?

Normally transpilers are one-way: A given Coffeescript renders Javascript deterministically, but the output Javascript cannot unambiguously be converted back into Coffeescript (much less the original Javascript). A reversible syntax is a deterministic syntactical transpiler. This allows editing in a new syntax while

wispy:

server.get((req, res) =>   
  fs.readFile('myfile', 'utf-8', (err, text) =>   
    if (err)   
      console.log('There was an error reading the file.')
      res.status(500).send(err)
    else   
      console.log('The contents of your file are: \n' + text)
      res.status(200).send(text)))

Javascript:

server.get((req, res) => {
  fs.readFile('myfile', 'utf-8', (err, text) => {
    if (err) {
      console.log('There was an error reading the file.')
      res.status(500).send(err)
    }
    else {
      console.log('The contents of your file are: \n' + text)
      res.status(200).send(text)
    }
  })
})

Install

$ npm install --save -g wispy

Usage

const wispy = require('wispy')

Philosophy

It is not difficult to find criticism in Javascript as a language. But as a platform it is both ubiquitous, versatile, and increasingly performant. Coding in a language like Coffeescript or PureScript that compiles to Javascript offers the benefit of a more expressive/elegant language while still being able to target the most widespread platform on the planet.

There are a few problems though.

  1. When you use an alternative language, you limit the number of people who can contribute to your project. It's not a Javascript project anymore, even though it outputs Javascript. It's a Coffeescript project, PureScript project, etc.

  2. You add a build step. This adds complexity and friction with developers' existing build systems.

  3. No matter how nice a language/workflow you have with your new, special language, you can only utilize it on your project. Any open source projects or team projects that are in Javascript force you back to the medieval age.

A reversible transpiler eliminates all these problems. It takes Javascript as input so it can be used on any open source project. It outputs Javascript so there is 0 friction with other people's Javascript tooling. It moves the language enhancements to the individual developer and seamlessly integrates with existing code

License

ISC © Raine Revere