0.1.9 • Published 7 months ago

@rster/builder v0.1.9

Weekly downloads
-
License
BSD-3-Clause
Repository
github
Last release
7 months ago

Github Shield NPM Shield Documentation TypeDoc

Build Status Contributors Forks Stargazers Issues BSD-3-Clause NPM Downloads Coverage

Table of Contents

About The Project

@rster/builder is a package of the @rster project. It is build on top of the basic rster api to make the definition of your api easier. It does type-checking for you. This is better for security reasons and you will save a lot of time and effort. Find tutorials and documentation on the rster website. The package is available on npm.

rster repository · rster package on npm · rster documentation

A demo of the builder

import { api, module, method } from "@rster/builder";
import { undefinedType, string, array, object, number } from "@rster/types";
import "@rster/worker-express";
import express from "express";

const users: {
  name: string;
  age: number;
}[] = [];

const API = api(
  "api",
  ["a simple demo api"],
  {
    users: module(
      "users",
      ["module to handle users"],
      {},
      {
        create: method(
          "create",
          ["create a user"],
          {
            expectBody: {
              name: { required: true, type: string() },
              age: { required: true, type: number() },
            },
            returns: undefinedType(),
          },
          "/users",
          "post",
          ({ age, name }) => {
            users.push({ age, name });
          }
        ),

        list: method(
          "list",
          ["list users"],
          {
            returns: array(
              object({
                name: { type: string(), required: true },
                age: { type: number(), required: true },
              })
            ),
          },
          "/users",
          "get",
          () => users
        ),
      }
    ),
  },
  {}
);

const rster = API.rest();

const app = express();
app.use(rster.express());

app.listen(3000, () => {
  console.log("listening on port 3000");
});

More examples on the rster website

Built With

typescript nodejs npm eslint jest turbo changesets

Contributing

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

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  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

License

Distributed under the BSD-3-Clause License. See LICENSE for more information.

Contact

twitter github

Project Link: https://github.com/nsc-de/rster/tree/master/packages/authorization

GitHub

0.1.9

7 months ago

0.1.8

8 months ago

0.1.7

8 months ago

0.1.6

8 months ago

0.1.5

8 months ago

0.1.4

8 months ago

0.1.3

8 months ago

0.1.2

8 months ago

0.1.1

8 months ago

0.1.0

8 months ago