Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/enkot/nuxt-app-config-plus
Create nested App Config using folder structure
https://github.com/enkot/nuxt-app-config-plus
Last synced: about 5 hours ago
JSON representation
Create nested App Config using folder structure
- Host: GitHub
- URL: https://github.com/enkot/nuxt-app-config-plus
- Owner: enkot
- License: mit
- Created: 2024-04-30T12:44:03.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-06-25T17:33:19.000Z (5 months ago)
- Last Synced: 2024-09-26T13:48:52.318Z (about 2 months ago)
- Language: TypeScript
- Homepage:
- Size: 483 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![Nuxt Configs](./public/cover.png)](https://nuxt-open-fetch.vercel.app/)
# Nuxt App Config Plus
[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![License][license-src]][license-href]
[![Nuxt][nuxt-src]][nuxt-href]Create nested App Config using a folder structure.
_This module will be helpful for large projects with a lot of configurations.
If you have small to medium project, 99% you will not benefit from the "config section per file" approach :)_- [✨ Release Notes](/CHANGELOG.md)
## Features
- 🗂 Generate App Config using a folder structure
- 🍹 No need for redundant index files and re-exports
- 📃 Supports `js`, `ts` and `json` files
- 🥞 Supports Nuxt layers![Nuxt Configs](./public/after.png)
## Quick Setup
Install the module to your Nuxt application with one command:
```bash
npx nuxi module add nuxt-app-config-plus
```That's it! You can now use Nuxt App Config Plus in your Nuxt app ✨
## Overview
The `nuxt-app-config-plus` module allows you to generate App Config based on a specified folder structure. It supports `js`, `ts`, and `json` files and is compatible with Nuxt layers.### Configs for Nitro handlers
In some cases, you may want certain configurations to be available only for the server hanlders (Nitro) and not included in the client-side bundle. This can be useful for configurations that are only relevant to the server environment.
#### Usage
To mark a config as server-side only, simply put it under `server` folder. The module will then only include this configuration to the Nitro App Config:
```bash
/app-config
/server
bar.ts
```In this example, the `bar.ts` file inside the `server` folder will only be included in the server-side Nitro config.
## Options
### `dir`
The dir option allows you to specify the directory that the module should scan for configuration files. By default, the module scans the `/app-config` directory in the root of your project.### `case`
By default, module uses the folder names as keys in the App Config object exactly as they are. This means that the keys are case-sensitive. For example, a folder named `MyFolder` would result in a key `MyFolder` in the configuration object.You can change this default behavior by setting `case` to `camelCase` or `kebabCase`, so the module will convert all folder names to camel case or kebab case respectively.
## Contribution
Local development
```bash
# Install dependencies
pnpm install
# Generate type stubs
pnpm dev:prepare
# Develop with the playground
pnpm dev
# Build the playground
pnpm dev:build
# Run ESLint
pnpm lint
# Run Vitest
pnpm test
pnpm test:watch
# Release new version
pnpm release
```## License
Made with 💚
Published under the [MIT License](./LICENCE).
[npm-version-src]: https://img.shields.io/npm/v/nuxt-app-config-plus/latest.svg?style=flat&colorA=020420&colorB=00DC82
[npm-version-href]: https://npmjs.com/package/nuxt-app-config-plus[npm-downloads-src]: https://img.shields.io/npm/dm/nuxt-app-config-plus.svg?style=flat&colorA=020420&colorB=00DC82
[npm-downloads-href]: https://npmjs.com/package/nuxt-app-config-plus[license-src]: https://img.shields.io/npm/l/nuxt-app-config-plus.svg?style=flat&colorA=020420&colorB=00DC82
[license-href]: https://npmjs.com/package/nuxt-app-config-plus[nuxt-src]: https://img.shields.io/badge/Nuxt-020420?logo=nuxt.js
[nuxt-href]: https://nuxt.com