1.1.2 • Published 3 years ago

atonal v1.1.2

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

Atonal Framework

The most straight-forward Fastify-based web framework

Usage example

import { transform, Type, useAtonal, useRouter } from 'atonal'

const atonal = useAtonal()

const router = useRouter()
const userRouter = useRouter()
const postRouter = useRouter()

postRouter.get('/', {
  schema: {
    params: Type.Object({
      userId: Type.Optional(Type.String({ format: 'integer' })),
    }),
  },
  handler: async req => {
    const { userId } = transform(req.params, { userId: Number })
    return { userId }
  },
})

userRouter.get('/', {
  schema: {
    querystring: Type.Object({
      limit: Type.Optional(Type.String({ format: 'integer' })),
      skip: Type.Optional(Type.String({ format: 'integer' })),
    }),
  },
  handler: async req => {
    const { limit = 20, skip = 0 } = transform(req.query, {
      limit: Number,
      skip: Number,
    })

    return { limit, skip }
  },
})

userRouter.get('/:userId', {
  schema: {
    params: Type.Object({
      userId: Type.String({ format: 'integer' }),
    }),
  },
  handler: async req => {
    const { userId } = transform(req.params, { userId: Number })
    return { userId }
  },
})

userRouter.use('/:userId/posts', postRouter)

router.use('/users', userRouter)
router.use('/posts', postRouter)

atonal.use(router.compile(), { prefix: '/api' })
atonal.listen(3000, '0.0.0.0', err => {
  if (err) {
    console.error(err)
  } else {
    console.log('Hello world!')
  }
})
1.1.2

3 years ago

1.1.0

3 years ago

1.0.42

3 years ago

1.0.41

3 years ago

1.0.40

3 years ago

1.0.38

3 years ago

1.0.37

3 years ago

1.0.36

3 years ago

1.0.35

3 years ago

1.0.34

3 years ago

1.0.33

3 years ago

1.0.32

3 years ago

1.0.31

3 years ago

1.0.30

3 years ago

1.0.29

3 years ago

1.0.28

3 years ago

1.0.27

3 years ago

1.0.26

3 years ago

1.0.25

3 years ago

1.0.24

4 years ago

1.0.23

4 years ago

1.0.22

4 years ago

1.0.21

4 years ago

1.0.20

4 years ago

1.0.19

4 years ago

1.0.18

4 years ago

1.0.17

4 years ago

1.0.16

4 years ago

1.0.15

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago