A TypeScript definition for the package.json
npm install package-json-typebash
npm install -S package-json-type
`
`bash
yarn add package-json-type
`
$3
`typescript
import {
IDependencyMap,
IEngines,
IPackageJson,
SPDXLicenseIDApproved,
} from "package-json-type";
const dependency: IDependencyMap = {
bar: "^1.0.0",
baz: "^2.1.0",
qux: "file:../src/qux",
};
const engines: IEngines = {
node: ">=6.0.1 <11.0.0",
yarn: "^1.15.0",
zlib: "^0.14.0",
};
const license: SPDXLicenseIDApproved = "MIT";
const pkg: IPackageJson = {
name: "foo",
version: "1.2.3",
dependency,
description: "This is awesome foo",
engines,
license,
};
`
Types
`ts
interface IPackageJson {
author?: string | IAuthor;
bin?: string | IBinMap;
browser?: string | IBrowserMap;
bugs?: string | IBugs;
bundledDependencies?: string[];
bundleDependencies?: string[];
config?: IConfig;
contributors?: (string | IAuthor)[];
cpu?: CPU[];
dependencies?: IDependencyMap;
deprecated?: string;
description?: string;
devDependencies?: IDependencyMap;
devEngines?: IDevEngines;
directories?: IDirectories;
engines?: IEngines;
exports?: string | IConditionalExport | IExportsMap | string[] | null;
files?: string[];
flat?: boolean;
funding?: string | IFunding | IFunding[];
homepage?: string;
imports?: IImportsMap;
jsdelivr?: string;
keywords?: string[];
libc?: Libc[];
license?: SPDXLicenseID | SPDXLicenseIDApproved;
main?: string;
maintainers?: (string | IAuthor)[];
man?: string | string[];
module?: string;
name?: string;
optionalDependencies?: IDependencyMap;
os?: OS[];
overrides?: IOverrides;
packageManager?: string;
peerDependencies?: IDependencyMap;
peerDependenciesMeta?: IPeerDependenciesMeta;
preferGlobal?: boolean;
private?: boolean;
publishConfig?: IPublishConfig;
repository?: string | IRepository;
resolutions?: { [dependencyName: string]: string };
scripts?: IScriptsMap | { [scriptName: string]: string };
sideEffects?: boolean | string[];
type?: "module" | "commonjs";
types?: string;
typesVersions?: ITypesVersions;
typings?: string;
unpkg?: string;
version?: string;
workspaces?: string[] | IWorkspaces;
[field: string]: any;
}
`
- IAuthor
- IBinMap
- IBrowserMap
- IBugs
- IConditionalExport
- IConfig
- IDependencyMap
- IDevEnginePackageManager
- IDevEngineRuntime
- IDevEngines
- IDirectories
- IEngines
- IExportsMap
- IFunding
- IImportsMap
- IOverrides
- IPackageJson
- IPeerDependenciesMeta
- IPeerDependencyMeta
- IPublishConfig
- IRepository
- IScriptsMap
- ITypesVersions
- IWorkspaces
- CPU
- Libc
- OS
- SPDXLicenseID
- SPDXLicenseIDApproved
Documents
- TS Doc
- Markdown
Issues
If you have any problems, please let us know on github issues.
Contributing
Contributions are always welcome :)
1. If you'd like to contribute, please fork the repository
2. run npm i or yarn inside the project
3. run npm run dev to run in dev mode
4. Make changes as you'd like
5. To test run npm test or yarn test
6. For clean code run npm run lint or yarn lint`