0.2.21 • Published 2 years ago

@kiwilan/fastify-utils v0.2.21

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Fastify utils

Installation

npm add @kiwilan/fastify-utils tsx

Or with pnpm:

pnpm add @kiwilan/fastify-utils tsx

Usage

touch setup.js
touch .eslintrc
touch .env.example
cp .env.example .env

Dev setup

In .env:

LOG_LEVEL=debug      # debug | error | fatal  | info | trace | warn | silent

PORT=3000
BASE_URL=localhost
HTTPS=false

CLUSTER=false

In setup.js:

import { Compiler } from "fastify-utils";

Compiler.make({
  // options
});

In package.json:

{
  "scripts": {
    "postinstall": "npm run config",
    "config": "node setup.js",
    "dev": "npm run config && NODE_ENV=development tsx watch src .env"
  }
}

In src/index.ts:

import { Server } from "fastify-utils";

Server.run({
  // options
});

Routes

In src/routes/index.ts:

import { Route } from "fastify-utils";

export default Route.make({
  method: "GET",
  url: "/",
  handler: async (request, reply) => {
    return { hello: "world" };
  },
});

And for src/routes/api/posts/index.ts:

import { Route } from "fastify-utils";

export default Route.make({
  method: "GET",
  url: "/api/posts", // autocomplete
  handler: async (request, reply) => {
    return { posts: [] };
  },
});

API key

In .env

# Could be left empty if you don't want to use it
API_KEY=

Build setup

In package.json:

{
  "scripts": {
    "build": "rimraf build && npm run config && NODE_ENV=production tsx setup.js && npm run check:types",
    "check:types": "tsc --noEmit"
  }
}

Production setup

In .env:

LOG_LEVEL=error      # debug | error | fatal  | info | trace | warn | silent

PORT=3000 # pm2 port
BASE_URL=domain.com
HTTPS=true

In package.json:

{
  "scripts": {
    "clean": "rimraf build && rimraf node_modules && pnpm install",
    "start": "node build/index.mjs",
    "pm2": "pm2 start --name 'fastify-utils' './build/index.mjs'"
  }
}

Build

pnpm package
{
  "dependencies": {
    "@kiwilan/fastify-utils": "file:~/kiwilan-fastify-utils.tgz"
  }
}

License

MIT

0.2.21

2 years ago

0.2.20

2 years ago

0.2.12

2 years ago

0.2.11

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.31

2 years ago

0.1.30

2 years ago

0.1.20

2 years ago

0.1.18

2 years ago

0.1.17

2 years ago

0.1.16

2 years ago

0.1.15

2 years ago

0.1.14

2 years ago

0.1.13

2 years ago

0.1.12

2 years ago

0.1.11

2 years ago

0.1.10

3 years ago

0.1.0

3 years ago

0.0.77

3 years ago

0.0.76

3 years ago

0.0.75

3 years ago

0.0.74

3 years ago

0.0.73

3 years ago

0.0.72

3 years ago

0.0.71

3 years ago

0.0.70

3 years ago

0.0.69

3 years ago

0.0.68

3 years ago

0.0.67

3 years ago

0.0.66

3 years ago

0.0.65

3 years ago

0.0.64

3 years ago

0.0.63

3 years ago

0.0.62

3 years ago

0.0.61

3 years ago

0.0.60

3 years ago

0.0.59

3 years ago

0.0.58

3 years ago

0.0.57

3 years ago

0.0.56

3 years ago

0.0.55

3 years ago

0.0.54

3 years ago

0.0.53

3 years ago

0.0.52

3 years ago

0.0.51

3 years ago

0.0.50

3 years ago

0.0.49

3 years ago

0.0.48

3 years ago

0.0.47

3 years ago

0.0.46

3 years ago

0.0.45

3 years ago

0.0.44

3 years ago

0.0.43

3 years ago

0.0.41

3 years ago

0.0.40

3 years ago

0.0.39

3 years ago

0.0.38

3 years ago

0.0.37

3 years ago

0.0.36

3 years ago

0.0.35

3 years ago

0.0.34

3 years ago

0.0.33

3 years ago

0.0.32

3 years ago

0.0.31

3 years ago

0.0.30

3 years ago

0.0.29

3 years ago

0.0.28

3 years ago

0.0.27

3 years ago

0.0.26

3 years ago

0.0.25

3 years ago

0.0.24

3 years ago

0.0.23

3 years ago

0.0.22

3 years ago

0.0.21

3 years ago

0.0.20

3 years ago

0.0.15

3 years ago

0.0.1

3 years ago