mirror of
https://code.forgejo.org/actions/setup-node.git
synced 2025-05-20 05:14:44 +00:00
.
This commit is contained in:
parent
00c3b50fca
commit
ae5dcb46c8
7331 changed files with 1784502 additions and 0 deletions
86
node_modules/util.promisify/implementation.js
generated
vendored
Normal file
86
node_modules/util.promisify/implementation.js
generated
vendored
Normal file
|
@ -0,0 +1,86 @@
|
|||
'use strict';
|
||||
|
||||
var isES5 = typeof Object.defineProperty === 'function'
|
||||
&& typeof Object.defineProperties === 'function'
|
||||
&& typeof Object.getPrototypeOf === 'function'
|
||||
&& typeof Object.setPrototypeOf === 'function';
|
||||
|
||||
if (!isES5) {
|
||||
throw new TypeError('util.promisify requires a true ES5 environment');
|
||||
}
|
||||
|
||||
var getOwnPropertyDescriptors = require('object.getownpropertydescriptors');
|
||||
|
||||
if (typeof Promise !== 'function') {
|
||||
throw new TypeError('`Promise` must be globally available for util.promisify to work.');
|
||||
}
|
||||
|
||||
var slice = Function.call.bind(Array.prototype.slice);
|
||||
var concat = Function.call.bind(Array.prototype.concat);
|
||||
var forEach = Function.call.bind(Array.prototype.forEach);
|
||||
|
||||
var hasSymbols = typeof Symbol === 'function' && typeof Symbol('') === 'symbol';
|
||||
|
||||
var kCustomPromisifiedSymbol = hasSymbols ? Symbol('util.promisify.custom') : null;
|
||||
var kCustomPromisifyArgsSymbol = hasSymbols ? Symbol('customPromisifyArgs') : null;
|
||||
|
||||
module.exports = function promisify(orig) {
|
||||
if (typeof orig !== 'function') {
|
||||
var error = new TypeError('The "original" argument must be of type function');
|
||||
error.name = 'TypeError [ERR_INVALID_ARG_TYPE]';
|
||||
error.code = 'ERR_INVALID_ARG_TYPE';
|
||||
throw error;
|
||||
}
|
||||
|
||||
if (hasSymbols && orig[kCustomPromisifiedSymbol]) {
|
||||
var customFunction = orig[kCustomPromisifiedSymbol];
|
||||
if (typeof customFunction !== 'function') {
|
||||
throw new TypeError('The [util.promisify.custom] property must be a function');
|
||||
}
|
||||
Object.defineProperty(customFunction, kCustomPromisifiedSymbol, {
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
value: customFunction,
|
||||
writable: false
|
||||
});
|
||||
return customFunction;
|
||||
}
|
||||
|
||||
// Names to create an object from in case the callback receives multiple
|
||||
// arguments, e.g. ['stdout', 'stderr'] for child_process.exec.
|
||||
var argumentNames = orig[kCustomPromisifyArgsSymbol];
|
||||
|
||||
var promisified = function fn() {
|
||||
var args = slice(arguments);
|
||||
var self = this; // eslint-disable-line no-invalid-this
|
||||
return new Promise(function (resolve, reject) {
|
||||
orig.apply(self, concat(args, function (err) {
|
||||
var values = arguments.length > 1 ? slice(arguments, 1) : [];
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else if (typeof argumentNames !== 'undefined' && values.length > 1) {
|
||||
var obj = {};
|
||||
forEach(argumentNames, function (name, index) {
|
||||
obj[name] = values[index];
|
||||
});
|
||||
resolve(obj);
|
||||
} else {
|
||||
resolve(values[0]);
|
||||
}
|
||||
}));
|
||||
});
|
||||
};
|
||||
|
||||
Object.setPrototypeOf(promisified, Object.getPrototypeOf(orig));
|
||||
|
||||
Object.defineProperty(promisified, kCustomPromisifiedSymbol, {
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
value: promisified,
|
||||
writable: false
|
||||
});
|
||||
return Object.defineProperties(promisified, getOwnPropertyDescriptors(orig));
|
||||
};
|
||||
|
||||
module.exports.custom = kCustomPromisifiedSymbol;
|
||||
module.exports.customPromisifyArgs = kCustomPromisifyArgsSymbol;
|
Loading…
Add table
Add a link
Reference in a new issue