📦 Package info
A tiny service that reads the contents of the project's package.json
, sync & async.
🍿 Usage
⚠️ This package is only for Node.
⚙️ Example
import { packageInfo } from '@homer0/package-info';
const pkg = packageInfo();
const info = await pkg.get();
const info = pkg.getSync();
Jimple provider
If your app uses a Jimple container, you can register PackageInfo
as the packageInfo
service by using its provider:
import { packageInfoProvider } from '@homer0/package-info';
container.register(packageInfoProvider);
const info = container.get('packageInfo');
And since the provider is a "provider creator" (created with my custom version of Jimple), you can customize its service name:
container.register(
packageInfoProvider({
serviceName: 'myPackageInfo',
}),
);
Dependencies
PackageInfo
depends on the following services, and when used with Jimple, it will try to find them in the container, otherwise, it will create new instances:
@homer0/path-utils
, with the name pathUtils
. Used to generate the paths relative to the project root.
If you already implement the dependencies, but with a different name, you can specify them in the provider:
container.register(
packageInfoProvider({
services: {
pathUtils: 'myPathUtils',
},
}),
);
🤘 Development
As this project is part of the packages
monorepo, it requires Yarn, and some of the tooling, like ESLint and Husky, are installed on the root's package.json
.
Yarn tasks
Task | Description |
---|
test | Runs the unit tests. |
build | Bundles the project. |