1 | 'use strict'
|
2 |
|
3 | const path = require('path')
|
4 | const {
|
5 | Backend,
|
6 | RestApi,
|
7 | CreatedServingFilesEndpoint,
|
8 | CreatedCachedServingFilesEndpoint
|
9 | } = require('./index');
|
10 | const {
|
11 | CreatedOptions
|
12 | } = require('@cuties/https')
|
13 | const { ReadDataByPath } = require('@cuties/fs')
|
14 | const SimpleResponseOnGETRequest = require('./example/SimpleResponseOnGETRequest')
|
15 | const SimpleResponseOnPOSTRequest = require('./example/SimpleResponseOnPOSTRequest')
|
16 | const CustomNotFoundEndpoint = require('./example/CustomNotFoundEndpoint')
|
17 | const CustomInternalServerErrorEndpoint = require('./example/CustomInternalServerErrorEndpoint')
|
18 | const CustomIndexEndpoint = require('./example/CustomIndexEndpoint')
|
19 |
|
20 | const notFoundEndpoint = new CustomNotFoundEndpoint(new RegExp(/\/not-found/))
|
21 | const internalServerErrorEndpoint = new CustomInternalServerErrorEndpoint()
|
22 |
|
23 | const mapper = (url) => {
|
24 | let parts = url.split('/').filter(part => part !== '')
|
25 | return path.join(...parts)
|
26 | }
|
27 |
|
28 | const cacheMapper = (url) => {
|
29 | let parts = url.split('/').filter(part => part !== '').slice(1)
|
30 | parts.unshift('files')
|
31 | return path.join(...parts)
|
32 | }
|
33 |
|
34 | new Backend(
|
35 | 'https',
|
36 | 8000,
|
37 | '127.0.0.1',
|
38 | new RestApi(
|
39 | new CustomIndexEndpoint(),
|
40 | new SimpleResponseOnGETRequest(new RegExp(/^\/get/), 'GET'),
|
41 | new SimpleResponseOnPOSTRequest(new RegExp(/^\/post/), 'POST'),
|
42 | new CreatedServingFilesEndpoint(new RegExp(/^\/files/), mapper, notFoundEndpoint),
|
43 | new CreatedCachedServingFilesEndpoint(new RegExp(/^\/cached/), cacheMapper, notFoundEndpoint),
|
44 | notFoundEndpoint,
|
45 | internalServerErrorEndpoint
|
46 | ), new CreatedOptions(
|
47 | 'key', new ReadDataByPath('./example/pem/key.pem'),
|
48 | 'cert', new ReadDataByPath('./example/pem/cert.pem')
|
49 | )
|
50 | ).call()
|