Girish Ramakrishnan
f12b4faf34
lint
2026-03-12 23:23:23 +05:30
Girish Ramakrishnan
01d0c738bc
replace debug() with our custom logger
...
mostly we want trace() and log(). trace() can be enabled whenever
we want by flipping a flag and restarting box
2026-03-12 23:08:35 +05:30
Girish Ramakrishnan
4ed6fbbd74
eslint: add no-shadow
2026-02-18 08:18:37 +01:00
Girish Ramakrishnan
36aa641cb9
migrate to "export default"
...
also, set no-use-before-define in linter
2026-02-14 15:43:24 +01:00
Girish Ramakrishnan
96dc79cfe6
Migrate codebase from CommonJS to ES Modules
...
- Convert all require()/module.exports to import/export across 260+ files
- Add "type": "module" to package.json to enable ESM by default
- Add migrations/package.json with "type": "commonjs" to keep db-migrate compatible
- Convert eslint.config.js to ESM with sourceType: "module"
- Replace __dirname/__filename with import.meta.dirname/import.meta.filename
- Replace require.main === module with process.argv[1] === import.meta.filename
- Remove 'use strict' directives (implicit in ESM)
- Convert dynamic require() in switch statements to static import lookup maps
(dns.js, domains.js, backupformats.js, backupsites.js, network.js)
- Extract self-referencing exports.CONSTANT patterns into standalone const
declarations (apps.js, services.js, locks.js, users.js, mail.js, etc.)
- Lazify SERVICES object in services.js to avoid circular dependency TDZ issues
- Add clearMailQueue() to mailer.js for ESM-safe queue clearing in tests
- Add _setMockApp() to ldapserver.js for ESM-safe test mocking
- Add _setMockResolve() wrapper to dig.js for ESM-safe DNS mocking in tests
- Convert backupupload.js to use dynamic imports so --check exits before
loading the module graph (which requires BOX_ENV)
- Update check-install to use ESM import for infra_version.js
- Convert scripts/ (hotfix, release, remote_hotfix.js, find-unused-translations)
- All 1315 tests passing
Migration stats (AI-assisted using Cursor with Claude):
- Wall clock time: ~3-4 hours
- Assistant completions: ~80-100
- Estimated token usage: ~1-2M tokens
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-14 15:11:45 +01:00
Girish Ramakrishnan
43e426ab9f
Revert "Add no-use-before-define linter rule"
...
This reverts commit fdcc5d68a2 .
Unfortunately, this requires us to move exports to the bottom.
This in turn causes circular dep issues and also access of
exports.GLOBAL_VAR in the global context
2025-10-08 21:17:52 +02:00
Girish Ramakrishnan
12e073e8cf
use node: prefix for requires
...
mostly because code is being autogenerated by all the AI stuff using
this prefix. it's also used in the stack trace.
2025-08-14 12:55:35 +05:30
Girish Ramakrishnan
c4f4f3e914
logs: use %o to format error
...
otherwise, they are printed as multi-line and this messes up tail+date formatting
2023-04-16 10:49:59 +02:00
Girish Ramakrishnan
4c6f7de10a
more debug messages
2022-11-23 22:03:18 +01:00
Girish Ramakrishnan
c5794b5ecd
get rid of all the NOOP_CALLBACKs
2021-09-17 09:40:26 -07:00
Girish Ramakrishnan
7bee7b9ef8
tokens: async'ify
2021-06-04 13:06:38 -07:00
Girish Ramakrishnan
442110a437
lint
2021-05-01 11:21:09 -07:00
Johannes Zellner
822b38cc89
Fallback to NOOP callback if not supplied
2020-08-04 14:32:01 +02:00
Girish Ramakrishnan
1b307632ab
Use debug instead of console.* everywhere
...
No need to patch up console.* anymore
also removes supererror
2020-08-02 12:04:55 -07:00
Johannes Zellner
4ae12ac10b
Remove oauth
...
A whole bunch of useless stuff
2020-02-05 18:15:59 +01:00
Girish Ramakrishnan
53e39f571c
Make addons code remove a BoxError
2019-12-04 14:28:42 -08:00
Girish Ramakrishnan
30eccfb54b
Use BoxError instead of Error in all places
...
This moves everything other than the addon code and some 'done' logic
2019-12-04 11:02:54 -08:00
Girish Ramakrishnan
fd462659cd
tmp cleaner: only remove files and not directories
...
some apps like rocket.chat create directories in tmp and removing those
directories causes problems (for example, uploading)
2019-07-30 14:06:04 -07:00
Johannes Zellner
9bef1bcf64
Hijack and demux the container exec stream to be compliant with new
...
dockerode
2017-08-23 16:04:50 +02:00
Girish Ramakrishnan
e3c72fa6ce
remove src/ prefix in debug tags
2017-04-23 21:53:59 -07:00
Girish Ramakrishnan
aeba8e8fd2
Use retentionSecs to cleanup backups
...
Part of #310
2017-04-23 19:34:00 -07:00
Girish Ramakrishnan
29ae2cf8ca
Allow setting retentionSecs in backendConfig
...
Part of #310
2017-04-22 23:25:57 -07:00
Johannes Zellner
d7ea06e80e
Simply remove all backups up to the last to when using filesystem
...
backend
2016-10-11 10:31:21 +02:00
Johannes Zellner
2d39a9bfa1
Only store last two days of backups
2016-10-11 09:56:42 +02:00
Johannes Zellner
8ac8ea7d8a
Reduce debug output
2016-10-10 16:27:39 +02:00
Johannes Zellner
acc644160a
Remove the old backups from the storage
2016-10-10 15:45:48 +02:00
Johannes Zellner
0d0229e531
Filter potential backups to cleanup
2016-10-10 14:43:47 +02:00
Johannes Zellner
e2c206b755
Add cron job stub for backup cleaning in janitor
2016-10-05 17:19:53 +02:00
Girish Ramakrishnan
32ddda404c
explicitly specify all to 0 (this is the default)
2015-10-19 22:09:38 -07:00
Girish Ramakrishnan
6671b211e0
export a connection property from docker.js
2015-10-19 11:24:21 -07:00
Girish Ramakrishnan
b61b864094
make callback noop
2015-10-17 13:57:19 -07:00
Girish Ramakrishnan
c750d00355
ignore any tmp cleanup errors
2015-10-15 14:47:43 -07:00
Girish Ramakrishnan
bb9b39e3c0
callback can be null
2015-10-15 14:25:38 -07:00
Girish Ramakrishnan
23fc4bec36
callback can be null
2015-10-15 12:06:38 -07:00
Girish Ramakrishnan
a977597217
cleanup tmpdir in janitor
2015-10-14 23:21:03 -07:00
Girish Ramakrishnan
7f29eed326
fold janitor into main box code cron job
...
the volume cleaner will now also come into janitor
2015-10-14 22:39:34 -07:00