ghosttp

0.0.8 • Public • Published

GHosttp

GHosttp is a lightweight HTTP server designed for your GCP function. It's built for developing GCP functions quicker without rerunning functions manually.

It's main feature is building routes from the given --dir and detect new routes when adding or delete files from the folder.

That generates a development server with hot module reloading (HMR) and creates a route based on the filename.

  ➜ Local:    http://localhost:3000/
  ➜ Network:  use --host to expose

🚀 Loading server entry ./src/run-dev-server.ts GHosttp 12:21:58 AM
✅ Server initialized in 90ms                   GHosttp 12:21:58 AM
👀 Watching ./path/to/functions for changes     GHosttp 12:21:58 AM
ℹ Following endpoints are available             GHosttp 12:21:58 AM
ℹ /logger                                       GHosttp 12:21:58 AM
ℹ /run-dev-server                               GHosttp 12:21:58 AM

Opinionated Handler

I know, for now it is a bit opinionated but the handler should be named handler. However, you can ESM or Typescript Syntax.

import type { Request, Response } from '@google-cloud/functions-framework';

export const handler = async (req: Request, res: Response) => {
  // Handle CORS
  if (req.method === 'OPTIONS') {
    res.set('Access-Control-Allow-Methods', 'GET');
    res.set('Access-Control-Allow-Headers', 'Content-Type');
    res.set('Access-Control-Max-Age', '3600');
    res.status(204).send('')`
    return;
  }

  res.set('Content-Type', 'application/json');
  res.send(
    JSON.stringify({
      result,
    }),
  );
  return new Response(JSON.stringify(result));
};

Getting Started

Simply run

npx ghosttp --dir path/to/functions/folder

If no argument is passed, it will use the current dir. Otherwise, check the Args.

Args

Spin a quick development Server for your GCP
functions

Options:
  -V, --version       output the version number
  -d, --dir  [value]  Directory folder to watch for changes
  -p, --port [number] The port number where the dev server shall run
  -h, --help          display help for command

Contribution

To install dependencies:

pnpm install

To run:

pnpm dev --dir path/to/folder # Otherwise it would take the "." (root)

Package Sidebar

Install

npm i ghosttp

Weekly Downloads

23

Version

0.0.8

License

MIT

Unpacked Size

37.4 kB

Total Files

8

Last publish

Collaborators

  • jolo-dev