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:
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
andparams
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.