Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Feb 21, 2015
  1. @lawnsea

    Use correct option when checking dupe instances

    lawnsea authored
    Previously, the code looked at `options.port`, which isn't a thing. So, the port
    was always the string `'undefined'`. Instead, look at `options.child.port`.
    [fix #124]
    [close #136]
  2. @vinayr @lawnsea

    handle non-ascii payload

    vinayr authored lawnsea committed
    Calculate `Content-Length` from the number of bytes in the payload, not from the
    length of the corresponding string representation.
    [fix #110]
    [close #125]
Commits on Oct 22, 2014
  1. @ChrisAntaki

    Catching carriage returns

    ChrisAntaki authored
Commits on Oct 8, 2013
  1. @lawnsea

    Fix or override jshint gripes

    lawnsea authored
Commits on Sep 27, 2013
  1. @lawnsea

    Play nice with Casper > v1.0.2

    lawnsea authored
    - Call patchRequire for Casper > v1.0.2
    - Fix hello example to work with recent Caspers
    - Fix tests to work with old and new casper require
    Thanks to @rumca and @ucarbehlul for helping me run this one down.
    close #73
    close #75
  2. @lawnsea

    Use a spec-compliant polyfill for bind

    lawnsea authored
    Casper's prototype was not compliant (see n1k0/casperjs#631). While this is
    fixed in Casper latest, it's an issue in older versions.
    So, use mozilla's polyfill.
Commits on Sep 21, 2013
  1. @lawnsea

    Add support for child.spawnOptions

    lawnsea authored
    Add a `spawnOptions` key to `options.child` that will be passed as the `options`
    argument of `child_process.spawn` when creating a spooky instance. The default
    is the empty object.
    Note that setting `options.child.spawnOptions.env` will pass those variables
    *instead* of the environment of the node process. It is recommended to make sure
    that `PATH` and friends are passed.
    close #72
Commits on Sep 20, 2013
  1. @lawnsea

    Serialize function values in casper options

    lawnsea authored
    Serialize function and function tuple values in `options.casper` recursively.
    NOTE: `bootstrap/casper` only deserializes functions starting with 'on' and
    those that are children of `httpStatusHandlers`.
    close #52
Commits on Sep 19, 2013
  1. @lawnsea

    implement withFrame, withPopup, and waitForPopup

    lawnsea authored
    Thanks to @asciidisco for the original idea to get this done
    close #30
Commits on Jul 5, 2013
Commits on Jul 4, 2013
  1. @kpdecker

    Allow casper restart in stdio server

    kpdecker authored
    Always run the server event loop while casper is not running. This hacks
    around the blocking behavior of the phantom readLine implementation.
Commits on Jun 8, 2013
  1. @lawnsea

    Inherit Spooky from EventEmitter correctly

    lawnsea authored
    Previously, the constructor did not pass new instances through EventEmitter, so
    all Spooky instances shared the same EventEmitter instance state. Instead, use
    util.inherits and call EventEmitter when constructing Spooky instances.
    Thanks to @tomchentw for figuring this one out.
    Close #51, #60
Commits on May 6, 2013
  1. @lawnsea

    Move emit to module and provide console methods

    lawnsea authored
    `lib/bootstrap/emit` now provides `emit(<event>, params...)` and
    `console.log(what...)` and friends. For now, `console` methods with a level
    other than `log` prepend their level to the message. So:
    var console = require(options.spooky_lib + 'lib/bootstrap/emit').console;
    console.log('hey', 'yo'); // -> emit('console', 'hey yo');
    console.debug('hey', 'yo'); // -> emit('console', 'debug hey yo');
    close #45
  2. @lawnsea
  3. @lawnsea

    Refactor FilteredStream to be a readable-stream.Transform

    lawnsea authored
    Accept npm's format for package.json so --save is less disruptive in the future.
Commits on May 5, 2013
  1. @lawnsea

    Throw on invalid JSON input to http/stdio server

    lawnsea authored
    Include offending line in the error message
    Close #46
  2. @lawnsea

    Use system.stdin instead of /dev/stdin

    lawnsea authored
    Remove buffering logic
    close #42
  3. @lawnsea
  4. @lawnsea
  5. @lawnsea

    Hook phantom.onError in the bootstrap script

    lawnsea authored
    If an unhandled error occurs, the bootstrap script emits an error event and
    exits with a non-zero exit code. Partial progress toward #4.
Commits on Apr 22, 2013
  1. @andresgottlieb @lawnsea

    Add thenClick method

    andresgottlieb authored lawnsea committed
    close #41
Commits on Jan 25, 2013
  1. @lawnsea

    Don't try to poll stdio again on `run.complete` (fixes #28)

    lawnsea authored
    In a misguided effort to allow a single spooky bootstrap instance service
    multiple sessions, we reentered the polling loop in the stdio server.
    Unfortunately, we did this on the `run.complete` event, which can fire multiple
    times, if a script calls `start` and then `run` more than once. When the first
    of these fired, the stdio server set a timeout to reenter the loop, which
    promptly blocked waiting for stdin data that may never come.
    We now do not attempt to poll stdin again after the initial run.
Commits on Jan 21, 2013
  1. @lawnsea

    Reference bootstrap and spooky_lib relatively

    lawnsea authored
    Fix example script to work from npm install or cloned repo.
    Thanks to @DelvarWorld for the suggestion in #16.
  2. @lawnsea
Commits on Nov 9, 2012
  1. @DelvarWorld
Commits on Sep 24, 2012
  1. @lawnsea
  2. @lawnsea

    Fix requires so that the lib/* modules work

    lawnsea authored
    Also moved console event listener closer to child spawn point.
  3. @lawnsea

    Implement stdio transport (fix #9)

    lawnsea authored
    By default, Spooky will now use the child's stdin/out as transport for RPCs. Set
    options.child.transport to 'http' to use HTTP transport instead. HTTP transport
    is probably going to be deprecated, however, as it was always a workaround for
    stdin being buffered.
    Specify the transport when running the tests with the TEST_TRANSPORT variable.
    The default is 'stdio'.
Commits on Sep 20, 2012
  1. @lawnsea
Commits on Sep 18, 2012
  1. @lawnsea

    Recurse into config child objects (fix #2)

    lawnsea authored
    The Spooky constructor will now recurse into direct children of the config
    object and apply any defaults. So, if passed { foo: { bar: 'applesauce' } } and
    the default config is { foo: { baz: 'monkeys' } }, then the applied config is:
        foo: {
            bar: 'applesauce',
            baz: 'monkeys'
Commits on Sep 16, 2012
  1. @lawnsea
  2. @lawnsea

    Upgrade to tiny-jsonrpc 0.2

    lawnsea authored
Commits on Aug 30, 2012
  1. @lawnsea

    Break bootstrap script into modules (fixes #6)

    lawnsea authored
    The modules live in `lib/bootstrap`.
  2. @lawnsea

    Clean up _onCreate logic

    lawnsea authored
Commits on Aug 28, 2012
  1. @lawnsea

    Fix #1: Add example and use npm-friendly defaults

    lawnsea authored
    There is now a minimal example in `examples/hello.js`. Run it from the
    repo root with:
        node examples/hello.js
    The child config now defaults to one that will work with an npm install,
    rather than one that works in our repo.
Something went wrong with that request. Please try again.