Skip to content

Commit 10af376

Browse files
committed
Bump min supported Node.js version to 14.17
1 parent b8cd4f6 commit 10af376

File tree

8 files changed

+25
-34
lines changed

8 files changed

+25
-34
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ The node-oracledb add-on for Node.js powers high performance Oracle Database
44
applications. Applications can be written in TypeScript, or directly in
55
JavaScript.
66

7-
Use node-oracledb 6.9.0 to connect Node.js 14.6, or later, to Oracle
7+
Use node-oracledb 6.9.0 to connect Node.js 14.17, or later, to Oracle
88
Database. Older versions of node-oracledb may work with older versions of
99
Node.js.
1010

@@ -22,7 +22,7 @@ See [Getting Started with Node-oracledb][1] and [Quick Start Node-oracledb Insta
2222

2323
## Dependencies and Interoperability
2424

25-
- Node.js versions 14.6 and later.
25+
- Node.js versions 14.17 and later.
2626

2727
Pre-built packages are available on [npm][14] and other mirror repositories.
2828

doc/src/release_notes.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ Common Changes
6666
#) Fixed bug which does not trigger PL/SQL functions registered for callbacks
6767
properly when using implicit pooling with temporary LOBs creation.
6868

69+
#) Bumped the minimum Node.js version required to 14.17 since
70+
``crypto.randomUUID()`` is used for Sessionless Transactions.
71+
6972
#) Improved NJS error messages.
7073

7174
Thin Mode Changes

doc/src/user_guide/installation.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ Installation Requirements
226226

227227
To use node-oracledb, you need:
228228

229-
- Node.js 14.6 or later.
229+
- Node.js 14.17 or later.
230230

231231
- Access to an Oracle Database either local or remote, on-premises, or in the
232232
:ref:`Cloud <connectionadb>`. You will need to know the `database

lib/oracledb.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,15 @@ const impl = require('./impl');
3434
const process = require('process');
3535
const util = require('util');
3636

37-
// This version of node-oracledb works with Node.js 14.6 or later.
37+
// This version of node-oracledb works with Node.js 14.17 or later.
3838
// Note: the checked version is the minimum required for Node-API
3939
// compatibility. When new Node.js versions are released, older Node.js
4040
// versions are dropped from the node-oracledb test plan.
4141
//
4242
// Keep this code in sync with package/install.js
4343
const vs = process.version.substring(1).split(".").map(Number);
44-
errors.assert(vs[0] > 14 || (vs[0] === 14 && vs[1] >= 6),
45-
errors.ERR_NODE_TOO_OLD, nodbUtil.PACKAGE_JSON_VERSION, "14.6");
44+
errors.assert(vs[0] > 14 || (vs[0] === 14 && vs[1] >= 17),
45+
errors.ERR_NODE_TOO_OLD, nodbUtil.PACKAGE_JSON_VERSION, "14.17");
4646

4747
const AqDeqOptions = require('./aqDeqOptions.js');
4848
const AqEnqOptions = require('./aqEnqOptions.js');

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"buildpackage": "node package/buildpackage.js"
4141
},
4242
"engines": {
43-
"node": ">=14.6"
43+
"node": ">=14.17"
4444
},
4545
"maintainers": [
4646
{

package/buildpackage.js

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* Copyright (c) 2018, 2023, Oracle and/or its affiliates. */
1+
/* Copyright (c) 2018, 2025, Oracle and/or its affiliates. */
22

33
/******************************************************************************
44
*
@@ -59,7 +59,7 @@ if (fs.existsSync('.npmignore')) {
5959
}
6060

6161
// Create the npm package
62-
async function packageUp() {
62+
function packageUp() {
6363
console.log('Creating the npm package for node-oracledb ' + packageJSON.version);
6464
try {
6565

@@ -77,15 +77,9 @@ async function packageUp() {
7777
packageJSON.scripts.prune = 'node package/prunebinaries.js';
7878
fs.writeFileSync('package.json', JSON.stringify(packageJSON, null, 2) + '\n');
7979

80-
// Use 'await fs.promises' to remove the directory & its contents instead
81-
// of fs.rmSync() for compatability with Node.js 14.6 - 14.13 versions.
82-
// fs.rmSync() was introduced in Node.js 14.14 version.
80+
// Remove the directory & its contents
8381
try {
84-
const vs = process.version.substring(1).split(".").map(Number);
85-
if (vs[0] > 14 || (vs[0] === 14 && vs[1] >= 14))
86-
fs.rmSync(nodbUtil.RELEASE_DIR, { recursive: true, force: true });
87-
else
88-
await fs.promises.rmdir(nodbUtil.RELEASE_DIR, { recursive: true, force: true });
82+
fs.rmSync(nodbUtil.RELEASE_DIR, { recursive: true, force: true });
8983
} catch (err) {
9084
if (err && !err.message.match(/ENOENT/))
9185
console.error(err.message);
@@ -127,10 +121,10 @@ async function packageUp() {
127121
// Copy a directory
128122
function copyDir(srcDir, destDir) {
129123
try {
130-
let f = fs.readdirSync(srcDir);
124+
const f = fs.readdirSync(srcDir);
131125
for (let i = 0; i < f.length; i++) {
132126
fs.copyFileSync(srcDir + '/' + f[i], destDir + '/' + f[i]);
133-
let mode = f[i].match(/\.txt$/) ? 0o644 : 0o755;
127+
const mode = f[i].match(/\.txt$/) ? 0o644 : 0o755;
134128
fs.chmodSync(destDir + '/' + f[i], mode);
135129
}
136130
} catch (err) {

package/install.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,16 +68,16 @@ function warn(message) { // eslint-disable-line
6868
console.error.apply(console, args);
6969
}
7070

71-
// This version of node-oracledb works with Node.js 14.6 or later.
71+
// This version of node-oracledb works with Node.js 14.17 or later.
7272
// Note: the checked version is the minimum required for Node-API
7373
// compatibility. When new Node.js versions are released, older Node.js
7474
// versions are dropped from the node-oracledb test plan.
7575
//
7676
// Keep this code in sync with lib/oracledb.js
7777
function checkVersion() {
7878
const vs = process.version.substring(1).split(".").map(Number);
79-
errors.assert(vs[0] > 14 || (vs[0] === 14 && vs[1] >= 6),
80-
errors.ERR_NODE_TOO_OLD, nodbUtil.PACKAGE_JSON_VERSION, "14.6");
79+
errors.assert(vs[0] > 14 || (vs[0] === 14 && vs[1] >= 17),
80+
errors.ERR_NODE_TOO_OLD, nodbUtil.PACKAGE_JSON_VERSION, "14.17");
8181
}
8282

8383
// Check for the binary node-oracledb module needed for "Thick mode".

package/prunebinaries.js

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* Copyright (c) 2019, 2023, Oracle and/or its affiliates. */
1+
/* Copyright (c) 2019, 2025, Oracle and/or its affiliates. */
22

33
/******************************************************************************
44
*
@@ -47,11 +47,11 @@ const nodbUtil = require('../lib/util.js');
4747

4848
const dir = nodbUtil.RELEASE_DIR; // contains the binaries
4949

50-
let re = new RegExp(nodbUtil.BINARY_FILE);
50+
const re = new RegExp(nodbUtil.BINARY_FILE);
5151

5252
try {
53-
let f = fs.readdirSync(dir);
54-
let opt = process.argv[2];
53+
const f = fs.readdirSync(dir);
54+
const opt = process.argv[2];
5555

5656
if (opt) {
5757
// 'npm run prune <option>' is called
@@ -76,18 +76,12 @@ try {
7676
console.error(err.message);
7777
}
7878

79-
async function removeFileorDir(fileOrDirPath) {
79+
function removeFileorDir(fileOrDirPath) {
8080
try {
8181
const isDir = fs.statSync(fileOrDirPath).isDirectory();
8282
if (isDir) {
8383
// Remove the directory and its files recursively
84-
// Use fs.promises for Node.js versions 14.6-14.13,
85-
// which do not support fs.rmSync()
86-
const vs = process.version.substring(1).split(".").map(Number);
87-
if (vs[0] > 14 || (vs[0] === 14 && vs[1] >= 14))
88-
fs.rmSync(fileOrDirPath, { recursive: true, force: true });
89-
else
90-
await fs.promises.rmdir(fileOrDirPath, { recursive: true, force: true });
84+
fs.rmSync(fileOrDirPath, { recursive: true, force: true });
9185
} else {
9286
// Remove the file or the symlink synchronously
9387
fs.unlinkSync(fileOrDirPath);

0 commit comments

Comments
 (0)