diff --git a/packages/find-and-require-package-json/README.md b/packages/find-and-require-package-json/README.md index 05a685e..d47c552 100644 --- a/packages/find-and-require-package-json/README.md +++ b/packages/find-and-require-package-json/README.md @@ -13,7 +13,7 @@
-This TypeScript module provides a function to locate, read, and parse the `package.json` file from the current directory or any of its parent directories. +This TypeScript module provides a function to locate, read, and parse the `package.json` file starting from a specified directory and searching up through parent directories. ## install @@ -26,7 +26,21 @@ npm install find-and-require-package-json ```js import { findAndRequirePackageJson } from 'find-and-require-package-json'; -const packageJson = findAndRequirePackageJson(); +// Pass __dirname to find the package.json for your module +const packageJson = findAndRequirePackageJson(__dirname); console.log('Package name:', packageJson.name); console.log('Version:', packageJson.version); -``` \ No newline at end of file +``` + +### ESM Usage + +For ESM modules, you'll need to convert `import.meta.url` to a directory path: + +```js +import { findAndRequirePackageJson } from 'find-and-require-package-json'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const packageJson = findAndRequirePackageJson(__dirname); +``` diff --git a/packages/find-and-require-package-json/__tests__/find-pkg.test.ts b/packages/find-and-require-package-json/__tests__/find-pkg.test.ts index 5f3f9e0..9b2b8d8 100644 --- a/packages/find-and-require-package-json/__tests__/find-pkg.test.ts +++ b/packages/find-and-require-package-json/__tests__/find-pkg.test.ts @@ -38,7 +38,7 @@ describe('findAndRequirePackageJson', () => { jest.spyOn(process, 'cwd').mockReturnValue(mockCurrentDir); - const result = findAndRequirePackageJson(); + const result = findAndRequirePackageJson(mockCurrentDir); expect(result).toEqual(mockPackageJson); expect(existsSync).toHaveBeenCalledWith(mockFilePath); @@ -57,7 +57,7 @@ describe('findAndRequirePackageJson', () => { jest.spyOn(process, 'cwd').mockReturnValue(mockCurrentDir); - expect(() => findAndRequirePackageJson()).toThrow( + expect(() => findAndRequirePackageJson(mockCurrentDir)).toThrow( 'package.json not found in any parent directory' ); expect(existsSync).toHaveBeenCalledWith(mockFilePath); diff --git a/packages/find-and-require-package-json/package.json b/packages/find-and-require-package-json/package.json index 010752f..616626e 100644 --- a/packages/find-and-require-package-json/package.json +++ b/packages/find-and-require-package-json/package.json @@ -1,6 +1,6 @@ { "name": "find-and-require-package-json", - "version": "0.6.8", + "version": "0.7.0", "author": "Dan Lynch