Commit d3774b2
Changed files (16)
build/cli.js
build/core.cjs
@@ -380,6 +380,7 @@ function formatCmd(cmd) {
}
// src/core.ts
+var child_process = __toESM(require("child_process"), 1);
var import_node_path = __toESM(require("path"), 1);
var os = __toESM(require("os"), 1);
var import_vendor_core3 = require("./vendor-core.cjs");
@@ -1011,14 +1012,7 @@ function cd(dir) {
function kill(_0) {
return __async(this, arguments, function* (pid, signal = $.killSignal) {
if (import_node_process2.default.platform === "win32" && (yield new Promise((resolve) => {
- (0, import_vendor_core2.exec)({
- cmd: `taskkill /pid ${pid} /t /f`,
- on: {
- end({ error }) {
- resolve(!error);
- }
- }
- });
+ child_process.exec(`taskkill /pid ${pid} /t /f`, (err) => resolve(!err));
})))
return;
for (const p of yield import_vendor_core2.ps.tree({ pid, recursive: true })) {
build/core.d.ts
@@ -13,7 +13,7 @@ export { default as path } from 'node:path';
export * as os from 'node:os';
export { log, type LogEntry } from './log.js';
export { chalk, which, ps } from './vendor-core.js';
-export { quote, quotePowerShell } from './util.js';
+export { type Duration, quote, quotePowerShell } from './util.js';
declare const CWD: unique symbol;
declare const SYNC: unique symbol;
export declare function within<R>(callback: () => R): R;
build/goods.d.ts
@@ -1,7 +1,12 @@
+import { Buffer } from 'node:buffer';
import { Readable } from 'node:stream';
+import { type Mode } from 'node:fs';
import { type ProcessPromise } from './core.js';
import { type Duration } from './util.js';
import { type RequestInfo, type RequestInit, minimist } from './vendor.js';
+export declare function tempdir(prefix?: string, mode?: Mode): string;
+export declare function tempfile(name?: string, data?: string | Buffer, mode?: Mode): string;
+export { tempdir as tmpdir, tempfile as tmpfile };
type ArgvOpts = minimist.Opts & {
camelCase?: boolean;
parseBoolean?: boolean;
@@ -28,4 +33,3 @@ export declare function retry<T>(count: number, duration: Duration | Generator<n
export declare function expBackoff(max?: Duration, delay?: Duration): Generator<number, void, unknown>;
export declare function spinner<T>(callback: () => T): Promise<T>;
export declare function spinner<T>(title: string, callback: () => T): Promise<T>;
-export {};
build/index.cjs
@@ -34,16 +34,14 @@ __export(index_exports, {
parseArgv: () => parseArgv,
question: () => question,
quiet: () => quiet,
- quote: () => import_util2.quote,
- quotePowerShell: () => import_util2.quotePowerShell,
retry: () => retry,
sleep: () => sleep,
spinner: () => spinner,
stdin: () => stdin,
- tempdir: () => import_util2.tempdir,
- tempfile: () => import_util2.tempfile,
- tmpdir: () => import_util2.tempdir,
- tmpfile: () => import_util2.tempfile,
+ tempdir: () => tempdir,
+ tempfile: () => tempfile,
+ tmpdir: () => tempdir,
+ tmpfile: () => tempfile,
updateArgv: () => updateArgv,
version: () => version
});
@@ -56,9 +54,23 @@ var import_node_buffer = require("buffer");
var import_node_process = __toESM(require("process"), 1);
var import_node_readline = require("readline");
var import_node_stream = require("stream");
+var import_node_fs = __toESM(require("fs"), 1);
+var import_node_path = __toESM(require("path"), 1);
+var import_node_os = __toESM(require("os"), 1);
var import_core = require("./core.cjs");
var import_util = require("./util.cjs");
var import_vendor = require("./vendor.cjs");
+function tempdir(prefix = `zx-${(0, import_util.randomId)()}`, mode) {
+ const dirpath = import_node_path.default.join(import_node_os.default.tmpdir(), prefix);
+ import_node_fs.default.mkdirSync(dirpath, { recursive: true, mode });
+ return dirpath;
+}
+function tempfile(name, data, mode) {
+ const filepath = name ? import_node_path.default.join(tempdir(), name) : import_node_path.default.join(import_node_os.default.tmpdir(), `zx-${(0, import_util.randomId)()}`);
+ if (data === void 0) import_node_fs.default.closeSync(import_node_fs.default.openSync(filepath, "w", mode));
+ else import_node_fs.default.writeFileSync(filepath, data, { mode });
+ return filepath;
+}
var parseArgv = (args = import_node_process.default.argv.slice(2), opts = {}, defs = {}) => Object.entries((0, import_vendor.minimist)(args, opts)).reduce(
(m, [k, v]) => {
const kTrans = opts.camelCase ? import_util.toCamelCase : import_util.identity;
@@ -236,7 +248,6 @@ function spinner(title, callback) {
// src/index.ts
var import_vendor3 = require("./vendor.cjs");
-var import_util2 = require("./util.cjs");
var import_meta = {};
var _a;
var VERSION = ((_a = import_vendor2.fs.readJsonSync(new URL("../package.json", import_meta_url), {
@@ -267,8 +278,6 @@ function quiet(promise) {
parseArgv,
question,
quiet,
- quote,
- quotePowerShell,
retry,
sleep,
spinner,
build/index.d.ts
@@ -7,7 +7,6 @@ export * from './goods.js';
export { minimist, dotenv, fs, YAML, glob, glob as globby } from './vendor.js';
export declare const VERSION: string;
export declare const version: string;
-export { type Duration, quote, quotePowerShell, tempdir, tempdir as tmpdir, tempfile, tempfile as tmpfile, } from './util.js';
/**
* @deprecated Use $`cmd`.nothrow() instead.
*/
build/index.js
@@ -17,8 +17,6 @@ const {
parseArgv,
question,
quiet,
- quote,
- quotePowerShell,
retry,
sleep,
spinner,
@@ -40,6 +38,8 @@ const {
os,
path,
ps,
+ quote,
+ quotePowerShell,
resolveDefaults,
syncProcessCwd,
useBash,
@@ -64,8 +64,6 @@ export {
parseArgv,
question,
quiet,
- quote,
- quotePowerShell,
retry,
sleep,
spinner,
@@ -87,6 +85,8 @@ export {
os,
path,
ps,
+ quote,
+ quotePowerShell,
resolveDefaults,
syncProcessCwd,
useBash,
build/util.cjs
@@ -27,27 +27,12 @@ __export(util_exports, {
quote: () => quote,
quotePowerShell: () => quotePowerShell,
randomId: () => randomId,
- tempdir: () => tempdir,
- tempfile: () => tempfile,
toCamelCase: () => toCamelCase
});
module.exports = __toCommonJS(util_exports);
-var import_node_os = __toESM(require("os"), 1);
var import_node_path = __toESM(require("path"), 1);
-var import_node_fs = __toESM(require("fs"), 1);
var import_node_process = __toESM(require("process"), 1);
var import_vendor_core = require("./vendor-core.cjs");
-function tempdir(prefix = `zx-${randomId()}`, mode) {
- const dirpath = import_node_path.default.join(import_node_os.default.tmpdir(), prefix);
- import_node_fs.default.mkdirSync(dirpath, { recursive: true, mode });
- return dirpath;
-}
-function tempfile(name, data, mode) {
- const filepath = name ? import_node_path.default.join(tempdir(), name) : import_node_path.default.join(import_node_os.default.tmpdir(), `zx-${randomId()}`);
- if (data === void 0) import_node_fs.default.closeSync(import_node_fs.default.openSync(filepath, "w", mode));
- else import_node_fs.default.writeFileSync(filepath, data, { mode });
- return filepath;
-}
function noop() {
}
function identity(v) {
@@ -135,7 +120,5 @@ var getLines = (chunk, next, delimiter) => {
quote,
quotePowerShell,
randomId,
- tempdir,
- tempfile,
toCamelCase
});
\ No newline at end of file
build/util.d.ts
@@ -1,9 +1,6 @@
-import { type Mode } from 'node:fs';
import { type Buffer } from 'node:buffer';
import { type TSpawnStoreChunks } from './vendor-core.js';
export { isStringLiteral } from './vendor-core.js';
-export declare function tempdir(prefix?: string, mode?: Mode): string;
-export declare function tempfile(name?: string, data?: string | Buffer, mode?: Mode): string;
export declare function noop(): void;
export declare function identity<T>(v: T): T;
export declare function randomId(): string;
src/core.ts
@@ -70,7 +70,7 @@ export { default as path } from 'node:path'
export * as os from 'node:os'
export { log, type LogEntry } from './log.ts'
export { chalk, which, ps } from './vendor-core.ts'
-export { quote, quotePowerShell } from './util.ts'
+export { type Duration, quote, quotePowerShell } from './util.ts'
const CWD = Symbol('processCwd')
const SYNC = Symbol('syncExec')
src/goods.ts
@@ -16,6 +16,9 @@ import { Buffer } from 'node:buffer'
import process from 'node:process'
import { createInterface } from 'node:readline'
import { Readable } from 'node:stream'
+import fs, { type Mode } from 'node:fs'
+import path from 'node:path'
+import os from 'node:os'
import { $, within, ProcessOutput, type ProcessPromise } from './core.ts'
import {
type Duration,
@@ -24,6 +27,7 @@ import {
isStringLiteral,
parseBool,
parseDuration,
+ randomId,
toCamelCase,
} from './util.ts'
import {
@@ -33,6 +37,33 @@ import {
minimist,
} from './vendor.ts'
+export function tempdir(
+ prefix: string = `zx-${randomId()}`,
+ mode?: Mode
+): string {
+ const dirpath = path.join(os.tmpdir(), prefix)
+ fs.mkdirSync(dirpath, { recursive: true, mode })
+
+ return dirpath
+}
+
+export function tempfile(
+ name?: string,
+ data?: string | Buffer,
+ mode?: Mode
+): string {
+ const filepath = name
+ ? path.join(tempdir(), name)
+ : path.join(os.tmpdir(), `zx-${randomId()}`)
+
+ if (data === undefined) fs.closeSync(fs.openSync(filepath, 'w', mode))
+ else fs.writeFileSync(filepath, data, { mode })
+
+ return filepath
+}
+
+export { tempdir as tmpdir, tempfile as tmpfile }
+
type ArgvOpts = minimist.Opts & { camelCase?: boolean; parseBoolean?: boolean }
export const parseArgv = (
src/index.ts
@@ -26,16 +26,6 @@ export const VERSION: string =
export const version: string = VERSION
-export {
- type Duration,
- quote,
- quotePowerShell,
- tempdir,
- tempdir as tmpdir,
- tempfile,
- tempfile as tmpfile,
-} from './util.ts'
-
/**
* @deprecated Use $`cmd`.nothrow() instead.
*/
src/util.ts
@@ -12,40 +12,13 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-import os from 'node:os'
import path from 'node:path'
-import fs, { type Mode } from 'node:fs'
import { type Buffer } from 'node:buffer'
import process from 'node:process'
import { type TSpawnStoreChunks } from './vendor-core.ts'
export { isStringLiteral } from './vendor-core.ts'
-export function tempdir(
- prefix: string = `zx-${randomId()}`,
- mode?: Mode
-): string {
- const dirpath = path.join(os.tmpdir(), prefix)
- fs.mkdirSync(dirpath, { recursive: true, mode })
-
- return dirpath
-}
-
-export function tempfile(
- name?: string,
- data?: string | Buffer,
- mode?: Mode
-): string {
- const filepath = name
- ? path.join(tempdir(), name)
- : path.join(os.tmpdir(), `zx-${randomId()}`)
-
- if (data === undefined) fs.closeSync(fs.openSync(filepath, 'w', mode))
- else fs.writeFileSync(filepath, data, { mode })
-
- return filepath
-}
-
export function noop() {}
export function identity<T>(v: T): T {
test/goods.test.ts
@@ -15,7 +15,7 @@
import assert from 'node:assert'
import { test, describe, after } from 'node:test'
import { Duplex } from 'node:stream'
-import { $, chalk, fs, path, tempfile, dotenv } from '../src/index.ts'
+import { $, chalk, fs, path, dotenv } from '../src/index.ts'
import {
echo,
sleep,
@@ -28,6 +28,10 @@ import {
retry,
question,
expBackoff,
+ tempfile,
+ tempdir,
+ tmpdir,
+ tmpfile,
} from '../src/goods.ts'
import { Writable } from 'node:stream'
import process from 'node:process'
@@ -442,4 +446,22 @@ ENV5=v5 # comment
})
})
})
+
+ describe('temp*', () => {
+ test('tempdir() creates temporary folders', () => {
+ assert.equal(tmpdir, tempdir)
+ assert.match(tempdir(), /\/zx-/)
+ assert.match(tempdir('foo'), /\/foo$/)
+ })
+
+ test('tempfile() creates temporary files', () => {
+ assert.equal(tmpfile, tempfile)
+ assert.match(tempfile(), /\/zx-.+/)
+ assert.match(tempfile('foo.txt'), /\/zx-.+\/foo\.txt$/)
+
+ const tf = tempfile('bar.txt', 'bar')
+ assert.match(tf, /\/zx-.+\/bar\.txt$/)
+ assert.equal(fs.readFileSync(tf, 'utf-8'), 'bar')
+ })
+ })
})
test/util.test.js
@@ -13,7 +13,6 @@
// limitations under the License.
import assert from 'node:assert'
-import fs from 'node:fs'
import { test, describe } from 'node:test'
import {
isString,
@@ -25,8 +24,6 @@ import {
quotePowerShell,
randomId,
// normalizeMultilinePieces,
- tempdir,
- tempfile,
preferLocalBin,
toCamelCase,
getLast,
@@ -91,20 +88,6 @@ describe('util', () => {
// )
// })
- test('tempdir() creates temporary folders', () => {
- assert.match(tempdir(), /\/zx-/)
- assert.match(tempdir('foo'), /\/foo$/)
- })
-
- test('tempfile() creates temporary files', () => {
- assert.match(tempfile(), /\/zx-.+/)
- assert.match(tempfile('foo.txt'), /\/zx-.+\/foo\.txt$/)
-
- const tf = tempfile('bar.txt', 'bar')
- assert.match(tf, /\/zx-.+\/bar\.txt$/)
- assert.equal(fs.readFileSync(tf, 'utf-8'), 'bar')
- })
-
test('preferLocalBin()', () => {
const env = {
PATH: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin',
.size-limit.json
@@ -29,7 +29,7 @@
"build/globals.js",
"build/deno.js"
],
- "limit": "813.70 kB",
+ "limit": "813.45 kB",
"brotli": false,
"gzip": false
},
@@ -62,7 +62,7 @@
"README.md",
"LICENSE"
],
- "limit": "869.70 kB",
+ "limit": "869.40 kB",
"brotli": false,
"gzip": false
}