0.4.1 • Published 7 months ago

flash-wolves v0.4.1

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

flash-wolves⚡️

Abbreviation FW (LOL Flash Wolves)

A very simple Node Web framework

  • ⚡️ Fast Start
  • 😊 very simple
  • 🌟 support Decorators
  • 🔑 Fully Typed APIs
  • 📦 Optimized Build

Language

Quick Start

Installing Dependencies

npm install flash-wolves
# or
pnpm add flash-wolves
# or
yarn add flash-wolves

Usage

index.js

const { App } = require('flash-wolves')
const app = new App()

app.get('/hello/world', (req, res) => {
    console.log(req.query)
    res.success()
})

app.listen(3000)

Run

node index.js

Advanced Usage

Router

Using Router makes it easier to write routes modularly

const { App, Router } = require('flash-wolves')
const app = new App()

// Router without public prefix
const user = new Router()

// GET /user/login
user.get('/user/login',(req,res)=>{
    res.success()
})

// Router with public prefix
const task = new Router('task')

// GET /task/list
task.get('/list',(req,res)=>{
    res.success()
})

app.addRouter([user,task])

app.get('/',(req,res)=>{
    res.json(app.getRoutes())
})
app.listen(3000)

Decorator

Here the direct use of typescript

Using decorators is a much clearer structure of the code

index.ts

import { FWRequest, FWResponse, Get, RouterController, App, ReqQuery, ReqParams } from 'flash-wolves'

const app = new App()

@RouterController()
class User {

    @Get('/user/login')
    login(req: FWRequest, res: FWResponse) {
        res.success()
    }
    
    @Get('info/:id', { power: 'ok' })
    getUserInfo(@ReqParams() params, @ReqParams('id') id:string) {
      console.log(params,id)
      return params
    }

    check(@ReqQuery() query, @ReqQuery('search') search:string){
      console.log(query, search)
      return query
    }

    @Post('login')
    login(@ReqBody() body) {
      console.log(body)
      return body
    }
}

app.addController(User)
// support array
// app.addController([User,Task])
// or 
// if constructor have some params
// app.addController(new User(...params))

app.listen(3000)
  • ts-node usage documentation
  • esno usage documentation
  • tsup usage documentation
esno index.ts

# or
ts-node index.ts

# or 
npx tsup index.ts
node dist/index.js

More Example

see packages/examples

see node-server get the template project

Planning

  • All basic operations of Router are plugged into the decorator
  • Direct return content
  • auto load .env files
  • Template project
  • Add res.xxx methods (like res.html(str)) 'res.plain' supports the return of text
  • Improve the usage documentation (VitePress)
  • Support static sources
  • Auto API
  • . Stay tuned!
0.4.1

7 months ago

0.4.0

10 months ago

0.2.3-beta.0

2 years ago

0.2.3-beta.1

2 years ago

0.3.0-beta.2

2 years ago

0.3.0-beta.3

2 years ago

0.3.0

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago

0.2.2-beta.0

2 years ago

0.2.1-beta.0

2 years ago

0.2.1-beta.1

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.2.2

2 years ago

0.1.0

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago