file-function-server
TypeScript icon, indicating that this package has built-in type declarations

1.0.6 • Public • Published

npm version

🕊File Function Server

No-Frills Node.js API Endpoints

60-Second Setup Starting... Now!

Requirements: Node.js >=7, NPM or Yarn

⬇️ Install

npm init (if fresh project)

npm i file-function-server or yarn add file-function-server

📂 Create Functions Folder

📦your-project
 ┣ 📂functions
 ┗ 📜package.json

👨‍🏭 Create File Function

Routes are defined by naming files & folders

📦your-project
 ┣ 📂functions
 ┃ ┗ 📜hello-world.js
 ┗ 📜package.json

The endpoint handler is the default node module export. It takes two arguments:

  1. req (express.Request type)
  2. res (express.Response type)

hello-world.js (JavaScript)

module.exports.default = function (req, res) {
  return 'Hello World!';
};
hello-world.js (ES6)

export default (req, res) => 'Hello World!';
hello-world.ts (TypeScript)

import { FileFunctionHandler } from 'file-function-server';

export default ((req, res) => {
 // Intellisense enabled!
 return 'Hello World!';
}) as FileFunctionHandler;

Script

Finally, add the following to your package.json

"scripts": {
 "start": "file-function-server"
}

📻 Generated API

Run npm run start or yarn start from the command line.

Your API Endpoints are visible at localhost:9000/functions

Endpoint GET POST PUT PATCH DELETE
/functions/hello-world

Programmatic Usage

const { FileFunctionServer } = require('file-function-server');
new FileFunctionServer(/* optional config */).start();

Custom Function Directory

const { FileFunctionServer } = require('file-function-server');
const path = require('path');
new FileFunctionServer({
 functionsDir: path.join(__dirname, '/api-functions')
}).start();

⚙️ Config Object

Property Description Required Default
app Express App 🚫 New express app
functionsDir Directory containing file functions 🚫 <current-working-directory>/functions
port Port to start server on 🚫 PORT Environment Variable or 9000

Package Sidebar

Install

npm i file-function-server

Weekly Downloads

0

Version

1.0.6

License

MIT

Unpacked Size

15.4 kB

Total Files

13

Last publish

Collaborators

  • mccallalexander