github.com/jfrog/frogbot@v1.1.1-0.20231221090046-821a26f50338/action/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js (about) 1 export function endpointsToMethods(octokit, endpointsMap) { 2 const newMethods = {}; 3 for (const [scope, endpoints] of Object.entries(endpointsMap)) { 4 for (const [methodName, endpoint] of Object.entries(endpoints)) { 5 const [route, defaults, decorations] = endpoint; 6 const [method, url] = route.split(/ /); 7 const endpointDefaults = Object.assign({ method, url }, defaults); 8 if (!newMethods[scope]) { 9 newMethods[scope] = {}; 10 } 11 const scopeMethods = newMethods[scope]; 12 if (decorations) { 13 scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); 14 continue; 15 } 16 scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); 17 } 18 } 19 return newMethods; 20 } 21 function decorate(octokit, scope, methodName, defaults, decorations) { 22 const requestWithDefaults = octokit.request.defaults(defaults); 23 /* istanbul ignore next */ 24 function withDecorations(...args) { 25 // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 26 let options = requestWithDefaults.endpoint.merge(...args); 27 // There are currently no other decorations than `.mapToData` 28 if (decorations.mapToData) { 29 options = Object.assign({}, options, { 30 data: options[decorations.mapToData], 31 [decorations.mapToData]: undefined, 32 }); 33 return requestWithDefaults(options); 34 } 35 if (decorations.renamed) { 36 const [newScope, newMethodName] = decorations.renamed; 37 octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`); 38 } 39 if (decorations.deprecated) { 40 octokit.log.warn(decorations.deprecated); 41 } 42 if (decorations.renamedParameters) { 43 // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 44 const options = requestWithDefaults.endpoint.merge(...args); 45 for (const [name, alias] of Object.entries(decorations.renamedParameters)) { 46 if (name in options) { 47 octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); 48 if (!(alias in options)) { 49 options[alias] = options[name]; 50 } 51 delete options[name]; 52 } 53 } 54 return requestWithDefaults(options); 55 } 56 // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 57 return requestWithDefaults(...args); 58 } 59 return Object.assign(withDecorations, requestWithDefaults); 60 }