A contentful.js wrapper that adds simple functions to handle queries and optionally parses data before resolving promises.
See contentful.js for more information as that package represents the base of this one.
Include the package locally in your repository.
npm install contentpull --save
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
});
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.
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
).
MIT