Skip to content

Strapi Content Source ​

The strapiSource content source is used to fetch data from Strapi CMS. It supports both Strapi v3 and v4, with automatic pagination and customizable query parameters.

Usage ​

To use the strapiSource content source, include it in the list of content sources in your configuration:

typescript
import { strapiSource } from '@bluecadet/launchpad-content';

export default defineConfig({
  content: {
    sources: [
      strapiSource({
        id: 'myStrapiSource',
        version: '4',
        baseUrl: 'http://localhost:1337',
        identifier: 'admin@example.com',
        password: 'your-password',
        queries: ['api/articles', 'api/categories']
      })
    ]
  }  
});

Options ​

id ​

  • Type: string
  • Required

Specifies the unique identifier for this source. This will be used as the download path.

version ​

  • Type: "3" | "4"
  • Default: "3"

Specifies the Strapi version. Supports either version 3 or 4.

baseUrl ​

  • Type: string
  • Required

The base URL of your Strapi CMS (with or without trailing slash).

queries ​

  • Type: (string | { contentType: string, params: Record<string, any> })[]
  • Required

Queries for each type of content you want to fetch. You can specify either:

  • A string URL path (e.g. "api/articles")
  • An object with contentType and params for more control over the query parameters

identifier ​

  • Type: string
  • Required if token not provided

Username or email for authentication. Should be configured via environment variables.

password ​

  • Type: string
  • Required if token not provided

Password for authentication. Should be configured via environment variables.

token ​

  • Type: string
  • Required if identifier/password not provided

A previously generated JWT token for authentication.

limit ​

  • Type: number
  • Default: 100

Maximum number of entries to fetch per page.

maxNumPages ​

  • Type: number
  • Default: 1000

Maximum number of pages to fetch.

pageNumZeroPad ​

  • Type: number
  • Default: 2

Number of zeros to pad each JSON filename index with.

Released under the MIT License.