@tsed/cli
Version:
CLI to bootstrap your Ts.ED project
49 lines (48 loc) • 1.5 kB
JavaScript
import { injectable } from "@tsed/cli-core";
import { SyntaxKind } from "ts-morph";
export class InitFastifyPlatform {
constructor() {
this.name = "fastify";
}
alterProjectFiles(project) {
const options = project.findConfiguration("server");
if (options) {
const plugins = [
"@fastify/accepts",
"@fastify/cookie",
{
use: "fastify-raw-body",
options: {
global: false,
runFirst: true
}
},
"@fastify/formbody"
];
project.getPropertyAssignment(options, {
name: "plugins",
kind: SyntaxKind.ArrayLiteralExpression,
initializer: JSON.stringify(plugins, null, 2)
});
}
}
dependencies(ctx) {
return {
"@tsed/platform-fastify": ctx.tsedVersion,
"@fastify/accepts": "latest",
"@fastify/middie": "latest",
"@fastify/static": "latest",
"@fastify/cookie": "latest",
"@fastify/formbody": "latest",
"@fastify/session": "latest",
fastify: "latest",
"fastify-raw-body": "latest"
};
}
devDependencies(ctx) {
return {
"@types/content-disposition": "latest"
};
}
}
injectable(InitFastifyPlatform).type("platform:init");