Skip to content

A simple utility to deep merge objects that extends h3 body and query parameters passed.

License

Notifications You must be signed in to change notification settings

cpreston321/h3-defu

Repository files navigation

h3-defu

npm version npm downloads Github Actions Codecov

JSON Defaults for h3, using defu under the hood.

Install

# Using npm
npm install h3-defu

# Using yarn
yarn install h3-defu

# Using pnpm
pnpm install h3-defu

Usage

import { createServer } from 'node:http'
import { createApp, eventHandler, toNodeListener } from 'h3'
import { getQueryWithDefaults, readBodyWithDefaults } from 'h3-defu'

const app = createApp()

app.use('/api/test', eventHandler(async (event) => {
  // Default body
  // example BODY: { show: false }
  // expected: { show: false, name: 'Anonymous' }
  const body = await readBodyWithDefaults(event, {
    show: true,
    name: 'Anonymous'
  })

  // Default query
  // example: /api/test?page=2
  // expected: { page: 1, limit: 10 }
  const query = getQueryWithDefaults(event, {
    page: 1,
    limit: 10
  })

  return {
    body,
    query
  }
}))

createServer(toNodeListener(app)).listen(process.env.PORT || 3000)

Development 💻

  • Clone this repository
  • Install dependencies using pnpm install
  • Run interactive tests using pnpm dev

➕ Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Credits

h3 is developed by @unjs

defu is developed by @unjs

README Inspiration by @zernonia

📜 License

MIT License © 2022 cpreston321

📧 Contact

cpreston321 - @cpreston321

Also, if you like my work, please feel free to buy me a coffee ☕️

Logo

About

A simple utility to deep merge objects that extends h3 body and query parameters passed.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published