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

redscript

v0.1.0

Published

RedScript, a Ruby Flavored Superset Language

Downloads

20

Readme

RedScript

A Ruby flavored superset of JavaScript

RedScript was created to provide a better syntax for AMD modules and to provide a few aliases to make things a bit nicer to work with.

It was also created as a side project to learn more about Node, NPM Modules and Regular Expressions. In the future I would also like to add a lexer/parser to implement more advanced features (feel free to fork!).

I would also like to let JavaScript's prototype goodness shine through by adding conviences and syntax to make working with straight objects and prototypes easier than using faux classes and constructors.

  • Better syntax for AMD modules
  • Better object inheritence
  • Easier ES5 object litterals
  • Alias { } with do end
  • Alias is, isnt, and, or with ===, !==, &&, ||
  • Arrow function
  • More explicet object literals
  • Define object methods with def keyword

Once I have a solid parser/lexer, I would like to implement:

  • optional parens
  • no var declarations (e.g. coffeescript/ruby/python)
  • possibly optional type checking? not sure how useful it would be

NPM module coming soon!

A better AMD RequireJS syntax

# define an anonymous AMD module & require deps    // # define an anonymous AMD module & require deps
define module                                        define(
require 'jquery' as $                                ["jquery","./libs/toolbox","backbone"], function($,_,Backbone) {
require './libs/toolbox' as tb
require 'backbone' as Backbone                       

# do stuff                                           // do stuff

export {                                              return {
  methodName: funcName                                 methodName: funcName
  methodName: funcName                                 methodName: funcName 
}                                                     }       
                                                    });
# define an anonymous AMD module and require dependancies
define module
require 'jquery' as $
require './utils/toolbox' as tb

function sayHello () {
  $('body').html('Hello World!');
}

# Arrow function in a callback
fs.readFile('/etc/passwd', (err, data) ->
  if (err) throw err;
  console.log(data);
});

# Alias @ with this.
model.on('change', @render)
define module
require 'jquery' as $
require './myFile' as baz

# Func alias
func sayHello () {
  alert("Hi!");
}

# alias { } with do end
func sayHello(msg) do
  alert(msg);
end

# Private blocks
foo = 200
private
  foo = 10
end
alert foo  # alerts 200

# Arrow function, great for parameters
mbtn.on 'click', ->
  $('.widget').slideToggle "slow"
end

# Paren free if/for/while
while foo is 200 do
  console.log "I'm looping forever"
end

See more syntax examples on RedScript's website (coming soon)