Skip to content

fossabot/fourze

 
 

Repository files navigation

Fourze

Api route framework for the browser and node.js.

pnpm add @fourze/core

create a router file src/mock/example.ts

import { defineRouter } from "@fourze/core";
export default defineRouter(router => {
  router.get("/hello", () => {
    return "hello,world";
  });
});

configure vite config

pnpm add @fourze/vite

import fourze from "@fourze/vite";
export default defineConfig({
  plugins: [
    fourze({
      base: "/api"
    })
  ],
});

then you can fetch /api/hello to get response.

Features

FOSSA Status

  • Simple api route register

  • Mock XHR/fetch/http.request response

  • Run in express / nitro or ... as a middleware

  • Node.js and browser support

Development

pnpm install
pnpm build
pnpm play:vite

Nuxt

pnpm add @fourze/nuxt

nuxt.config.ts

export default defineNuxtConfig({
  modules: ["@fourze/nuxt"],
  fourze: {
    base: "/api"
  }
});

Node.js Server

pnpm add @fourze/server

import { defineRouter } from "@fourze/core";
import { createServer } from "@fourze/server";

const server = createServer({
  base: "/api"
});
server.use(defineRouter(router => {
  router.get("/hello", (_, res) => {
    res.send("hello,world");
  });
}));
server.listen(7609);

Middleware Mode

import express from "express";
import { createServer } from "@fourze/server";
const middleware = createServer({
  base: "/api"
});
const app = express();
app.use(middleware);
app.listen(7609);

Register Router

src/mock/example.ts

import { defineRouter } from "@fourze/core";
export default defineRouter(router => {
  // base = '/api'
  router.post("/user/{id}", (req) => {
    return {
      id: req.params.id,
      name: "test"
    };
  });
});

Set base to /api in vite/nuxt config, then you can fetch /api/user/1 to get response.

Request

POST /api/user/1

Response

{"id":"1","name":"test"}

Thanks

This project is heavily inspired by the following awesome projects.

License

FOSSA Status

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 92.6%
  • Vue 6.4%
  • Other 1.0%