mirror of
https://github.com/shimataro/ssh-key-action.git
synced 2025-06-19 22:52:10 +10:00
* first action! (#1)
This commit is contained in:
parent
8deacc95b1
commit
ace1e6a69a
3750 changed files with 1155519 additions and 0 deletions
73
node_modules/got/source/merge.js
generated
vendored
Normal file
73
node_modules/got/source/merge.js
generated
vendored
Normal file
|
@ -0,0 +1,73 @@
|
|||
'use strict';
|
||||
const {URL} = require('url');
|
||||
const is = require('@sindresorhus/is');
|
||||
const knownHookEvents = require('./known-hook-events');
|
||||
|
||||
const merge = (target, ...sources) => {
|
||||
for (const source of sources) {
|
||||
for (const [key, sourceValue] of Object.entries(source)) {
|
||||
if (is.undefined(sourceValue)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const targetValue = target[key];
|
||||
if (is.urlInstance(targetValue) && (is.urlInstance(sourceValue) || is.string(sourceValue))) {
|
||||
target[key] = new URL(sourceValue, targetValue);
|
||||
} else if (is.plainObject(sourceValue)) {
|
||||
if (is.plainObject(targetValue)) {
|
||||
target[key] = merge({}, targetValue, sourceValue);
|
||||
} else {
|
||||
target[key] = merge({}, sourceValue);
|
||||
}
|
||||
} else if (is.array(sourceValue)) {
|
||||
target[key] = merge([], sourceValue);
|
||||
} else {
|
||||
target[key] = sourceValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return target;
|
||||
};
|
||||
|
||||
const mergeOptions = (...sources) => {
|
||||
sources = sources.map(source => source || {});
|
||||
const merged = merge({}, ...sources);
|
||||
|
||||
const hooks = {};
|
||||
for (const hook of knownHookEvents) {
|
||||
hooks[hook] = [];
|
||||
}
|
||||
|
||||
for (const source of sources) {
|
||||
if (source.hooks) {
|
||||
for (const hook of knownHookEvents) {
|
||||
hooks[hook] = hooks[hook].concat(source.hooks[hook]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
merged.hooks = hooks;
|
||||
|
||||
return merged;
|
||||
};
|
||||
|
||||
const mergeInstances = (instances, methods) => {
|
||||
const handlers = instances.map(instance => instance.defaults.handler);
|
||||
const size = instances.length - 1;
|
||||
|
||||
return {
|
||||
methods,
|
||||
options: mergeOptions(...instances.map(instance => instance.defaults.options)),
|
||||
handler: (options, next) => {
|
||||
let iteration = -1;
|
||||
const iterate = options => handlers[++iteration](options, iteration === size ? next : iterate);
|
||||
|
||||
return iterate(options);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = merge;
|
||||
module.exports.options = mergeOptions;
|
||||
module.exports.instances = mergeInstances;
|
Loading…
Add table
Add a link
Reference in a new issue