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

orgy

v2.2.1

Published

Async file and script loader that works both in the browser and in nodejs / io.js.

Downloads

45

Readme

Orgy

Build Status Dependency Status NPM version

Promises library that supports queues of file requests.

  • Requires nodejs > 4.0.0.

For nodejs versions 0.0.10 - 0.0.12:

npm install [email protected]

Documentation:

View the API reference here.

Installation:

  • Nodejs
npm install orgy
  • Browser (attached to window object)
<script src="/dist/orgy.min.js"></script>
<script>
var def = Orgy.deferred();
...
</script>
  • Browser (via browserify)
<script src="/dist/orgy.bundle.min.js"></script>
<script>
var Orgy = require("orgy");
var def = Orgy.deferred();
...
</script>

Example:

  • Fetch a group of resources asynchronously, then return manipulated results down the chain.
const Orgy = require("orgy");

const q = Orgy.queue([
  {
    type : "json",
    url : "data/data1.json"
  },
  {
    type : "json",
    url : "data/data2.json"
  },
  {
    type : "css",
    url : "data/sample.css"
  }
],{
  //Set an id for the queue, so can reference it in other contexts (optional).
  id : "q1" 
});

//Done can be called async and out of order.
q.done(function(r,deferred,last){
  console.log(last); // 2
});

// If a then function returns a value, that value is passed down to any
// subsequent then() or done() functions.
q.then(function(r){
  console.log(r); //Dependency values.
  return 1;
});

q.then(function(r,deferred,last){
  console.log(last); // 1
  return 2;
});
// To reference the queue above outside of the local scope:
const Orgy = require("orgy");
const q = Orgy.get("q1");

Features:

  • Browser and nodej / iojs compatible.

  • Handles a variety of dependency types and automatically converts them into promises.

    • javascript files
    • css files
    • timers
    • all other file types handled as text
  • Queues can be held back from settling after their dependencies have resolved by a resolver method.

  • When then() returns a value that value is passed down the execution chain.

  • When then() returns an unsettled instance (deferred/queue), further execution on the callback chain is halted until that instance resolves. The deferred is then passed to the next tick of the callback chain, where its return value can be accessed.

Running tests:

grunt t

Todo:

  • Add optional retry configuration setting when remote requests rejected due non 200 HTTP response?
  • Extend deferred, queue from native ES6 promises

More examples:

Here.