index.d.ts 1.4 KB
Newer Older
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
import * as typeFest from 'type-fest';
import normalize = require('normalize-package-data');

declare namespace readPkg {
	interface Options {
		/**
		[Normalize](https://github.com/npm/normalize-package-data#what-normalization-currently-entails) the package data.

		@default true
		*/
		readonly normalize?: boolean;

		/**
		Current working directory.

		@default process.cwd()
		*/
		readonly cwd?: string;
	}

	interface NormalizeOptions extends Options {
		readonly normalize?: true;
	}

	type NormalizedPackageJson = PackageJson & normalize.Package;
	type PackageJson = typeFest.PackageJson;
}

declare const readPkg: {
	/**
	@returns The parsed JSON.

	@example
	```
	import readPkg = require('read-pkg');

	(async () => {
		console.log(await readPkg());
		//=> {name: 'read-pkg', …}

		console.log(await readPkg({cwd: 'some-other-directory'});
		//=> {name: 'unicorn', …}
	})();
	```
	*/
	(options?: readPkg.NormalizeOptions): Promise<readPkg.NormalizedPackageJson>;
	(options: readPkg.Options): Promise<readPkg.PackageJson>;

	/**
	@returns The parsed JSON.

	@example
	```
	import readPkg = require('read-pkg');

	console.log(readPkg.sync());
	//=> {name: 'read-pkg', …}

	console.log(readPkg.sync({cwd: 'some-other-directory'});
	//=> {name: 'unicorn', …}
	```
	*/
	sync(options?: readPkg.NormalizeOptions): readPkg.NormalizedPackageJson;
	sync(options: readPkg.Options): readPkg.PackageJson;
};

export = readPkg;