@libit/pkginfo
TypeScript icon, indicating that this package has built-in type declarations

0.4.2 • Public • Published

@libit/pkginfo

An easy way to find and read package json whether from a submodule or the application

Installation

$ npm install @libit/pkginfo

Highlights

Motivation

How can a module get package data from an application's package.json?

import {pkginfo} from '@libit/pkginfo';

// get applicaiton json data using pkginfo
console.log(await pkginfo(require.main));
// await pkginfo(require.main);
// =>
// [{"name": "application", ...}, '.../resolved-directory']

// or simply using appfino
console.log(await appinfo());
// await appinfo(require.main);
// =>
// [{"name": "application", ...}, '.../resolved-directory']

Usage

import {pkginfo} from '@libit/pkginfo';

console.log(await pkginfo());
// => [{name: '@libit/pkginfo', …}, '.../resolved-directory']

console.log(await pkginfo(require.main));
// => [{name: 'app', …}, '.../resolved-directory']

console.log(await pkginfo('some-other-directory'));
// => [{name: 'unicorn', …}, '.../resolved-directory']

Here's a sample of the output:

[
  '.../fixtures',
  {
    name: 'simple-app',
    description: 'A test fixture for pkginfo',
    version: '0.1.0',
    keywords: ['test', 'fixture'],
    main: './dist/index.js',
    scripts: {test: 'mocha __tests__/**/*.test.js'},
    engines: {node: '>= 12'},
  },
];

API

pkginfo(dirOrModule?: NodeModule | string, normalization?: boolean)

Returns a Promise<[PackageJson, string]> or Promise<[NormalizePackageJson, string]> for package data and package file directory, or Promise<[null, null]> if couldn't be found.

pkginfo.sync(dirOrModule?: NodeModule | string, normalization?: boolean)

Returns a [PackageJson, string] or NormalizePackageJson, string for package data and package file directory, or [null, null] if couldn't be found.

appinfo(normalization?: boolean) and appinfo.sync(normalization?: boolean)

appinfo() <=> pkginfo(require.main);
appinfo(false) <=> pkginfo(require.main, false);

Package Sidebar

Install

npm i @libit/pkginfo

Weekly Downloads

4

Version

0.4.2

License

MIT

Unpacked Size

16.5 kB

Total Files

15

Last publish

Collaborators

  • towyuan