/fastly

Fastly API client for Node.js

Primary LanguageJavaScriptMIT LicenseMIT

A Fastly API client for Node.js

Build Status

Installation

This repo is a fork of the one currently installed in NPM, so you'll need to to install it from the tagged tarball,

npm install https://github.com/commuterjoy/fastly/archive/v2.3.0.tar.gz

Basic Use

A simple use of the API looks like this,

var fastly = require('fastly')('your-api-key', 'your-service-id', { verbose: false });

fastly
    .getVersions()
    .then(function (res) {
        var lastVersion = JSON.parse(res).pop().number;
        console.log('Latest version number is ' + lastVersion);
    })
    .catch(function (err) {
        throw new Error(err);
    })

The API is promise-based, so methods can be chained together like so,

var fastly = require('fastly')('your-api-key', 'your-service-id', { verbose: false });
var Q = require('q');
var version;

fastly
    .getVersions()
    .then(function (res) {
        // extract a version number
        version = JSON.parse(res).pop().number;
        return fastly.request('GET', '/service/'+service+'/version/'+version+'/vcl');
    })
    .then(function (res) {
        return Q.all(
            JSON.parse(res).map(function (vcl) {
                return fastly.request('GET', '/service/'+service+'/version/'+version+'/vcl/'+vcl.name);
            })
        )
    })
    .then(function (res) {
        // the VCLs
    })
    .catch(function (err) {
        throw new Error(err);
    })

Note in the above example you can control the verbosity of the fastly library by passing { verbose: false } as the last argument to the constructor.

Testing

npm test