2
import * as fs from 'fs'
3
import { StatusCodes } from 'http-status-codes'
4
import { InternalFlowiseError } from '../../errors/internalFlowiseError'
5
import { getErrorMessage } from '../../errors/utils'
7
const getVersion = async () => {
9
const getPackageJsonPath = (): string => {
11
path.join(__dirname, '..', 'package.json'),
12
path.join(__dirname, '..', '..', 'package.json'),
13
path.join(__dirname, '..', '..', '..', 'package.json'),
14
path.join(__dirname, '..', '..', '..', '..', 'package.json'),
15
path.join(__dirname, '..', '..', '..', '..', '..', 'package.json')
17
for (const checkPath of checkPaths) {
18
if (fs.existsSync(checkPath)) {
24
const packagejsonPath = getPackageJsonPath()
25
if (!packagejsonPath) {
26
throw new InternalFlowiseError(StatusCodes.NOT_FOUND, `Version not found`)
29
const content = await fs.promises.readFile(packagejsonPath, 'utf8')
30
const parsedContent = JSON.parse(content)
32
version: parsedContent.version
35
throw new InternalFlowiseError(StatusCodes.NOT_FOUND, `Version not found- ${getErrorMessage(error)}`)
38
throw new InternalFlowiseError(StatusCodes.INTERNAL_SERVER_ERROR, `Error: versionService.getVersion - ${getErrorMessage(error)}`)