42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
const { randomBytes } = require('node:crypto');
|
|
const { writeFile } = require('node:fs/promises');
|
|
|
|
// Schema generation needs no deployment configuration or real credentials.
|
|
Object.assign(process.env, {
|
|
DATABASE_URL: 'file::memory:',
|
|
FRONTEND_ORIGIN: 'http://localhost',
|
|
JWT_SECRET: randomBytes(32).toString('hex'),
|
|
TOKEN_ENCRYPTION_KEY: randomBytes(32).toString('base64'),
|
|
PORT: '3000',
|
|
LOG_LEVEL: 'error',
|
|
TBANK_GRPC_ENDPOINT: 'localhost:443',
|
|
TBANK_RATE_LIMIT_PER_SECOND: '5',
|
|
TBANK_CA_CERT_PATH: '',
|
|
});
|
|
|
|
const { NestFactory } = require('@nestjs/core');
|
|
|
|
const { AppModule } = require('../dist/src/app.module.js');
|
|
const { API_PREFIX, createOpenApiDocument } = require('../dist/src/openapi.js');
|
|
|
|
async function generate() {
|
|
const app = await NestFactory.create(AppModule, {
|
|
preview: true,
|
|
logger: false,
|
|
});
|
|
try {
|
|
app.setGlobalPrefix(API_PREFIX);
|
|
await writeFile(
|
|
'openapi.json',
|
|
JSON.stringify(createOpenApiDocument(app), null, 2) + '\n',
|
|
);
|
|
} finally {
|
|
await app.close();
|
|
}
|
|
}
|
|
|
|
generate().catch((error) => {
|
|
console.error(error);
|
|
process.exitCode = 1;
|
|
});
|