Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including contentpull with all npm packages installed. Try it out:

var contentpull = require("contentpull")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

contentpull v3.0.0

A contentful.js wrapper that adds simply sugar functions and the ability to parse responses.

Contentpull

A contentful.js wrapper that adds simple functions to handle queries and optionally parses data before resolving promises.

Status

npm Travis codecov Dependency Status devDependency Status js-standard-style npm pull requests

Reference

See contentful.js for more information as that package represents the base of this one.

Installation

Include the package locally in your repository.

npm install contentpull --save

Basic Usage

To see an interactive guide, visit our tonic notebook.

The puller registers a client for communicating with the server. First create an instance of the puller with the following:

// The class
var Contentpull = require('contentpull');

// This is your space id (provided by contentful)
var spaceid = 'space-id';

// This is the access token (provided by contentful)
var accessToken = 'abcdefg1234567';

// If preview is true, contentful will run in preview mode
var isPreview = false;

// built-in parsers exist, but you can override any of them
var parsers = {
    // choose the content type parser you want to override
    Array: function (arr, parser) {
        // edit the passed object directy
        delete arr.sys;
        arr.items.map(item => parser(item));
    }
};

// The instance of the puller
var puller = new Contentpull(spaceid, accessToken, {
    preview: isPreview,
    parsers: parsers
});

Writing plugins

You can create your own plugins using the static .use function.

All of the following examples are valid for writing extensions to be used in Contentpull


// the augmentation
function getEntriesByContentType() {
    this.getEntriesByType.apply(this, arguments);
}

/*

Each example allows the following to work:

puller.getEntriesByContentType('books');

*/

/**
 * {String} name - The function name.
 * {function} fn - The function reference.
 */
Contentpull.use('getEntriesByContentType', getEntriesByContentType);

/**
 * {function} fn - The function reference (must be named).
 */
Contentpull.use(getEntriesByContentType)

/**
 * {Object} args - The arguments.
 * {String} args.name - The function name.
 * {function} args.fn - The function reference.
 */
Contentpull.use({
    name: 'getEntriesByContentType',
    fn: getEntriesByContentType
});

Please take a look at our example contentpull-backup.

Additional Help

If you are viewing this README online, refer to our wiki.

If you have cloned or downloaded this repo, please refer to the generated ESDOC articles (npm run doc).

LICENSE

MIT

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free