Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/meta-mo/contentful-config
Fetching JSON from Contentful to use the same configs across multiple projects and repositories.
https://github.com/meta-mo/contentful-config
contentful environment-variables
Last synced: 11 days ago
JSON representation
Fetching JSON from Contentful to use the same configs across multiple projects and repositories.
- Host: GitHub
- URL: https://github.com/meta-mo/contentful-config
- Owner: meta-mo
- License: mit
- Archived: true
- Created: 2020-05-05T07:56:36.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-05-13T08:06:16.000Z (over 4 years ago)
- Last Synced: 2024-10-18T09:04:06.405Z (4 months ago)
- Topics: contentful, environment-variables
- Language: JavaScript
- Homepage:
- Size: 34.2 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# contentful-config
Fetching JSON from Contentful to use the same configs across multiple projects and repositories.
## Installation
Install using npm as devDependency.
```bash
$ npm install contentful-config --save-dev
```Add a command to the scripts of package.json.
```json
"scripts": {
"serve": "npm run config"
"config": "contentful-config"
},
```## Configuration
### .env
Environment variables are automatically loaded by creating .env in the same directory as package.json.
You can also use an existing environment variable without using .env.```env
CONTENTFUL_SPACE_ID=up61khjnndzm
CONTENTFUL_ACCESS_TOKEN=FeBoFnhmElUGRC76v-2T6DxOHhhhhg9FyiwWVxVs148
CONTENTFUL_CONFIG_ENV=local
```You can also apply parameters when command execution without creating .env.
### .cntconfigrc.json
Create a file as **.cntconfigrc.json** as in the following code:
```json
{
"local": {
"dir": "./configs",
"models": [
{
"name": "env",
"options": {
"order": "fields.type",
"fields.type": "local"
},
"specificField": "json",
"firstOnly": true,
"filterUseFields": [
"contentful.endpoint"
]
},
{
"name": "resources",
"options": {
"order": "fields.type"
}
}
]
},
"dev": {
"dir": "./configs",
"models": [
{
"name": "env",
"options": {
"order": "fields.type",
"fields.type": "dev"
},
"specificField": "json",
"firstOnly": true
}
]
}
}```
| Parameter | Description | Default |
| ---- | ---- | ---- | --- |
| * | The environment specified by the command execution or environment variable is selected. | '' |
| *.dir | Destination of the config file. | '' |
| *.models | Contentful models objects. | |
| *.models.name | Output Contentful model name. This model name will be the file name. | |
| *.models.options | See search-parameters in Contentful's getEntries. https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/search-parameters/links-to-asset | {} |
| *.models.specificField | Specify this if you want data only for fields in the model. | '' |
| *.models.firstOnly | Fetch only a single from an array. (it becomes an object type) | false |
| *.models.filterUseFields | Fetch only the specified parameters from the objects in the array after specificField parameter. | undefind |### .gitignore
Add the destination directory of the config file to .gitignore.
```env
configs/
```## Usage
Execute the following command in the same directory as the configuration file.
### Execute with environment variables
```bash
$ npm run config
```### Execute without environment variables
```bash
$ npm run config -- dev --spaceId up61khjnndzm --accessToken FeBoFnhmElUGRC76v-2T6DxOHhhhhg9FyiwWVxVs148
```## Development Status
See tasks on [Github Projects](https://github.com/meta-mo/contentful-config/projects/1)
## Tests
1. Create a model and data for Contentful with reference to /tests/.cntconfigrc.json.
2. Create .env file insted of your Contentful's space id and access token in /tests/.
3. Run following command in / `npm install && npm run test`## License
[MIT](LICENSE)