/
index.ts
38 lines (36 loc) · 1.05 KB
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import path from 'path'
import { DependencyManifest } from '@pnpm/types'
import loadJsonFile from 'load-json-file'
const defaultManifest = {
name: process.env.npm_package_name != null && process.env.npm_package_name !== ''
? process.env.npm_package_name
: 'pnpm',
version: process.env.npm_package_version != null && process.env.npm_package_version !== ''
? process.env.npm_package_version
: '0.0.0',
}
let pkgJson
if (require.main == null) {
pkgJson = defaultManifest
} else {
try {
pkgJson = {
...defaultManifest,
...loadJsonFile.sync<DependencyManifest>(
path.join(path.dirname(require.main.filename), '../package.json')
),
}
} catch (err: any) { // eslint-disable-line
pkgJson = defaultManifest
}
}
const packageManager = {
name: pkgJson.name,
// Never a prerelease version
stableVersion: pkgJson.version.includes('-')
? pkgJson.version.slice(0, pkgJson.version.indexOf('-'))
: pkgJson.version,
// This may be a 3.0.0-beta.2
version: pkgJson.version,
}
export default packageManager