@sheetbase/server

Build server app on Google Apps Script.

Usage no npm install needed!

<script type="module">
  import sheetbaseServer from 'https://cdn.skypack.dev/@sheetbase/server';
</script>

README

Installation

  • Install: npm install --save @sheetbase/server

  • Usage:

// 1. import module
import { ServerModule } from "@sheetbase/server";

// 2. create an instance
export class App {
  // the object
  serverModule: ServerModule;

  // initiate the instance
  constructor() {
    this.serverModule = new ServerModule(/* options */);
  }
}

Options

Name Type Description
apiKeys? ApiKeys Multiple api keys
appName? undefined | string The unique app name
failure? undefined | function Handler for invalid api key
key? undefined | string Single api key
trigger? undefined | function Trigger every time an api key is used
views? undefined | string The view template folder

Lib

The Lib class.

Lib properties

Name Type Description
apiKeyMiddleware APIKeyMiddleware
apiKeyService APIKeyService
httpService HttpService
loggingRoute LoggingRoute
monitoringService MonitoringService
optionService OptionService
responseService ResponseService
routerService RouterService
serverRoute ServerRoute
serverService ServerService

Lib methods

Function Returns type Description
registerRoutes(routeEnabling?, middlewares?) RouterService Expose the module routes
useAPIKeyMiddleware() RoutingHandler Get the API key middleware

registerRoutes(routeEnabling?, middlewares?)

Expose the module routes

Parameters

Param Type Description
routeEnabling true | DisabledRoutes
middlewares Middlewares | RouteMiddlewares

Returns

RouterService


useAPIKeyMiddleware()

Get the API key middleware

Returns

RoutingHandler


Routing

ServerModule provides REST API endpoints allowing clients to access server resources. Theses enpoints are not exposed by default, to expose the endpoints:

ServerModule.registerRoutes(routeEnabling?);

Errors

ServerModule returns these routing errors, you may use the error code to customize the message:

  • server/no-app-name: No unique "appName" provided

Routes

Routes overview

Route Method Disabled Description
/logging PUT true Set a server log
/system GET Get the system infomation

Routes detail

PUT /logging

DISABLED Set a server log

Request body

Name Type Description
level LoggingLevel
value LoggingValue

Response

void


GET /system

Get the system infomation

Response

object


License

@sheetbase/server is released under the MIT license.