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

This branch is 1 commit ahead of main.

Folders and files

NameName
Last commit message
Last commit date
Jan 29, 2024
Jan 11, 2024
Jan 11, 2024
Sep 20, 2022
Jan 11, 2024
Jan 11, 2024
Sep 20, 2022
Jan 11, 2024
Jan 11, 2024
Jan 11, 2024
Apr 29, 2024
Sep 20, 2022
Sep 20, 2022
Jan 11, 2024

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