Wir lieben Open Source.

Mit nützlichen kleinen Modulen leisten wir unseren Beitrag zu den aktuellsten technischen Standards. Sie werden über 24.373.806 mal monatlich heruntergeladen. Nur nicht schüchtern sein: Wir freuen uns sehr über jede Mithilfe.

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

updtr

updtr vereinfacht das Aktualisieren von Node-Modulen. Nach dem Update auf die jeweils aktuellste Version prüft updtr, ob die Tests weiterhin erfolgreich abgeschlossen werden. Ist dies nicht der Fall, wird das Update wieder zurückgesetzt.

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

Eine Verbindung zwischen Node.js und PhantomJS, welche direkt mit dem PhantomJS-Prozess kommuniziert und eine übersichtliche API bereitstellt.

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

Ein Node.js-Modul um Abhängigkeiten während des Testens zu ersetzen (dependency injection). Auch als Plugin für Webpack erhältlich.

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 Loader ermöglichen die einfache Verarbeitung von bestimmten Dateitypen während der Kompilierung. Wir haben unter anderem Loader für die bekannten Preprozessoren Sass und LESS entwickelt.

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

Das modulare Microframework - für echtzeitfähige JavaScript-Anwendungen. Unsere Peerigon App nutzt das universell einsetzbare Framework alamid server- und clientseitig.

GitHub |NPM

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

dynamise

Ein Amazon DynamoDB Client für Node.js, entwickelt für das Medizintechnologie-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

Ein universelles Modul um bessere Fehlermeldungen durch Metadaten zu erhalten.

GitHub |NPM

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

parse-domain

Klein aber sehr nützlich: dieses Modul teilt eine URL in Subdomain, Domain und Top-Level-Domain auf.

GitHub |NPM

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

xunit-file

Erweiterung für das JavaScript-Testframework Mocha, welche die Ausgabe von xUnit in eine Datei schreibt.

GitHub |NPM