UNPKG

6.61 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/util/packageMetadata.ts"],"names":[],"mappings":"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","sourcesContent":["import { isEmptyOrSpaces, log } from \"builder-util\"\nimport { readFile, readJson } from \"fs-extra-p\"\nimport * as path from \"path\"\nimport * as semver from \"semver\"\nimport { Metadata } from \"..\"\n\nconst normalizeData = require(\"normalize-package-data\")\n\n/** @internal */\nexport async function readPackageJson(file: string): Promise<any> {\n const data = await readJson(file)\n await authors(file, data)\n normalizeData(data)\n // remove not required fields because can be used for remote build\n delete data.scripts\n delete data.readme\n return data\n}\n\nasync function authors(file: string, data: any) {\n if (data.contributors != null) {\n return\n }\n\n let authorData\n try {\n authorData = await readFile(path.resolve(path.dirname(file), \"AUTHORS\"), \"utf8\")\n }\n catch (ignored) {\n return\n }\n\n data.contributors = authorData\n .split(/\\r?\\n/g)\n .map(it => it.replace(/^\\s*#.*$/, \"\").trim())\n}\n\n/** @internal */\nexport function checkMetadata(metadata: Metadata, devMetadata: any | null, appPackageFile: string, devAppPackageFile: string): void {\n const errors: Array<string> = []\n const reportError = (missedFieldName: string) => {\n errors.push(`Please specify '${missedFieldName}' in the package.json (${appPackageFile})`)\n }\n\n const checkNotEmpty = (name: string, value: string | null | undefined) => {\n if (isEmptyOrSpaces(value)) {\n reportError(name)\n }\n }\n\n if ((metadata as any).directories != null) {\n errors.push(`\"directories\" in the root is deprecated, please specify in the \"build\"`)\n }\n\n checkNotEmpty(\"name\", metadata.name)\n\n if (isEmptyOrSpaces(metadata.description)) {\n log.warn({appPackageFile}, `description is missed in the package.json`)\n }\n if (metadata.author == null) {\n log.warn({appPackageFile}, `author is missed in the package.json`)\n }\n checkNotEmpty(\"version\", metadata.version)\n\n if (metadata != null) {\n checkDependencies(metadata.dependencies, errors)\n }\n if (metadata !== devMetadata) {\n if (metadata.build != null) {\n errors.push(`'build' in the application package.json (${appPackageFile}) is not supported since 3.0 anymore. Please move 'build' into the development package.json (${devAppPackageFile})`)\n }\n }\n\n const devDependencies = (metadata as any).devDependencies\n if (devDependencies != null && \"electron-rebuild\" in devDependencies) {\n log.info('electron-rebuild not required if you use electron-builder, please consider to remove excess dependency from devDependencies\\n\\nTo ensure your native dependencies are always matched electron version, simply add script `\"postinstall\": \"electron-builder install-app-deps\" to your `package.json`')\n }\n\n if (errors.length > 0) {\n throw new Error(errors.join(\"\\n\"))\n }\n}\n\nexport function versionFromDependencyRange(version: string) {\n const firstChar = version[0]\n return firstChar === \"^\" || firstChar === \"~\" ? version.substring(1) : version\n}\n\nfunction checkDependencies(dependencies: { [key: string]: string } | null | undefined, errors: Array<string>) {\n if (dependencies == null) {\n return\n }\n\n const updaterVersion = dependencies[\"electron-updater\"]\n if (updaterVersion != null && !semver.satisfies(versionFromDependencyRange(updaterVersion), \">=2.18.2\")) {\n errors.push(`At least electron-updater 2.18.2 is required by current electron-builder version. Please set electron-updater version to \"^2.18.2\"`)\n }\n\n const deps = [\"electron\", \"electron-prebuilt\", \"electron-rebuild\"]\n if (process.env.ALLOW_ELECTRON_BUILDER_AS_PRODUCTION_DEPENDENCY !== \"true\") {\n deps.push(\"electron-builder\")\n }\n for (const name of deps) {\n if (name in dependencies) {\n errors.push(`Package \"${name}\" is only allowed in \"devDependencies\". `\n + `Please remove it from the \"dependencies\" section in your package.json.`)\n }\n }\n}"],"sourceRoot":""}