@last-rev/contentful-fs-loader
TypeScript icon, indicating that this package has built-in type declarations

0.4.0 • Public • Published

Overview

This library exports a single default function which creates a set of data loaders and fetchers for loading contentful structured content from a file system.

Requirements

You must have a directory to which Contentful content has been synced. Please see the documentation for LastRev's cms-sync CLI which will generate this structure for you.

The directory should follow the following structure

dir
└── {contentful space id}
    └── { contentful environment name}
        └── { preview|production }
            ├── assets
            |   ├── {assetId}.json
            |   └── ...
            ├── entries
            |   ├── {entryId}.json
            |   └── ...
            ├── entry_ids_by_content_type
            |   ├── {entryId}
            |   └── ...
            └── content_types
                ├── {contentTypeId}.json
                └── ...

Usage

import createLoaders from '@last-rev/contentful-fs-loader';

async function () {
  const {
    entryLoader,
    assetLoader,
    entriesByContentTypeLoader,
    fetchAllContentTypes
  } = await createLoaders(
    './graphql/content' // root directory
    'saasdfgb34r8ffg7rtt', // contentful space ID
    'master', // contentful environment
    'preview' // one of 'preview' or 'production'
  );
}

entryLoader, assetLoader, and entriesByContentTypeLoader are all instances of dataloader. entryLoader and assetLoader are both keyed by contentful ID (string), and entriesByContentTypeLoader is keyed by a Contentful content type ID (string).

const myEntry = await entryLoader('my-content-id-1234');
const myAsset = await assetLoader('my-asset-id-5432');
const myEntries =  await entriesByContentTypeLoader('pageGeneral');

the other two functions, fetchAllPages and fetchAllContent are just convenience functions that return a list of all page content items (entries which have a slug field) and all content types.

/@last-rev/contentful-fs-loader/

    Package Sidebar

    Install

    npm i @last-rev/contentful-fs-loader

    Weekly Downloads

    378

    Version

    0.4.0

    License

    ISC

    Unpacked Size

    20.4 kB

    Total Files

    12

    Last publish

    Collaborators

    • maxtechera.lastrev
    • tharris
    • justinlastrev
    • jaimelastrev
    • bradtaylorsf