chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
// Require the real yargs-parser module by resolving its actual path
|
||||
// to avoid circular reference from moduleNameMapper
|
||||
const path = require('path');
|
||||
const realYargsParserPath = require.resolve('yargs-parser', {
|
||||
paths: [path.join(__dirname, '../../node_modules')],
|
||||
});
|
||||
const yargsParser = require(realYargsParserPath);
|
||||
|
||||
// yargs-parser exports a function directly.
|
||||
// We need to handle both import styles:
|
||||
// - import * as yargs from 'yargs-parser' -> yargs(command, options)
|
||||
// - import yargs from 'yargs-parser' -> yargs(command, options)
|
||||
//
|
||||
// Use a Proxy to delegate all property access to the real yargsParser function.
|
||||
|
||||
const handler = {
|
||||
get(target, prop) {
|
||||
if (prop === '__esModule') return true;
|
||||
if (prop === 'default') return yargsParser;
|
||||
return yargsParser[prop];
|
||||
},
|
||||
apply(target, thisArg, args) {
|
||||
return yargsParser.apply(thisArg, args);
|
||||
},
|
||||
has(target, prop) {
|
||||
return prop === '__esModule' || prop === 'default' || prop in yargsParser;
|
||||
},
|
||||
ownKeys() {
|
||||
return [...Object.keys(yargsParser), '__esModule', 'default'];
|
||||
},
|
||||
getOwnPropertyDescriptor(target, prop) {
|
||||
if (prop === '__esModule') {
|
||||
return { configurable: true, enumerable: true, value: true };
|
||||
}
|
||||
if (prop === 'default') {
|
||||
return { configurable: true, enumerable: true, value: yargsParser };
|
||||
}
|
||||
const desc = Object.getOwnPropertyDescriptor(yargsParser, prop);
|
||||
if (desc) return desc;
|
||||
if (prop in yargsParser) {
|
||||
return { configurable: true, enumerable: true, value: yargsParser[prop] };
|
||||
}
|
||||
return undefined;
|
||||
},
|
||||
};
|
||||
|
||||
// Use a function as the proxy target so 'apply' trap works
|
||||
module.exports = new Proxy(function () {}, handler);
|
||||
Reference in New Issue
Block a user