@autolist/contentful
v0.1.15
Published
An ORM layer for Contentful
Downloads
66
Readme
Contentful Client
Installation
Using npm:
$ npm i --save @autolist/contentful
Using yarn:
$ yarn add @autolist/contentful
Usage:
import { Item, Params } from '@autolist/contentful`
import { createClient } from 'contentful'
class Article extends Item {
}
// You must register all classes with the parent class if you
// want to override behavior for specific content types,
// so that we can look them up later for association parsing.
// Otherwise, the default Item class will be used.
Item.classes['article'] = Article
class ArticleParams extends Params {
static fields = ['slug']
}
const params = new ArticleParams({
// Fields will be inferred and translated to contentful params
slug: 'our-slug',
// Skip is inferred from a combination of page and limit
page: 2,
limit: 10,
// 'en' locale is assumed to be shorthand for 'en-US'
locale: 'en',
// Relationship queries are too variable to reliably
// infer, so pass them in by hand
'fields.parentPage.sys.contentType.sys.id': 'page',
'fields.parentPage.fields.slug': 'news-and-analysis'
}, Article)
const client = createClient(myCredentials)
const contentfulResponse = await client.getEntries(paramsObject.toJSON())
const [article] = Article.load(contentfulResponse)
console.log(article.toJSON())
:hammer_and_wrench: Development
Install dependencies:
yarn
:robot: Testing
yarn:
yarn test
Building
yarn:
yarn build
Releasing
- Bump version in
package.json
npm publish
(Use npm and 2FA to publish until https://github.com/yarnpkg/yarn/issues/4904 is resolved)