Commit Graph

6794 Commits (b06e47c06eaf9594ac02c20f40b137f52c0f7047)

Author SHA1 Message Date
Richard Hansen c5f0274116 lint: Move functions up to fix more lint errors 2021-02-04 08:41:00 +00:00
Richard Hansen 99ca57f3ab lint: src/static/js/pluginfw/shared.js 2021-02-04 08:41:00 +00:00
Richard Hansen 2c80c1f2da lint: src/static/js/pluginfw/read-installed.js 2021-02-04 08:41:00 +00:00
Richard Hansen 2b32bc1840 lint: src/static/js/pluginfw/plugins.js 2021-02-04 08:41:00 +00:00
Richard Hansen 9a86ebec2a pluginfw: Fix state reset logic 2021-02-04 08:41:00 +00:00
Richard Hansen 895764e047 pluginfw: Return from `findUnmet()` early if not given an object
For some reason strings are sometimes passed to `findUnmet()`, which
is obviously unexpected given the way the code is written. Rather than
figure out why strings are passed and how to safely avoid passing
strings, just return early. The net effect is the same, but returning
early avoids setting a property on a string, which is prohibited in
strict mode.
2021-02-04 08:41:00 +00:00
Richard Hansen a06662fd00 pluginfw: Delete commented-out code 2021-02-04 08:41:00 +00:00
Richard Hansen c64ee6ff4c pluginfw: Call `npm.load()` before using `npm`
This code is only used when testing `read-installed.js` by running it
directly (e.g., `node src/static/js/pluginfw/read-installed.js`).
2021-02-04 08:41:00 +00:00
translatewiki.net a5bde7982a Localisation updates from https://translatewiki.net. 2021-02-04 08:58:26 +01:00
John McLear 1076783985
tests: backend test coverage for #3227 where a group cannot be deleted if it has pads. 2021-02-03 10:39:30 +00:00
freddii ea202e41f6 docs: fixed typos 2021-02-03 00:30:07 +01:00
John McLear 65dec5bd2c lint: json.js 2021-02-02 15:24:12 -05:00
Richard Hansen 05e0e8dbf7 hooks: New `callAllSerial()` function
This is necessary to migrate away from `callAll()` (which only
supports synchronous hook functions).
2021-02-02 09:09:02 +00:00
Richard Hansen 763fe6fc26 hooks: Document `callFirst()` and `aCallFirst()` 2021-02-02 09:09:02 +00:00
Richard Hansen ba0544ea9e hooks: Add unit tests for `callFirst()`, `aCallFirst()` 2021-02-02 09:09:02 +00:00
Richard Hansen 6f30ea7c38 hooks: Use `callHookFn{Sync,Async}()` for `{call,aCall}First()`
Benefits of `callHookFnSync()` and `callHookFnAsync()`:
  * They are a lot more forgiving than `hookCallWrapper()` was.
  * They perform useful sanity checks.
  * They have extensive unit test coverage.
  * They make the behavior of `callFirst()` and `aCallFirst()` match
    the behavior of `callAll()` and `aCallAll()`.
2021-02-02 09:09:02 +00:00
Richard Hansen c11d60c5f6 hooks: Check context nullness, not truthiness 2021-02-02 09:09:02 +00:00
Richard Hansen fd5d3ce777 hooks: Inline `aCallFirst()` into `exports.aCallFirst()` 2021-02-02 09:09:02 +00:00
Richard Hansen 77f480d954 hooks: Asyncify `aCallFirst` 2021-02-02 09:09:02 +00:00
Richard Hansen 22d02dbcbf hooks: Factor out value normalization 2021-02-02 09:09:02 +00:00
Richard Hansen f316a3bacd hooks: Never pass a falsy error to a callback 2021-02-02 09:09:02 +00:00
Richard Hansen 708206449a hooks: Factor out callback attachment
The separate function will be reused in a future commit.
2021-02-02 09:09:02 +00:00
Richard Hansen 13e806ad7a hooks: Inline `mapFirst()` into `aCallFirst()` for readability
There's only one caller of the function, and the function is simple,
so there's no need for a separate function.
2021-02-02 09:09:02 +00:00
Richard Hansen 4ab7a99512 hooks: Inline `syncMapFirst()` into `callFirst()` for readability
There's only one caller of the function, and the function is simple,
so there's no need for a separate function.
2021-02-02 09:09:02 +00:00
Richard Hansen 53ccfa8703 hooks: Asyncify `mapFirst` 2021-02-02 09:09:02 +00:00
Richard Hansen 0b83ff8ec2 hooks: Simplify `syncMapFirst` iteration 2021-02-02 09:09:02 +00:00
Richard Hansen c89db33ff0 hooks: Refine caveat comments about function parameter count 2021-02-02 09:09:02 +00:00
Richard Hansen f02f288e80 hooks: Rename `args` to `context` for consistency 2021-02-02 09:09:02 +00:00
Richard Hansen 7dba847f21 hooks: Don't export `syncMapFirst` or `mapFirst`
Nobody uses these functions outside of this file.
2021-02-02 09:09:02 +00:00
Richard Hansen 6b42dabf6c hooks: Delete unused `bubbleExceptions` setting 2021-02-02 09:09:02 +00:00
Richard Hansen ba02e70020 tests: Make the fake webaccess hook registrations look more real
The additional properties will be needed once `aCallAll()` is upgraded
to use `callHookFnAsync()`.
2021-02-02 09:09:02 +00:00
Richard Hansen 47f0a7dacf lint: Fix more ESLint errors 2021-02-02 09:09:02 +00:00
Richard Hansen 1bc52f4913 hooks: Remove unnecessary `callAllStr()` function 2021-02-02 09:09:02 +00:00
John McLear 3e910b9905 stale: remove convert.js as no one runs old Etherpad 2021-02-01 22:45:51 +00:00
John McLear 915849b319
Low hanging lint frontend tests (#4695)
* lint: low hanging specs/alphabet.js

* lint: low hanging specs/authorship_of_editions.js

* lint: low hanging specs/bold.js

* lint: low hanging specs/caret.js

* lint: low hanging specs/change_user_color.js

* lint: low hanging specs/change_user_name.js

* lint: low hanging specs/chat.js

* lint: low hanging specs/chat_load_messages.js

* lint: low hanging specs/clear_authorship_colors.js

* lint: low hanging specs/delete.js

* lint: low hanging specs/drag_and_drop.js

* lint: low hanging specs/embed_value.js

* lint: low hanging specs/enter.js

* lint: low hanging specs/font_type.js

* lint: low hanging specs/helper.js

* lint: low hanging specs/importexport.js

* lint: low hanging specs/importindents.js

* lint: low hanging specs/indentation.js

* lint: low hanging specs/italic.js

* lint: low hanging specs/language.js

* lint: low hanging specs/multiple_authors_clear_authorship_colors.js

* lint: low hanging specs/ordered_list.js

* lint: low hanging specs/pad_modal.js

* lint: low hanging specs/redo.js

* lint: low hanging specs/responsiveness.js

* lint: low hanging specs/select_formatting_buttons.js

* lint: low hanging specs/strikethrough.js

* lint: low hanging specs/timeslider.js

* lint: low hanging specs/timeslider_labels.js

* lint: low hanging specs/timeslider_numeric_padID.js

* lint: low hanging specs/timeslider_revisions.js

* lint: low hanging specs/undo.js

* lint: low hanging specs/unordered_list.js

* lint: low hanging specs/xxauto_reconnect.js

* lint: attempt to do remote_runner.js

* lint: helper linting

* lint: rate limit linting

* use constructor for Event to make eslint happier

* for squash: lint fix refinements

* for squash: lint fix refinements

Co-authored-by: Richard Hansen <rhansen@rhansen.org>
2021-02-01 20:23:14 +00:00
Richard Hansen 759e2aaec3 lint: Use node config for tests/frontend/travis, tests/ratelimit
The files in these directories contain test drivers, not tests.
2021-02-01 19:52:24 +00:00
John McLear 9987fab574 lint: low hanging bin/doc/*.js 2021-02-01 13:15:48 -05:00
translatewiki.net 5b701b97c3 Localisation updates from https://translatewiki.net. 2021-02-01 15:21:50 +01:00
John McLear b3dda3b11c lint: src/static/js/pluginfw/*.js 2021-01-30 17:00:40 -05:00
John McLear 0cc8405e9c Bump minimum required Node.js version to 10.17.0
This makes it possible to use fs.promises.
2021-01-30 17:00:40 -05:00
Richard Hansen 877f0c5883 server: Use wtfnode to log reasons why node isn't exiting 2021-01-30 08:05:08 +00:00
Richard Hansen ba81ead101 server: Remove all other signal listeners 2021-01-30 08:05:08 +00:00
Richard Hansen ecdb105bfe server: Refine process lifetime management
Define states and use them to properly handle multiple calls to
`start()`, `stop()`, and `exit()`. (Multiple calls to `exit()` can
happen if there is an uncaught exception or signal during shutdown.)

This should also make it easier to add support for cleanly restarting
the server after a shutdown (for tests or via an `/admin` page).
2021-01-30 08:05:08 +00:00
Richard Hansen 725023fe58 server: Refactor `stop()` to avoid no-async-promise-executor lint error
Also log when Etherpad has stopped.
2021-01-30 08:05:08 +00:00
Richard Hansen d339f2a671 server: Perform init after adding uncaught exception handler
This avoids an unnecessary `try` block.
2021-01-30 08:05:08 +00:00
Richard Hansen 86ceb2b610 server: Exit on unhandled Promise rejection 2021-01-30 08:05:08 +00:00
Richard Hansen 0ad0160b7c bin/rebuildPad.js: Fix check for existing rev 2021-01-30 07:45:37 +00:00
Richard Hansen 846e3e9fbd bin/rebuildPad.js: Don't overwrite DB settings
There's no need, and setting `json` to true breaks databases that do
their own serialization of ECMAScript objects.
2021-01-30 07:45:37 +00:00
Richard Hansen bf209ddad3 bin/rebuildPad.js: Close the database when done
This prevents loss of data due to unflushed writes.
2021-01-30 07:45:37 +00:00
Richard Hansen 809dc6e367 bin/rebuildPad.js: PadManager must be loaded before Pad
There is a circular dependency between the two; loading PadManager
first ensures that PadManager's Pad variable is not undefined.
2021-01-30 07:45:37 +00:00