feat: support dns-result-order Node.js cli flag (#39376)
* feat: support dns-result-order Node.js cli flag * chore: update docs Co-authored-by: Erick Zhao <erick@hotmail.ca> * chore: remove patch --------- Co-authored-by: Erick Zhao <erick@hotmail.ca>
This commit is contained in:
parent
ef5d5f888d
commit
bee5d94886
4 changed files with 43 additions and 3 deletions
|
@ -291,6 +291,15 @@ Print stack traces for deprecations.
|
||||||
|
|
||||||
Print stack traces for process warnings (including deprecations).
|
Print stack traces for process warnings (including deprecations).
|
||||||
|
|
||||||
|
### `--dns-result-order=order`
|
||||||
|
|
||||||
|
Set the default value of the `verbatim` parameter in the Node.js [`dns.lookup()`](https://nodejs.org/api/dns.html#dnslookuphostname-options-callback) and [`dnsPromises.lookup()`](https://nodejs.org/api/dns.html#dnspromiseslookuphostname-options) functions. The value could be:
|
||||||
|
|
||||||
|
* `ipv4first`: sets default `verbatim` `false`.
|
||||||
|
* `verbatim`: sets default `verbatim` `true`.
|
||||||
|
|
||||||
|
The default is `verbatim` and `dns.setDefaultResultOrder()` have higher priority than `--dns-result-order`.
|
||||||
|
|
||||||
[app]: app.md
|
[app]: app.md
|
||||||
[append-switch]: command-line.md#commandlineappendswitchswitch-value
|
[append-switch]: command-line.md#commandlineappendswitchswitch-value
|
||||||
[debugging-main-process]: ../tutorial/debugging-main-process.md
|
[debugging-main-process]: ../tutorial/debugging-main-process.md
|
||||||
|
|
|
@ -244,9 +244,13 @@ bool IsAllowedOption(base::StringPiece option) {
|
||||||
});
|
});
|
||||||
|
|
||||||
// This should be aligned with what's possible to set via the process object.
|
// This should be aligned with what's possible to set via the process object.
|
||||||
static constexpr auto options = base::MakeFixedFlatSet<base::StringPiece>(
|
static constexpr auto options = base::MakeFixedFlatSet<base::StringPiece>({
|
||||||
{"--trace-warnings", "--trace-deprecation", "--throw-deprecation",
|
"--trace-warnings",
|
||||||
"--no-deprecation"});
|
"--trace-deprecation",
|
||||||
|
"--throw-deprecation",
|
||||||
|
"--no-deprecation",
|
||||||
|
"--dns-result-order",
|
||||||
|
});
|
||||||
|
|
||||||
if (debug_options.contains(option))
|
if (debug_options.contains(option))
|
||||||
return electron::fuses::IsNodeCliInspectEnabled();
|
return electron::fuses::IsNodeCliInspectEnabled();
|
||||||
|
|
|
@ -257,6 +257,30 @@ describe('utilityProcess module', () => {
|
||||||
child.stdout!.on('data', listener);
|
child.stdout!.on('data', listener);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('supports changing dns verbatim with --dns-result-order', (done) => {
|
||||||
|
const child = utilityProcess.fork(path.join(fixturesPath, 'dns-result-order.js'), [], {
|
||||||
|
stdio: 'pipe',
|
||||||
|
execArgv: ['--dns-result-order=ipv4first']
|
||||||
|
});
|
||||||
|
|
||||||
|
let output = '';
|
||||||
|
const cleanup = () => {
|
||||||
|
child.stderr!.removeListener('data', listener);
|
||||||
|
child.stdout!.removeListener('data', listener);
|
||||||
|
child.once('exit', () => { done(); });
|
||||||
|
child.kill();
|
||||||
|
};
|
||||||
|
|
||||||
|
const listener = (data: Buffer) => {
|
||||||
|
output += data;
|
||||||
|
expect(output.trim()).to.contain('ipv4first', 'default verbatim should be ipv4first');
|
||||||
|
cleanup();
|
||||||
|
};
|
||||||
|
|
||||||
|
child.stderr!.on('data', listener);
|
||||||
|
child.stdout!.on('data', listener);
|
||||||
|
});
|
||||||
|
|
||||||
ifit(process.platform !== 'win32')('supports redirecting stdout to parent process', async () => {
|
ifit(process.platform !== 'win32')('supports redirecting stdout to parent process', async () => {
|
||||||
const result = 'Output from utility process';
|
const result = 'Output from utility process';
|
||||||
const appProcess = childProcess.spawn(process.execPath, [path.join(fixturesPath, 'inherit-stdout'), `--payload=${result}`]);
|
const appProcess = childProcess.spawn(process.execPath, [path.join(fixturesPath, 'inherit-stdout'), `--payload=${result}`]);
|
||||||
|
|
3
spec/fixtures/api/utility-process/dns-result-order.js
vendored
Normal file
3
spec/fixtures/api/utility-process/dns-result-order.js
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
const dns = require('node:dns');
|
||||||
|
console.log(dns.getDefaultResultOrder());
|
||||||
|
process.exit(0);
|
Loading…
Reference in a new issue