123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import { dealias, isAsyncFile, isAsyncNoFile, isSyncFile, isSyncNoFile, } from './options.js';
- export const makeCommand = (syncFile, asyncFile, syncNoFile, asyncNoFile, validate) => {
- return Object.assign((opt_ = [], entries, cb) => {
- if (Array.isArray(opt_)) {
- entries = opt_;
- opt_ = {};
- }
- if (typeof entries === 'function') {
- cb = entries;
- entries = undefined;
- }
- if (!entries) {
- entries = [];
- }
- else {
- entries = Array.from(entries);
- }
- const opt = dealias(opt_);
- validate?.(opt, entries);
- if (isSyncFile(opt)) {
- if (typeof cb === 'function') {
- throw new TypeError('callback not supported for sync tar functions');
- }
- return syncFile(opt, entries);
- }
- else if (isAsyncFile(opt)) {
- const p = asyncFile(opt, entries);
- // weirdness to make TS happy
- const c = cb ? cb : undefined;
- return c ? p.then(() => c(), c) : p;
- }
- else if (isSyncNoFile(opt)) {
- if (typeof cb === 'function') {
- throw new TypeError('callback not supported for sync tar functions');
- }
- return syncNoFile(opt, entries);
- }
- else if (isAsyncNoFile(opt)) {
- if (typeof cb === 'function') {
- throw new TypeError('callback only supported with file option');
- }
- return asyncNoFile(opt, entries);
- /* c8 ignore start */
- }
- else {
- throw new Error('impossible options??');
- }
- /* c8 ignore stop */
- }, {
- syncFile,
- asyncFile,
- syncNoFile,
- asyncNoFile,
- validate,
- });
- };
- //# sourceMappingURL=make-command.js.map
|