mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
fs: runtime deprecate fs.F_OK
, fs.R_OK
, fs.W_OK
, fs.X_OK
PR-URL: https://github.com/nodejs/node/pull/49686 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
7a461edbbb
commit
b02cd411c2
@ -3577,12 +3577,15 @@ The [`util.toUSVString()`][] API is deprecated. Please use
|
|||||||
|
|
||||||
<!-- YAML
|
<!-- YAML
|
||||||
changes:
|
changes:
|
||||||
|
- version: REPLACEME
|
||||||
|
pr-url: https://github.com/nodejs/node/pull/49686
|
||||||
|
description: Runtime deprecation.
|
||||||
- version: v20.8.0
|
- version: v20.8.0
|
||||||
pr-url: https://github.com/nodejs/node/pull/49683
|
pr-url: https://github.com/nodejs/node/pull/49683
|
||||||
description: Documentation-only deprecation.
|
description: Documentation-only deprecation.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
Type: Documentation-only
|
Type: Runtime
|
||||||
|
|
||||||
`F_OK`, `R_OK`, `W_OK` and `X_OK` getters exposed directly on `node:fs` are
|
`F_OK`, `R_OK`, `W_OK` and `X_OK` getters exposed directly on `node:fs` are
|
||||||
deprecated. Get them from `fs.constants` or `fs.promises.constants` instead.
|
deprecated. Get them from `fs.constants` or `fs.promises.constants` instead.
|
||||||
|
49
lib/fs.js
49
lib/fs.js
@ -87,6 +87,7 @@ const {
|
|||||||
const { toPathIfFileURL } = require('internal/url');
|
const { toPathIfFileURL } = require('internal/url');
|
||||||
const {
|
const {
|
||||||
customPromisifyArgs: kCustomPromisifyArgsSymbol,
|
customPromisifyArgs: kCustomPromisifyArgsSymbol,
|
||||||
|
deprecate,
|
||||||
emitExperimentalWarning,
|
emitExperimentalWarning,
|
||||||
getLazy,
|
getLazy,
|
||||||
kEmptyObject,
|
kEmptyObject,
|
||||||
@ -3274,10 +3275,50 @@ defineLazyProperties(
|
|||||||
);
|
);
|
||||||
|
|
||||||
ObjectDefineProperties(fs, {
|
ObjectDefineProperties(fs, {
|
||||||
F_OK: { __proto__: null, enumerable: true, value: F_OK || 0 },
|
F_OK: {
|
||||||
R_OK: { __proto__: null, enumerable: true, value: R_OK || 0 },
|
__proto__: null,
|
||||||
W_OK: { __proto__: null, enumerable: true, value: W_OK || 0 },
|
enumerable: false,
|
||||||
X_OK: { __proto__: null, enumerable: true, value: X_OK || 0 },
|
get: deprecate(
|
||||||
|
function get() {
|
||||||
|
return F_OK || 0;
|
||||||
|
},
|
||||||
|
'fs.F_OK is deprecated, use fs.constants.F_OK instead',
|
||||||
|
'DEP0176',
|
||||||
|
),
|
||||||
|
},
|
||||||
|
R_OK: {
|
||||||
|
__proto__: null,
|
||||||
|
enumerable: false,
|
||||||
|
get: deprecate(
|
||||||
|
function get() {
|
||||||
|
return R_OK || 0;
|
||||||
|
},
|
||||||
|
'fs.R_OK is deprecated, use fs.constants.R_OK instead',
|
||||||
|
'DEP0176',
|
||||||
|
),
|
||||||
|
},
|
||||||
|
W_OK: {
|
||||||
|
__proto__: null,
|
||||||
|
enumerable: false,
|
||||||
|
get: deprecate(
|
||||||
|
function get() {
|
||||||
|
return W_OK || 0;
|
||||||
|
},
|
||||||
|
'fs.W_OK is deprecated, use fs.constants.W_OK instead',
|
||||||
|
'DEP0176',
|
||||||
|
),
|
||||||
|
},
|
||||||
|
X_OK: {
|
||||||
|
__proto__: null,
|
||||||
|
enumerable: false,
|
||||||
|
get: deprecate(
|
||||||
|
function get() {
|
||||||
|
return X_OK || 0;
|
||||||
|
},
|
||||||
|
'fs.X_OK is deprecated, use fs.constants.X_OK instead',
|
||||||
|
'DEP0176',
|
||||||
|
),
|
||||||
|
},
|
||||||
constants: {
|
constants: {
|
||||||
__proto__: null,
|
__proto__: null,
|
||||||
configurable: false,
|
configurable: false,
|
||||||
|
@ -1,8 +1,27 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
require('../common');
|
const { expectWarning } = require('../common');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const assert = require('assert');
|
const assert = require('assert');
|
||||||
|
|
||||||
// Check if the two constants accepted by chmod() on Windows are defined.
|
// Check if the two constants accepted by chmod() on Windows are defined.
|
||||||
assert.notStrictEqual(fs.constants.S_IRUSR, undefined);
|
assert.notStrictEqual(fs.constants.S_IRUSR, undefined);
|
||||||
assert.notStrictEqual(fs.constants.S_IWUSR, undefined);
|
assert.notStrictEqual(fs.constants.S_IWUSR, undefined);
|
||||||
|
|
||||||
|
// Check for runtime deprecation warning, there should be no setter
|
||||||
|
const { F_OK, R_OK, W_OK, X_OK } = fs.constants;
|
||||||
|
|
||||||
|
assert.throws(() => { fs.F_OK = 'overwritten'; }, { name: 'TypeError' });
|
||||||
|
assert.throws(() => { fs.R_OK = 'overwritten'; }, { name: 'TypeError' });
|
||||||
|
assert.throws(() => { fs.W_OK = 'overwritten'; }, { name: 'TypeError' });
|
||||||
|
assert.throws(() => { fs.X_OK = 'overwritten'; }, { name: 'TypeError' });
|
||||||
|
|
||||||
|
expectWarning(
|
||||||
|
'DeprecationWarning',
|
||||||
|
'fs.F_OK is deprecated, use fs.constants.F_OK instead',
|
||||||
|
'DEP0176'
|
||||||
|
);
|
||||||
|
|
||||||
|
assert.strictEqual(fs.F_OK, F_OK);
|
||||||
|
assert.strictEqual(fs.R_OK, R_OK);
|
||||||
|
assert.strictEqual(fs.W_OK, W_OK);
|
||||||
|
assert.strictEqual(fs.X_OK, X_OK);
|
||||||
|
Loading…
Reference in New Issue
Block a user