UNPKG

7.13 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/appInfo.ts"],"names":[],"mappings":"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","sourcesContent":["import { isEmptyOrSpaces, log, smarten } from \"builder-util\"\nimport sanitizeFileName from \"sanitize-filename\"\nimport { prerelease, SemVer } from \"semver\"\nimport { Packager } from \"./packager\"\n\nexport class AppInfo {\n readonly description = smarten(this.info.metadata.description || \"\")\n readonly version: string\n\n readonly buildNumber: string | undefined\n readonly buildVersion: string\n\n readonly productName: string\n readonly productFilename: string\n\n constructor(private readonly info: Packager, buildVersion?: string | null) {\n this.version = info.metadata.version!!\n\n if (buildVersion == null) {\n buildVersion = info.config.buildVersion\n }\n\n this.buildNumber = process.env.BUILD_NUMBER || process.env.TRAVIS_BUILD_NUMBER || process.env.APPVEYOR_BUILD_NUMBER || process.env.CIRCLE_BUILD_NUM || process.env.BUILD_BUILDNUMBER\n if (buildVersion == null) {\n buildVersion = this.version\n if (!isEmptyOrSpaces(this.buildNumber)) {\n buildVersion += `.${this.buildNumber}`\n }\n }\n this.buildVersion = buildVersion\n\n this.productName = info.config.productName || info.metadata.productName || info.metadata.name!\n this.productFilename = sanitizeFileName(this.productName)\n }\n\n get channel(): string | null {\n const prereleaseInfo = prerelease(this.version)\n if (prereleaseInfo != null && prereleaseInfo.length > 0) {\n return prereleaseInfo[0]\n }\n return null\n }\n\n get versionInWeirdWindowsForm(): string {\n const parsedVersion = new SemVer(this.version)\n // https://github.com/electron-userland/electron-builder/issues/2635#issuecomment-371792272\n let buildNumber = this.buildNumber\n if (buildNumber == null || !/^\\d+$/.test(buildNumber)) {\n buildNumber = \"0\"\n }\n return `${parsedVersion.major}.${parsedVersion.minor}.${parsedVersion.patch}.${buildNumber}`\n }\n\n private get notNullDevMetadata() {\n return this.info.devMetadata || {}\n }\n\n get companyName(): string | null {\n const author = this.info.metadata.author || this.notNullDevMetadata.author\n return author == null ? null : author.name\n }\n\n get id(): string {\n let appId\n if (this.info.config.appId != null) {\n appId = this.info.config.appId\n }\n\n const generateDefaultAppId = () => {\n const info = this.info\n return `${info.framework.defaultAppIdPrefix}${info.metadata.name!.toLowerCase()}`\n }\n\n if (appId != null && (appId === \"your.id\" || isEmptyOrSpaces(appId))) {\n const incorrectAppId = appId\n appId = generateDefaultAppId()\n log.warn(`do not use \"${incorrectAppId}\" as appId, \"${appId}\" will be used instead`)\n }\n\n return appId == null ? generateDefaultAppId() : appId\n }\n\n get macBundleIdentifier(): string {\n return filterCFBundleIdentifier(this.id)\n }\n\n get name(): string {\n return this.info.metadata.name!\n }\n\n get sanitizedName(): string {\n return sanitizeFileName(this.name)\n }\n\n get copyright(): string {\n const copyright = this.info.config.copyright\n if (copyright != null) {\n return copyright\n }\n return `Copyright © ${new Date().getFullYear()} ${this.companyName || this.productName}`\n }\n\n async computePackageUrl(): Promise<string | null> {\n const url = this.info.metadata.homepage || this.notNullDevMetadata.homepage\n if (url != null) {\n return url\n }\n\n const info = await this.info.repositoryInfo\n return info == null || info.type !== \"github\" ? null : `https://${info.domain}/${info.user}/${info.project}`\n }\n}\n\n/** @internal */\nexport function filterCFBundleIdentifier(identifier: string) {\n // Remove special characters and allow only alphanumeric (A-Z,a-z,0-9), hyphen (-), and period (.)\n // Apple documentation: https://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070\n return identifier.replace(/ /g, \"-\").replace(/[^a-zA-Z0-9.-]/g, \"\")\n}"],"sourceRoot":""}