diff --git a/bin/www.d.ts b/bin/www.d.ts index 6d453531..cb0ff5c3 100644 --- a/bin/www.d.ts +++ b/bin/www.d.ts @@ -1 +1 @@ -import '../helpers/polyfills.js'; +export {}; diff --git a/bin/www.js b/bin/www.js index 621ec2a7..027a970e 100644 --- a/bin/www.js +++ b/bin/www.js @@ -3,7 +3,6 @@ import os from 'node:os'; import { dirname } from 'node:path'; import { fileURLToPath } from 'node:url'; import * as configFunctions from '../helpers/functions.config.js'; -import '../helpers/polyfills.js'; import exitHook from 'exit-hook'; import ntfyPublish from '@cityssm/ntfy-publish'; import Debug from 'debug'; @@ -12,9 +11,15 @@ const directoryName = dirname(fileURLToPath(import.meta.url)); const processCount = Math.min(configFunctions.getProperty('application.maximumProcesses'), os.cpus().length); debug(`Primary pid: ${process.pid}`); debug(`Launching ${processCount} processes`); -cluster.setupPrimary({ +const clusterSettings = { exec: directoryName + '/wwwProcess.js' -}); +}; +if (cluster.setupPrimary) { + cluster.setupPrimary(clusterSettings); +} +else { + cluster.setupMaster(clusterSettings); +} for (let index = 0; index < processCount; index += 1) { cluster.fork(); } diff --git a/bin/www.ts b/bin/www.ts index 90b5596b..9967a031 100644 --- a/bin/www.ts +++ b/bin/www.ts @@ -4,7 +4,6 @@ import { dirname } from 'node:path' import { fileURLToPath } from 'node:url' import * as configFunctions from '../helpers/functions.config.js' -import '../helpers/polyfills.js' import exitHook from 'exit-hook' @@ -24,9 +23,17 @@ const processCount = Math.min( debug(`Primary pid: ${process.pid}`) debug(`Launching ${processCount} processes`) -cluster.setupPrimary({ +const clusterSettings = { exec: directoryName + '/wwwProcess.js' -}) +} + +// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions +if (cluster.setupPrimary) { + cluster.setupPrimary(clusterSettings) +} else { + // Maintain Node 14 support + cluster.setupMaster(clusterSettings) +} for (let index = 0; index < processCount; index += 1) { cluster.fork() diff --git a/helpers/polyfills.js b/helpers/polyfills.js index 638a7a1c..33d23c81 100644 --- a/helpers/polyfills.js +++ b/helpers/polyfills.js @@ -1,4 +1,3 @@ -import cluster from 'node:cluster'; import hasOwn from 'object.hasown'; import Debug from 'debug'; const debug = Debug('lot-occupancy-system:polyfills'); @@ -7,10 +6,6 @@ export function applyPolyfills() { debug('Applying Object.hasOwn(o, v) polyfill'); Object.hasOwn = hasOwn; } - if (cluster.setupPrimary === undefined && cluster.setupMaster !== undefined) { - debug('Applying cluster.setupPrimary() polyfill'); - cluster.setupPrimary = cluster.setupMaster; - } } applyPolyfills(); export default applyPolyfills; diff --git a/helpers/polyfills.ts b/helpers/polyfills.ts index 57326637..97c4bc75 100644 --- a/helpers/polyfills.ts +++ b/helpers/polyfills.ts @@ -1,4 +1,3 @@ -import cluster from 'node:cluster' import hasOwn from 'object.hasown' import Debug from 'debug' @@ -9,11 +8,6 @@ export function applyPolyfills(): void { debug('Applying Object.hasOwn(o, v) polyfill') Object.hasOwn = hasOwn } - - if (cluster.setupPrimary === undefined && cluster.setupMaster !== undefined) { - debug('Applying cluster.setupPrimary() polyfill') - cluster.setupPrimary = cluster.setupMaster - } } applyPolyfills()