Nightly Perpetrated Mischief

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

    0.5.2 • 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.

    Keywords

    none

    Install

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

    DownloadsWeekly Downloads

    595

    Version

    0.5.2

    License

    ISC

    Unpacked Size

    46.8 kB

    Total Files

    21

    Last publish

    Collaborators

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