Skip to content
Permalink
Browse files

fs: make process.binding('fs') internal

Refs: #22160

PR-URL: #22478
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>

Backport-PR-URL: #25446
  • Loading branch information...
shisama authored and addaleax committed Aug 23, 2018
1 parent d7d772b commit dd0381fe4e4ded48d6d9b92dfeb6b7b7d4991b60
@@ -41,7 +41,7 @@ const {

const pathModule = require('path');
const { isArrayBufferView } = require('internal/util/types');
const binding = process.binding('fs');
const binding = internalBinding('fs');
const { Buffer, kMaxLength } = require('buffer');
const errors = require('internal/errors');
const {
@@ -81,6 +81,7 @@
'constants',
'contextify',
'crypto',
'fs',
'fs_event_wrap',
'http_parser',
'icu',
@@ -7,7 +7,7 @@ const {
S_IFMT,
S_IFREG
} = internalBinding('constants').fs;
const binding = process.binding('fs');
const binding = internalBinding('fs');
const { Buffer, kMaxLength } = require('buffer');
const {
ERR_FS_FILE_TOO_LARGE,
@@ -1,7 +1,8 @@
'use strict';

const { Buffer } = require('buffer');
const { FSReqCallback, close, read } = process.binding('fs');

const { FSReqCallback, close, read } = internalBinding('fs');

const kReadFileBufferLength = 8 * 1024;

@@ -3,7 +3,7 @@
const {
FSReqCallback,
writeBuffers
} = process.binding('fs');
} = internalBinding('fs');
const {
ERR_INVALID_ARG_TYPE,
ERR_OUT_OF_RANGE
@@ -4,7 +4,7 @@ const errors = require('internal/errors');
const {
kFsStatsFieldsNumber,
StatWatcher: _StatWatcher
} = process.binding('fs');
} = internalBinding('fs');
const { FSEvent } = internalBinding('fs_event_wrap');
const { UV_ENOSPC } = internalBinding('uv');
const { EventEmitter } = require('events');
@@ -119,7 +119,7 @@ const {
} = require('internal/timers');
const { isArrayBufferView } = require('internal/util/types');

const { FileHandle } = process.binding('fs');
const { FileHandle } = internalBinding('fs');
const binding = internalBinding('http2');
const {
ShutdownWrap,
@@ -33,7 +33,7 @@ const { URL } = require('url');
const {
internalModuleReadJSON,
internalModuleStat
} = process.binding('fs');
} = internalBinding('fs');
const { safeGetenv } = internalBinding('util');
const {
makeRequireFunction,
@@ -1,7 +1,7 @@
'use strict';

const Buffer = require('buffer').Buffer;
const { writeBuffer } = process.binding('fs');
const { writeBuffer } = internalBinding('fs');
const errors = require('internal/errors');

// IPv4 Segment
@@ -2236,4 +2236,4 @@ void Initialize(Local<Object> target,

} // end namespace node

NODE_BUILTIN_MODULE_CONTEXT_AWARE(fs, node::fs::Initialize)
NODE_MODULE_CONTEXT_AWARE_INTERNAL(fs, node::fs::Initialize)
@@ -1,3 +1,4 @@
// Flags: --expose-internals
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
@@ -24,6 +25,7 @@
const common = require('../common');
const assert = require('assert');
const { inspect } = require('util');
const { internalBinding } = require('internal/test/binding');
const a = assert;

// Disable colored output to prevent color codes from breaking assertion
@@ -656,7 +658,7 @@ common.expectsError(

{
// Test caching.
const fs = process.binding('fs');
const fs = internalBinding('fs');
const tmp = fs.close;
fs.close = common.mustCall(tmp, 1);
function throwErr() {
@@ -4,7 +4,8 @@
const common = require('../common');
const assert = require('assert');
const path = require('path');
const fs = process.binding('fs');
const { internalBinding } = require('internal/test/binding');
const fs = internalBinding('fs');
const { stringToFlags } = require('internal/fs/utils');

// Verifies that the FileHandle object is garbage collected and that a
@@ -18,11 +19,16 @@ let fdnum;
assert.strictEqual(ctx.errno, undefined);
}

common.expectWarning(
'Warning',
`Closing file descriptor ${fdnum} on garbage collection`,
common.noWarnCode
);
common.expectWarning({
'internal/test/binding': [
'These APIs are for internal testing only. Do not use them.',
common.noWarnCode
],
'Warning': [
`Closing file descriptor ${fdnum} on garbage collection`,
common.noWarnCode
]
});

global.gc();

@@ -42,7 +42,7 @@ fs.writeSync = function() {
throw new Error('BAM');
};

process.binding('fs').fstat = function(fd, bigint, _, ctx) {
internalBinding('fs').fstat = function(fd, bigint, _, ctx) {
ctx.errno = UV_EBADF;
ctx.syscall = 'fstat';
};
@@ -1,7 +1,9 @@
// Flags: --expose-internals
'use strict';
require('../common');
const fixtures = require('../common/fixtures');
const { internalModuleReadJSON } = process.binding('fs');
const { internalBinding } = require('internal/test/binding');
const { internalModuleReadJSON } = internalBinding('fs');
const { readFileSync } = require('fs');
const { strictEqual } = require('assert');

@@ -16,3 +16,4 @@ assert(process.binding('url'));
assert(process.binding('spawn_sync'));
assert(process.binding('js_stream'));
assert(process.binding('buffer'));
assert(process.binding('fs'));
@@ -132,7 +132,7 @@ if (common.hasCrypto) { // eslint-disable-line node-core/crypto-check


{
const binding = process.binding('fs');
const binding = internalBinding('fs');
const path = require('path');

const FSReqCallback = binding.FSReqCallback;

0 comments on commit dd0381f

Please sign in to comment.
You can’t perform that action at this time.