Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'app-builder-lib' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
async function checkMacResult(packager: Packager, packagerOptions: PackagerOptions, checkOptions: AssertPackOptions, packedAppDir: string) {
const appInfo = packager.appInfo
const info = (await executeAppBuilderAsJson>(["decode-plist", "-f", path.join(packedAppDir, "Contents", "Info.plist")]))[0]
expect(info).toMatchObject({
CFBundleVersion: info.CFBundleVersion === "50" ? "50" : `${appInfo.version}.${(process.env.TRAVIS_BUILD_NUMBER || process.env.CIRCLE_BUILD_NUM)}`
})
// checked manually, remove to avoid mismatch on CI server (where TRAVIS_BUILD_NUMBER is defined and different on each test run)
delete info.AsarIntegrity
delete info.CFBundleVersion
delete info.BuildMachineOSBuild
delete info.NSHumanReadableCopyright
delete info.DTXcode
delete info.DTXcodeBuild
delete info.DTSDKBuild
delete info.DTSDKName
delete info.DTCompiler
delete info.ElectronTeamID
afterAllArtifactBuild: () => {
if (process.platform !== 'win32') {
return [];
}
// Create .appxbundle for backward compability
// http://www.jonathanantoine.com/2016/04/12/windows-app-bundles-and-the-subsequent-submissions-must-continue-to-contain-a-windows-phone-8-1-appxbundle-error-message/
// https://docs.microsoft.com/en-us/windows/msix/package/create-app-package-with-makeappx-tool
// https://github.com/electron-userland/electron-builder/blob/master/packages/app-builder-lib/src/targets/AppxTarget.ts
const appxBundlePath = path.join('dist', `Translatium ${appVersion}.appxbundle`);
const appxPath = path.join(__dirname, 'dist', `Translatium ${appVersion}.appx`);
const bundleDirPath = path.join(__dirname, 'dist', 'appx_bundle');
const appxDestPath = path.join(bundleDirPath, 'Translatium.appx');
return getSignVendorPath()
.then((vendorPath) => {
console.log(`Creating ${appxBundlePath}...`);
fs.ensureDirSync(bundleDirPath);
fs.copyFileSync(appxPath, appxDestPath);
return new Promise((resolve) => {
const makeAppxPath = path.join(vendorPath, 'windows-10', 'x64', 'makeappx.exe');
runCmd(makeAppxPath, ['bundle', '/p', appxBundlePath, '/d', bundleDirPath, '/o'], (text) => {
console.log(text);
resolve();
});
})
.then(() => {
console.log(`Created ${appxBundlePath} successfully`);
return [appxBundlePath];
});
});
export async function installAppDeps(args: any) {
try {
log.info({version: PACKAGE_VERSION}, "electron-builder")
}
catch (e) {
// error in dev mode without babel
if (!(e instanceof ReferenceError)) {
throw e
}
}
const projectDir = process.cwd()
const packageMetadata = new Lazy(() => orNullIfFileNotExist(readJson(path.join(projectDir, "package.json"))))
const config = await getConfig(projectDir, null, null, packageMetadata)
const results = await Promise.all([
computeDefaultAppDirectory(projectDir, use(config.directories, it => it!.app)),
getElectronVersion(projectDir, config, packageMetadata),
])
// if two package.json — force full install (user wants to install/update app deps in addition to dev)
await installOrRebuild(config, results[0], {
frameworkInfo: {version: results[1], useCustomDist: true},
platform: args.platform,
arch: args.arch,
productionDeps: createLazyProductionDeps(results[0], null),
}, results[0] !== projectDir)
}
return
}
const packager = this.packager
const qualifier = packager.platformSpecificBuildOptions.identity
// explicitly disabled if set to null
if (qualifier === null) {
// macPackager already somehow handle this situation, so, here just return
return
}
const keychainFile = (await packager.codeSigningInfo.value).keychainFile
const certificateType = "Developer ID Application"
let identity = await findIdentity(certificateType, qualifier, keychainFile)
if (identity == null) {
identity = await findIdentity("Mac Developer", qualifier, keychainFile)
if (identity == null) {
return
}
}
const args = ["--sign", identity.hash]
if (keychainFile != null) {
args.push("--keychain", keychainFile)
}
args.push(artifactPath)
await exec("codesign", args)
}
private async signDmg(artifactPath: string) {
if (!isSignAllowed(false)) {
return
}
const packager = this.packager
const qualifier = packager.platformSpecificBuildOptions.identity
// explicitly disabled if set to null
if (qualifier === null) {
// macPackager already somehow handle this situation, so, here just return
return
}
const keychainFile = (await packager.codeSigningInfo.value).keychainFile
const certificateType = "Developer ID Application"
let identity = await findIdentity(certificateType, qualifier, keychainFile)
if (identity == null) {
identity = await findIdentity("Mac Developer", qualifier, keychainFile)
if (identity == null) {
return
}
}
const args = ["--sign", identity.hash]
if (keychainFile != null) {
args.push("--keychain", keychainFile)
}
args.push(artifactPath)
await exec("codesign", args)
}
try {
log.info({version: PACKAGE_VERSION}, "electron-builder")
}
catch (e) {
// error in dev mode without babel
if (!(e instanceof ReferenceError)) {
throw e
}
}
const projectDir = process.cwd()
const packageMetadata = new Lazy(() => orNullIfFileNotExist(readJson(path.join(projectDir, "package.json"))))
const config = await getConfig(projectDir, null, null, packageMetadata)
const results = await Promise.all([
computeDefaultAppDirectory(projectDir, use(config.directories, it => it!.app)),
getElectronVersion(projectDir, config, packageMetadata),
])
// if two package.json — force full install (user wants to install/update app deps in addition to dev)
await installOrRebuild(config, results[0], {
frameworkInfo: {version: results[1], useCustomDist: true},
platform: args.platform,
arch: args.arch,
productionDeps: createLazyProductionDeps(results[0], null),
}, results[0] !== projectDir)
}
async function rebuildAppNativeCode(args: any) {
const projectDir = process.cwd()
log.info({platform: args.platform, arch: args.arch}, "executing node-gyp rebuild")
// this script must be used only for electron
await exec(process.platform === "win32" ? "node-gyp.cmd" : "node-gyp", ["rebuild"], {
env: getGypEnv({version: await getElectronVersion(projectDir), useCustomDist: true}, args.platform, args.arch, true),
})
}
export async function installAppDeps(args: any) {
try {
log.info({version: PACKAGE_VERSION}, "electron-builder")
}
catch (e) {
// error in dev mode without babel
if (!(e instanceof ReferenceError)) {
throw e
}
}
const projectDir = process.cwd()
const packageMetadata = new Lazy(() => orNullIfFileNotExist(readJson(path.join(projectDir, "package.json"))))
const config = await getConfig(projectDir, null, null, packageMetadata)
const results = await Promise.all([
computeDefaultAppDirectory(projectDir, use(config.directories, it => it!.app)),
getElectronVersion(projectDir, config, packageMetadata),
])
// if two package.json — force full install (user wants to install/update app deps in addition to dev)
await installOrRebuild(config, results[0], {
frameworkInfo: {version: results[1], useCustomDist: true},
platform: args.platform,
arch: args.arch,
productionDeps: createLazyProductionDeps(results[0], null),
}, results[0] !== projectDir)
}
}
const projectDir = process.cwd()
const packageMetadata = new Lazy(() => orNullIfFileNotExist(readJson(path.join(projectDir, "package.json"))))
const config = await getConfig(projectDir, null, null, packageMetadata)
const results = await Promise.all([
computeDefaultAppDirectory(projectDir, use(config.directories, it => it!.app)),
getElectronVersion(projectDir, config, packageMetadata),
])
// if two package.json — force full install (user wants to install/update app deps in addition to dev)
await installOrRebuild(config, results[0], {
frameworkInfo: {version: results[1], useCustomDist: true},
platform: args.platform,
arch: args.arch,
productionDeps: createLazyProductionDeps(results[0], null),
}, results[0] !== projectDir)
}
// error in dev mode without babel
if (!(e instanceof ReferenceError)) {
throw e
}
}
const projectDir = process.cwd()
const packageMetadata = new Lazy(() => orNullIfFileNotExist(readJson(path.join(projectDir, "package.json"))))
const config = await getConfig(projectDir, null, null, packageMetadata)
const results = await Promise.all([
computeDefaultAppDirectory(projectDir, use(config.directories, it => it!.app)),
getElectronVersion(projectDir, config, packageMetadata),
])
// if two package.json — force full install (user wants to install/update app deps in addition to dev)
await installOrRebuild(config, results[0], {
frameworkInfo: {version: results[1], useCustomDist: true},
platform: args.platform,
arch: args.arch,
productionDeps: createLazyProductionDeps(results[0], null),
}, results[0] !== projectDir)
}