diff --git a/packages/cli/package.json b/packages/cli/package.json index 994d7a5aaf..d2c65b8101 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -38,9 +38,10 @@ "bin": { "sentio": "./lib/cli.js" }, - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "module": "./lib/index.js", + "types": "module", + "exports": { + ".": "./lib/index.js" + }, "files": [ "{lib,src,templates}", "!{lib,src}/tests", diff --git a/packages/cli/src/build.ts b/packages/cli/src/build.ts index c8754c6bda..08433ace10 100644 --- a/packages/cli/src/build.ts +++ b/packages/cli/src/build.ts @@ -3,19 +3,7 @@ import path from 'path' import fs from 'fs' import { exec } from 'child_process' import * as process from 'process' -import { createRequire } from 'module' -const require = createRequire(import.meta.url) - -function getPackageRoot(pkgId: string): string { - const m = require.resolve(pkgId) - - let dir = path.dirname(m) - while (!fs.existsSync(path.join(dir, 'package.json'))) { - dir = path.dirname(dir) - } - - return dir -} +import { getPackageRoot } from './utils.js' export async function buildProcessor(onlyGen: boolean) { if (!onlyGen) { diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts new file mode 100644 index 0000000000..336ce12bb9 --- /dev/null +++ b/packages/cli/src/index.ts @@ -0,0 +1 @@ +export {} diff --git a/packages/cli/src/utils.ts b/packages/cli/src/utils.ts index c0c0a25228..8194d5d94a 100644 --- a/packages/cli/src/utils.ts +++ b/packages/cli/src/utils.ts @@ -1,8 +1,23 @@ import fs from 'fs-extra' import path from 'path' +import { createRequire } from 'module' +import url from 'url' + +const require = createRequire(import.meta.url) +const PACKAGE_JSON = 'package.json' + +export function getPackageRoot(pkgId: string): string { + const m = require.resolve(pkgId) + + let dir = path.dirname(m) + while (!fs.existsSync(path.join(dir, PACKAGE_JSON))) { + dir = path.dirname(dir) + } + return dir +} export function getCliVersion() { - const packageJsonPath = path.resolve(__dirname, '../package.json') + const packageJsonPath = url.fileURLToPath(new URL('../' + PACKAGE_JSON, import.meta.url)) const packageJsonContent = fs.readFileSync(packageJsonPath, 'utf-8') const packageJson = JSON.parse(packageJsonContent) @@ -11,8 +26,8 @@ export function getCliVersion() { export function getSdkVersion() { try { - const packageJsonPath = require.resolve('@sentio/sdk/package.json') - const packageJsonContent = fs.readFileSync(packageJsonPath, 'utf-8') + const packageJsonPath = getPackageRoot('@sentio/sdk') + const packageJsonContent = fs.readFileSync(path.join(packageJsonPath, PACKAGE_JSON), 'utf-8') const packageJson = JSON.parse(packageJsonContent) return packageJson.version } catch (e) {