diff --git a/package-lock.json b/package-lock.json index 54735bee0..fc7024485 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,6 @@ "mysql": "^2.18.1", "nodemailer": "^6.7.3", "nodemailer-smtp-transport": "^2.7.4", - "once": "^1.4.0", "progress-stream": "^2.0.0", "qrcode": "^1.5.0", "readdirp": "^3.6.0", diff --git a/package.json b/package.json index 8be3ca97c..0bf5f15fa 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,6 @@ "mysql": "^2.18.1", "nodemailer": "^6.7.3", "nodemailer-smtp-transport": "^2.7.4", - "once": "^1.4.0", "progress-stream": "^2.0.0", "qrcode": "^1.5.0", "readdirp": "^3.6.0", diff --git a/src/apps.js b/src/apps.js index b47131a0b..ff7edb5d8 100644 --- a/src/apps.js +++ b/src/apps.js @@ -157,7 +157,7 @@ const appstore = require('./appstore.js'), mail = require('./mail.js'), manifestFormat = require('cloudron-manifestformat'), mounts = require('./mounts.js'), - once = require('once'), + once = require('./once.js'), os = require('os'), path = require('path'), paths = require('./paths.js'), diff --git a/src/backuptask.js b/src/backuptask.js index 69eb4271b..010b797c2 100644 --- a/src/backuptask.js +++ b/src/backuptask.js @@ -28,7 +28,7 @@ const apps = require('./apps.js'), database = require('./database.js'), debug = require('debug')('box:backuptask'), fs = require('fs'), - once = require('once'), + once = require('./once.js'), path = require('path'), paths = require('./paths.js'), progressStream = require('progress-stream'), diff --git a/src/externalldap.js b/src/externalldap.js index c90fa0129..f779b8d54 100644 --- a/src/externalldap.js +++ b/src/externalldap.js @@ -20,7 +20,7 @@ const assert = require('assert'), debug = require('debug')('box:externalldap'), groups = require('./groups.js'), ldap = require('ldapjs'), - once = require('once'), + once = require('./once.js'), safe = require('safetydance'), settings = require('./settings.js'), tasks = require('./tasks.js'), diff --git a/src/once.js b/src/once.js new file mode 100644 index 000000000..190b0f369 --- /dev/null +++ b/src/once.js @@ -0,0 +1,14 @@ +'use strict'; + +exports = module.exports = once; + +// https://github.com/isaacs/once/blob/main/LICENSE (ISC) +function once (fn) { + const f = function () { + if (f.called) return f.value; + f.called = true; + return f.value = fn.apply(this, arguments); + }; + f.called = false; + return f; +} diff --git a/src/shell.js b/src/shell.js index fd60c204c..b1cc85192 100644 --- a/src/shell.js +++ b/src/shell.js @@ -4,7 +4,7 @@ const assert = require('assert'), BoxError = require('./boxerror.js'), child_process = require('child_process'), debug = require('debug')('box:shell'), - once = require('once'), + once = require('./once.js'), util = require('util'); exports = module.exports = {