UNPKG

9.08 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/ProtonFramework.ts"],"names":[],"mappings":"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","sourcesContent":["import { chmod, emptyDir, ensureDir, writeFile } from \"fs-extra-p\"\nimport { getBin } from \"builder-util/out/binDownload\"\nimport { FileTransformer, copyFile } from \"builder-util/out/fs\"\nimport { log } from \"builder-util\"\nimport { safeStringifyJson } from \"builder-util-runtime\"\nimport { Platform } from \"./core\"\nimport { NODE_MODULES_PATTERN } from \"./fileTransformer\"\nimport { Framework, AppInfo, PrepareApplicationStageDirectoryOptions } from \"./index\"\nimport * as path from \"path\"\nimport { LinuxPackager } from \"./linuxPackager\"\nimport MacPackager from \"./macPackager\"\nimport { build as buildPlist } from \"plist\"\nimport { getTemplatePath } from \"./util/pathManager\"\n\nexport function createProtonFrameworkSupport(nodeVersion: string, appInfo: AppInfo): Framework {\n return new ProtonFramework(nodeVersion === \"current\" ? process.versions.node : nodeVersion, `${appInfo.productFilename}.app`)\n}\n\nclass ProtonFramework implements Framework {\n readonly name = \"proton\"\n readonly isDefaultAppIconProvided = false\n readonly macOsDefaultTargets = [\"dmg\"]\n readonly defaultAppIdPrefix = \"com.proton-native.\"\n\n // noinspection JSUnusedGlobalSymbols\n readonly isNpmRebuildRequired = false\n\n constructor(readonly version: string, readonly distMacOsAppName: string) {\n }\n\n getDefaultIcon() {\n return getTemplatePath(\"proton-native.icns\")\n }\n\n createTransformer(): FileTransformer | null {\n let babel: any\n const babelOptions: any = {ast: false, sourceMaps: \"inline\"}\n if (process.env.TEST_SET_BABEL_PRESET === \"true\") {\n babel = require(\"@babel/core\")\n // out test dir can be located outside of electron-builder node_modules and babel cannot resolve string names of preset\n babelOptions.presets = [\n [require(\"@babel/preset-env\").default, {targets: {node: this.version}}],\n [require(\"@babel/preset-stage-0\"), {decoratorsLegacy: true}],\n require(\"@babel/preset-react\"),\n ]\n babelOptions.babelrc = false\n }\n else {\n try {\n babel = require(\"babel-core\")\n }\n catch (e) {\n // babel isn't installed\n log.debug(null, \"don't transpile source code using Babel\")\n return null\n }\n }\n\n log.info({options: safeStringifyJson(babelOptions, new Set<string>([\"presets\"]))}, \"transpile source code using Babel\")\n return file => {\n if (!(file.endsWith(\".js\") || file.endsWith(\".jsx\")) || file.includes(NODE_MODULES_PATTERN)) {\n return null\n }\n\n return new Promise((resolve, reject) => {\n return babel.transformFile(file, babelOptions, (error: Error, result: any) => {\n if (error == null) {\n resolve(result.code)\n }\n else {\n reject(error)\n }\n })\n })\n }\n }\n\n private async prepareMacosApplicationStageDirectory(packager: MacPackager, options: PrepareApplicationStageDirectoryOptions) {\n const appContentsDir = path.join(options.appOutDir, this.distMacOsAppName, \"Contents\")\n await ensureDir(path.join(appContentsDir, \"Resources\"))\n await ensureDir(path.join(appContentsDir, \"MacOS\"))\n await copyFile(path.join(await getBin(\"node\", `${this.version}-darwin-x64`, null), \"node\"), path.join(appContentsDir, \"MacOS\", \"node\"))\n\n const appPlist: any = {\n // https://github.com/albe-rosado/create-proton-app/issues/13\n NSHighResolutionCapable: true,\n }\n await packager.applyCommonInfo(appPlist, appContentsDir)\n await Promise.all([\n writeFile(path.join(appContentsDir, \"Info.plist\"), buildPlist(appPlist)),\n writeExecutableMain(path.join(appContentsDir, \"MacOS\", appPlist.CFBundleExecutable), `#!/bin/sh\nDIR=$(dirname \"$0\")\n\"$DIR/node\" \"$DIR/../Resources/app/${options.packager.info.metadata.main || \"index.js\"}\"\n`),\n ])\n }\n\n private async prepareLinuxApplicationStageDirectory(options: PrepareApplicationStageDirectoryOptions) {\n const appOutDir = options.appOutDir\n await copyFile(path.join(await getBin(\"node\", `${this.version}-linux-${options.arch === \"ia32\" ? \"x86\" : options.arch}`, null), \"node\"), path.join(appOutDir, \"node\"))\n const mainPath = path.join(appOutDir, (options.packager as LinuxPackager).executableName)\n await writeExecutableMain(mainPath, `#!/bin/sh\nDIR=$(dirname \"$0\")\n\"$DIR/node\" \"$DIR/app/${options.packager.info.metadata.main || \"index.js\"}\"\n`)\n }\n\n async prepareApplicationStageDirectory(options: PrepareApplicationStageDirectoryOptions) {\n await emptyDir(options.appOutDir)\n\n const packager = options.packager\n if (packager.platform === Platform.MAC) {\n await this.prepareMacosApplicationStageDirectory(packager as MacPackager, options)\n }\n else if (packager.platform === Platform.LINUX) {\n await this.prepareLinuxApplicationStageDirectory(options)\n }\n else {\n throw new Error(`Unsupported platform: ${packager.platform}`)\n }\n }\n}\n\nasync function writeExecutableMain(file: string, content: string) {\n await writeFile(file, content, {mode: 0o755})\n await chmod(file, 0o755)\n}\n"],"sourceRoot":""}