We love Open Source

We contribute to the latest technical standards by creating small but useful modules. They are downloaded and used 24,373,806 times every month. Don't be shy – contributions are highly welcome.

$ npm install -g updtr
$ updtr
Found 7 updates, running tests now...

updtr

updtr simplifies updating Node modules. After updating a dependency to the latest version, updtr checks if the tests still succeed. If this is not the case, the changes will be rolled back.

GitHub |NPM

phridge.spawn({
    proxyAuth: "john:1234",
    loadImages: false,
    // passing CLI-style options
    "--remote-debugger-port": 8888
}).then(phantom => {
    // phantom is now a reference
    // to a specific PhantomJS process
});

phridge

A bridge between Node and PhantomJS which communicates directly with PhantomJS processes and provides a clean API.

GitHub |NPM

// test/myModule.test.js
const rewire = require("rewire");

const myModule = rewire("../lib/myModule.js");

myModule.__set__("path", "/dev/null");
myModule.__get__("path"); // = '/dev/null'

rewire

A Node.js module providing easy dependency injection for unit testing. Also available as a plugin for Webpack.

GitHub |NPM

const mainCss = ["css-loader", path.join(__dirname, "app", "main.css")];

if (process.env.NODE_ENV === "production") {
    mainCss.unshift("file-loader?name=[name].[ext]", "extract-loader");
} else {
    mainCss.unshift("style-loader");
}

module.exports = {
    entry: [
        path.join(__dirname, "app", "main.js"),
        mainCss.join("!")
    ], ...
};

Webpack Loader

Webpack loaders make it simple to process specific source files during build time. We developed loaders for popular preprocessors like Sass, LESS and more.

GitHub |NPM

const api = require("alamid-api"),
const router = api.router();

// attach your universal routes
router.get("/hello", (req, res, next) => {
    res.end("You can use me via ws and http!");
});

alamid

The modular microframework – for real-time JavaScript applications. Our Peerigon app uses the universal alamid framework on both server and client.

GitHub |NPM

client.status("TableOne")
    .then(res => {
        // do something with res
    })
    .catch(err => {
        // throws a ResourceNotFoundException
        // if table does not exist
    });

dynamise

An Amazon DynamoDB client for Node.js, developed for the medical technology startup Epha.ch.

GitHub |NPM

const erroz = require("erroz");

const DuplicateError = erroz({
    name: "Duplicate",
    code: "duplicate",
    statusCode: 409,
    template: "Resource %resource (%id) already exists"
});

throw new DuplicateError({
    resource: "Unicorn",
    id: 1
});

erroz

Universal module for descriptive error messages through metadata.

GitHub |NPM

const domain = "some.subdomain.example.co.uk";
expect(parseDomain(domain)).to.eql({
    subdomain: "some.subdomain",
    domain: "example",
    tld: "co.uk"
});

parse-domain

Small but very useful: This module splits an URL into subdomain, domain and top-level domain.

GitHub |NPM

// config.json
{
    "file" : "${cwd}/xunit.xml",
    "consoleOutput" : {
        "suite" : true,
        "test" : true,
        "fail" : false
    }
}

xunit-file

Extension for the JavaScript testing framework Mocha which writes the output of xUnit into a file.

GitHub |NPM