UNPKG

@flotiq/flotiq-astro-sdk

Version:

Astro collection generator for connecting with Flotiq CMS

101 lines (75 loc) 3.41 kB
# Flotiq ASTRO SDK Dedicated Astro collections generator for [Flotiq Headless CMS](https://flotiq.com/). Generated `content.config.ts` collections can be either committed with your code, or `.gitignore`-d and generated during development and CI/CD. **The project is not production-ready!** Versioning may reset, features and api may be changed, project may be removed. Do not use for anything other than playing around. See [State of Alpha](#state-of-alpha) section for more details of what might change before v1. To use collections you need `@flotiq/flotiq-api-sdk` and types generated by it. ## Installation from npm 1. run `npm install @flotiq/flotiq-api-sdk @flotiq/flotiq-astro-sdk` 2. (optional) Generate typescript types for your data definitions 1. Create `.env` file and add `FLOTIQ_API_KEY` env variable inside 2. Run `npm exec flotiq-api-typegen` to generate account type definitions 3. RUN `npm exec flotiq-astro-typegen` to generate collections ## Installation from yarn 1. run `yarn add @flotiq/flotiq-api-sdk @flotiq/flotiq-astro-sdk` 2. (optional) Generate typescript types for your data definitions 1. Create `.env` file and add `FLOTIQ_API_KEY` env variable inside 2. Run `yarn exec flotiq-api-typegen` to generate account type definitions 3. RUN `yarn exec flotiq-astro-typegen` to generate collections ## Installation from pnpm 1. run `pnpm add @flotiq/flotiq-api-sdk @flotiq/flotiq-astro-sdk` 2. (optional) Generate typescript types for your data definitions 1. Create `.env` file and add `FLOTIQ_API_KEY` env variable inside 2. Run `pnpm exec flotiq-api-typegen` to generate account type definitions 3. RUN `pnpm exec flotiq-astro-typegen` to generate collections ## Usage example Project with tags: ``` --- import { getCollection, getEntry } from 'astro:content'; const allProjects = await getCollection('project'); --- <html lang="en"> <head> <meta charset="utf-8" /> <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> <meta name="viewport" content="width=device-width" /> <meta name="generator" content={Astro.generator} /> <title>Astro</title> </head> <body> <h1>Astro</h1> {allProjects.map((project) => ( <section> <h2>{project.data.name}</h2> {project.data.tags.map(async (tag) => { const tagContent = await getEntry(tag.collection, tag.id); return (<span>{tagContent.data.name}</span>) })} </section> ))} </body> </html> ``` [comment]: # (flotiq-astro-typegen section) ## `flotiq-astro-typegen` flotiq-astro-typegen Generates Astro collections for Flotiq API based on the content type definitions on your account ### Options | Option | Description | Default | | ------ | ----------- | ------- | | `--flotiq-key` | Flotiq API key with read only access | | | `--flotiq-api-url` | Url to the Flotiq API | `https://api.flotiq.com` | | `--output` | Path to target filename | `./src/content.config.ts` | | `--watch` | Watch for changes in the content type definitions and regenerate collections | `false` | [comment]: # (flotiq-astro-typegen section end) ## Development See [CONTRIBUTING.md](./CONTRIBUTING.md) ## State of Alpha Features that might appear in the future (not necessarily before v1): - [x] basic collections with references - [ ] correct enums for selects - [ ] filters - [ ] draft - [ ] easy access to images - [ ] more usage examples - [ ] slug as id