dk-bff-server v3.2.14
Simple Backend-For-Frontend server
Extensible BFF server based on Express that handles static and security.
Features
- Handles static resources with Brotli/Gzip support (should be generated by bundler)
- Supports security rules
- Supports HTTPS (locally) / HTTP protocols
- Supports async template modifications for SSR
- Restricts cache for HTML template
- Can respond with
versionIdentifier
using GET/get-app-version
for notifying users when new version is released - Handles 404 errors
- Gathers performance metrics that could be injected in template
Usage
- Create file ex. ./server.ts
import path from 'path';
import { runServer } from 'dk-bff-server';
import { env } from '../env';
import { paths } from '../paths';
void runServer({
port: env.EXPRESS_PORT, // number
https: env.HTTPS_BY_NODE, // boolean
templatePath: path.resolve(paths.build, 'template.html'), // path string
staticFilesPath: paths.build, // path string
versionIdentifier: env.GIT_COMMIT, // string
compressedFilesGenerated: env.GENERATE_COMPRESSED, // boolean
templateModifier: ({ template }) => {
return Promise.resolve(
template
.replace(
'<!-- HOST_DEPENDENT_CONFIG -->',
JSON.stringify({
API_HOST: env.API_HOST,
IMAGE_STORAGE_URL: env.IMAGE_STORAGE_URL,
})
)
);
},
injectMeasures: ({ template, measures }) =>
template.replace('<!-- MEASURES -->', JSON.stringify({ server: measures }, null, 2)),
customMiddlewares: [
(app) => {
// your middlewares
// app.use(cookieParser());
}
],
/**
* @docs: https://github.com/helmetjs/helmet
* @docs: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
*/
helmetOptions: {
contentSecurityPolicy: {
directives: {},
}
},
});
- Build via you bundler
- Start using recipe in package.json, ex.
{
"scripts": {
"start": "node -r dotenv/config ./build/server.js"
}
}
29 days ago
29 days ago
29 days ago
29 days ago
29 days ago
29 days ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
4 months ago
10 months ago
10 months ago
10 months ago
10 months ago
9 months ago
10 months ago
9 months ago
9 months ago
7 months ago
9 months ago
7 months ago
7 months ago
10 months ago
10 months ago
10 months ago
6 months ago
6 months ago
5 months ago
6 months ago
5 months ago
7 months ago
6 months ago
6 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago