packages/jsii-config/lib/validate.ts (21 lines of code) (raw):

import { BasePackageJson } from './schema'; /* * Top level keys required for jsii that aren't controlled by jsii-config */ const requiredNpmKeys: Array<keyof BasePackageJson> = [ 'name', 'version', 'repository', 'main', 'author', ]; export default function validatePackageJson(packageJson: any): BasePackageJson { const missingKeys = requiredNpmKeys.filter((key) => !packageJson[key]); if (missingKeys.length > 0) { throw new Error( // Not the prettiest way to control indentation on multiline strings `package.json is missing required fields:${'\n'}${missingKeys .map((k) => `- ${k}\n`) .join( '', )}${''}run "npm init" or configure manually and retry jsii-config`, ); } return packageJson as BasePackageJson; }