mirror of
https://github.com/CaramelFur/Picsur.git
synced 2025-10-25 23:46:06 +02:00
Make sure node version is correct
This commit is contained in:
@@ -55,6 +55,7 @@
|
||||
"qoi-img": "^2.2.0",
|
||||
"reflect-metadata": "^0.2.2",
|
||||
"rxjs": "^7.8.1",
|
||||
"semver": "^7.6.3",
|
||||
"sharp": "^0.33.5",
|
||||
"stream-parser": "^0.3.1",
|
||||
"thunks": "^4.9.6",
|
||||
@@ -72,6 +73,7 @@
|
||||
"@types/passport-jwt": "^4.0.1",
|
||||
"@types/passport-local": "^1.0.38",
|
||||
"@types/passport-strategy": "^0.2.38",
|
||||
"@types/semver": "^7.5.8",
|
||||
"@types/supertest": "^6.0.2",
|
||||
"prettier": "^3.3.3",
|
||||
"source-map-support": "^0.5.21",
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
|
||||
import {
|
||||
Logger,
|
||||
MiddlewareConsumer,
|
||||
Module,
|
||||
NestModule,
|
||||
OnModuleInit,
|
||||
} from '@nestjs/common';
|
||||
import { ScheduleModule } from '@nestjs/schedule';
|
||||
import { ServeStaticModule } from '@nestjs/serve-static';
|
||||
import cors from 'cors';
|
||||
import { IncomingMessage, ServerResponse } from 'http';
|
||||
import semver from 'semver';
|
||||
import { EarlyConfigModule } from './config/early/early-config.module.js';
|
||||
import { ServeStaticConfigService } from './config/early/serve-static.config.service.js';
|
||||
import { DatabaseModule } from './database/database.module.js';
|
||||
@@ -13,6 +20,8 @@ import { DemoManagerModule } from './managers/demo/demo.module.js';
|
||||
import { UsageManagerModule } from './managers/usage/usage.module.js';
|
||||
import { PicsurRoutesModule } from './routes/routes.module.js';
|
||||
|
||||
const supportedNodeVersions = ['^16.17.0', '^18.6.0', '>=20.0.0'];
|
||||
|
||||
const mainCorsConfig = cors({
|
||||
origin: '<origin>',
|
||||
});
|
||||
@@ -64,11 +73,26 @@ const imageCacheSet = (
|
||||
PicsurLayersModule,
|
||||
],
|
||||
})
|
||||
export class AppModule implements NestModule {
|
||||
export class AppModule implements NestModule, OnModuleInit {
|
||||
private readonly logger = new Logger(AppModule.name);
|
||||
|
||||
configure(consumer: MiddlewareConsumer) {
|
||||
consumer.apply(mainCorsConfig).exclude('i/(.*)').forRoutes('*');
|
||||
consumer
|
||||
.apply(imageCorsConfig, imageCorsOverride, imageCacheSet)
|
||||
.forRoutes('i/(.*)');
|
||||
}
|
||||
|
||||
onModuleInit() {
|
||||
const nodeVersion = process.version;
|
||||
if (!supportedNodeVersions.some((v) => semver.satisfies(nodeVersion, v))) {
|
||||
this.logger.error(
|
||||
`Unsupported Node version: ${nodeVersion}. Transcoding performance will be severely degraded.`,
|
||||
);
|
||||
|
||||
this.logger.log(
|
||||
`Supported Node versions: ${supportedNodeVersions.join(', ')}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import {
|
||||
AnimFileType,
|
||||
FileType,
|
||||
ImageFileType,
|
||||
SupportedFileTypeCategory,
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
} from 'picsur-shared/dist/dto/mimes.dto';
|
||||
import { QOIdecode, QOIencode } from 'qoi-img';
|
||||
import sharp, { Sharp, SharpOptions } from 'sharp';
|
||||
import { SharpWorkerFinishOptions } from './sharp.message';
|
||||
import { SharpWorkerFinishOptions } from './sharp.message.js';
|
||||
|
||||
export interface SharpResult {
|
||||
data: Buffer;
|
||||
|
||||
13
pnpm-lock.yaml
generated
13
pnpm-lock.yaml
generated
@@ -143,6 +143,9 @@ importers:
|
||||
rxjs:
|
||||
specifier: ^7.8.1
|
||||
version: 7.8.1
|
||||
semver:
|
||||
specifier: ^7.6.3
|
||||
version: 7.6.3
|
||||
sharp:
|
||||
specifier: ^0.33.5
|
||||
version: 0.33.5
|
||||
@@ -189,6 +192,9 @@ importers:
|
||||
'@types/passport-strategy':
|
||||
specifier: ^0.2.38
|
||||
version: 0.2.38
|
||||
'@types/semver':
|
||||
specifier: ^7.5.8
|
||||
version: 7.5.8
|
||||
'@types/supertest':
|
||||
specifier: ^6.0.2
|
||||
version: 6.0.2
|
||||
@@ -2045,7 +2051,7 @@ packages:
|
||||
peerDependencies:
|
||||
'@angular/compiler-cli': ^18.0.0
|
||||
typescript: ~5.5.4
|
||||
webpack: ^5.54.0
|
||||
webpack: '>=5.76.0'
|
||||
|
||||
'@ngui/common@1.0.0':
|
||||
resolution: {integrity: sha512-T0vX6jFLR+19iUVqM0J6lQkcDo6Iaq8pptzMJDEjLG3HkpgeM9SYxiTFV3+yHuP4QzQQ6/VP8gJ+1f4M7iZv5Q==}
|
||||
@@ -2465,6 +2471,9 @@ packages:
|
||||
'@types/retry@0.12.2':
|
||||
resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
|
||||
|
||||
'@types/semver@7.5.8':
|
||||
resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
|
||||
|
||||
'@types/send@0.17.4':
|
||||
resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
|
||||
|
||||
@@ -8268,6 +8277,8 @@ snapshots:
|
||||
|
||||
'@types/retry@0.12.2': {}
|
||||
|
||||
'@types/semver@7.5.8': {}
|
||||
|
||||
'@types/send@0.17.4':
|
||||
dependencies:
|
||||
'@types/mime': 1.3.5
|
||||
|
||||
Reference in New Issue
Block a user