本文整理汇总了TypeScript中fs-extra-p.close函数的典型用法代码示例。如果您正苦于以下问题:TypeScript close函数的具体用法?TypeScript close怎么用?TypeScript close使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了close函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: build
async build(appOutDir: string, arch: Arch): Promise<any> {
const packager = this.packager
// avoid spaces in the file name
const image = path.join(this.outDir, packager.generateName("AppImage", arch, true))
const appInfo = packager.appInfo
await unlinkIfExists(image)
const appImagePath = await appImagePathPromise
const args = [
"-joliet", "on",
"-volid", "AppImage",
"-dev", image,
"-padding", "0",
"-map", appOutDir, "/usr/bin",
"-map", path.join(__dirname, "..", "..", "templates", "linux", "AppRun.sh"), `/AppRun`,
"-map", await this.desktopEntry, `/${appInfo.name}.desktop`,
"-move", `/usr/bin/${appInfo.productFilename}`, `/usr/bin/${appInfo.name}`,
]
for (let [from, to] of (await this.helper.icons)) {
args.push("-map", from, `/usr/share/icons/default/${to}`)
}
// must be after this.helper.icons call
if (this.helper.maxIconPath == null) {
throw new Error("Icon is not provided")
}
args.push("-map", this.helper.maxIconPath, "/.DirIcon")
args.push("-chown_r", "0", "/", "--")
args.push("-zisofs", `level=${packager.devMetadata.build.compression === "store" ? "0" : "9"}:block_size=128k:by_magic=off`)
args.push("set_filter_r", "--zisofs", "/")
await exec(process.env.USE_SYSTEM_FPM === "true" || process.arch !== "x64" ? "xorriso" : path.join(appImagePath, "xorriso"), args)
await new BluebirdPromise((resolve, reject) => {
const rd = createReadStream(path.join(appImagePath, arch === Arch.ia32 ? "32" : "64", "runtime"))
rd.on("error", reject)
const wr = createWriteStream(image, {flags: "r+"})
wr.on("error", reject)
wr.on("finish", resolve)
rd.pipe(wr)
})
const fd = await open(image, "r+")
try {
const magicData = new Buffer([0x41, 0x49, 0x01])
await write(fd, magicData, 0, magicData.length, 8)
}
finally {
await close(fd)
}
await chmod(image, "0755")
packager.dispatchArtifactCreated(image, packager.generateName("AppImage", arch, true))
}
示例2: readEmbeddedBlockMapData
async function readEmbeddedBlockMapData(file: string): Promise<BlockMap> {
const fd = await open(file, "r")
try {
const fileSize = (await fstat(fd)).size
const sizeBuffer = Buffer.allocUnsafe(4)
await read(fd, sizeBuffer, 0, sizeBuffer.length, fileSize - sizeBuffer.length)
const dataBuffer = Buffer.allocUnsafe(sizeBuffer.readUInt32BE(0))
await read(fd, dataBuffer, 0, dataBuffer.length, fileSize - sizeBuffer.length - dataBuffer.length)
await close(fd)
return readBlockMap(dataBuffer)
}
catch (e) {
await close(fd)
throw e
}
}
开发者ID:electron-userland,项目名称:electron-builder,代码行数:18,代码来源:FileWithEmbeddedBlockMapDifferentialDownloader.ts
示例3: readEmbeddedBlockMapData
export async function readEmbeddedBlockMapData(file: string) {
const fd = await open(file, "r")
try {
const fileSize = (await fstat(fd)).size
const sizeBuffer = Buffer.allocUnsafe(4)
await read(fd, sizeBuffer, 0, sizeBuffer.length, fileSize - sizeBuffer.length)
const dataBuffer = Buffer.allocUnsafe(sizeBuffer.readUInt32BE(0))
await read(fd, dataBuffer, 0, dataBuffer.length, fileSize - sizeBuffer.length - dataBuffer.length)
await close(fd)
const inflateRaw: any = BluebirdPromise.promisify(require("zlib").inflateRaw)
return (await inflateRaw(dataBuffer)).toString()
}
catch (e) {
await close(fd)
throw e
}
}
示例4: checkIcon
async function checkIcon(file: string): Promise<void> {
const fd = await open(file, "r")
const buffer = new Buffer(512)
try {
await read(fd, buffer, 0, buffer.length, 0)
}
finally {
await close(fd)
}
const sizes = parseIco(buffer)
for (let size of sizes) {
if (size.w >= 256 && size.h >= 256) {
return
}
}
throw new Error("Windows icon image size must be at least 256x256")
}
示例5: safeLoad
packed: async context => {
const outDir = context.outDir
outDirs.push(outDir)
const targetOutDir = path.join(outDir, "nsis-web")
const updateInfoFile = path.join(targetOutDir, "latest.yml")
const updateInfo: UpdateInfo = safeLoad(await readFile(updateInfoFile, "utf-8"))
const fd = await open(path.join(targetOutDir, `TestApp-${version}-x64.nsis.7z`), "r")
try {
const packageInfo = updateInfo.packages!!.x64
const buffer = Buffer.allocUnsafe(packageInfo.blockMapSize!!)
await read(fd, buffer, 0, buffer.length, packageInfo.size - buffer.length)
const inflateRaw: any = BluebirdPromise.promisify(require("zlib").inflateRaw)
const blockMapData = (await inflateRaw(buffer)).toString()
await writeFile(path.join(outDir, "win-unpacked", BLOCK_MAP_FILE_NAME), blockMapData)
}
finally {
await close(fd)
}
}
示例6: checkIcon
async function checkIcon(file: string): Promise<void> {
const fd = await open(file, "r")
const buffer = new Buffer(512)
try {
await read(fd, buffer, 0, buffer.length, 0)
}
finally {
await close(fd)
}
if (!isIco(buffer)) {
throw new Error(`Windows icon is not valid ico file, please fix "${file}"`)
}
const sizes = parseIco(buffer)
for (let size of sizes) {
if (size!.w >= 256 && size!.h >= 256) {
return
}
}
throw new Error(`Windows icon size must be at least 256x256, please fix "${file}"`)
}
示例7: close
.then(() => close(oldFileFd))
示例8: build
async build(appOutDir: string, arch: Arch): Promise<any> {
const packager = this.packager
const image = path.join(this.outDir, packager.generateName(null, arch, true))
const appInfo = packager.appInfo
await unlinkIfExists(image)
const appImagePath = await appImagePathPromise
const args = [
"-joliet", "on",
"-volid", "AppImage",
"-dev", image,
"-padding", "0",
"-map", appOutDir, "/usr/bin",
"-map", path.join(__dirname, "..", "..", "templates", "linux", "AppRun.sh"), `/AppRun`,
"-map", await this.desktopEntry, `/${appInfo.name}.desktop`,
"-move", `/usr/bin/${appInfo.productFilename}`, "/usr/bin/app",
]
for (let [from, to] of (await this.helper.icons)) {
args.push("-map", from, `/usr/share/icons/default/${to}`)
}
// must be after this.helper.icons call
if (this.helper.maxIconPath == null) {
throw new Error("Icon is not provided")
}
args.push("-map", this.helper.maxIconPath, "/.DirIcon")
// args.push("-zisofs", `level=0:block_size=128k:by_magic=off`, "-chown_r", "0")
// args.push("/", "--", "set_filter_r", "--zisofs", "/")
await exec(process.platform === "darwin" ? path.join(appImagePath, "xorriso") : "xorriso", args)
await new BluebirdPromise((resolve, reject) => {
const rd = createReadStream(path.join(appImagePath, arch === Arch.ia32 ? "32" : "64", "runtime"))
rd.on("error", reject)
const wr = createWriteStream(image)
wr.on("error", reject)
wr.on("finish", resolve)
rd.pipe(wr)
})
const fd = await open(image, "r+")
try {
const magicData = new Buffer([0x41, 0x49, 0x01])
await write(fd, magicData, 0, magicData.length, 8)
}
finally {
await close(fd)
}
await chmod(image, "0755")
// we archive because you cannot distribute exe as is - e.g. Ubuntu clear exec flag and user cannot just click on AppImage to run
// also, LZMA compression - 29MB vs zip 42MB
// we use slow xz instead of 7za because 7za doesn't preserve exec file permissions for xz
await spawn("xz", ["--x86", "--lzma2", "--compress", "--force", packager.devMetadata.build.compression === "store" ? "-0" : "-9e", image], {
cwd: path.dirname(image),
stdio: ["ignore", debug.enabled ? "inherit" : "ignore", "inherit"],
})
packager.dispatchArtifactCreated(image)
}
示例9: close
.finally(() => close(oldFileFd))