Skip to content

Add @stylistic/eslint-plugin and enforce formatting rules - #104

Closed
heavyrubberslave wants to merge 15 commits into
mainfrom
chore/stylistic-formatting-rules
Closed

Add @stylistic/eslint-plugin and enforce formatting rules#104
heavyrubberslave wants to merge 15 commits into
mainfrom
chore/stylistic-formatting-rules

Conversation

@heavyrubberslave

Copy link
Copy Markdown
Member

Summary

  • Adds @stylistic/eslint-plugin and enables stylistic.configs.recommended
  • Configures indent (4 spaces), semi (always), comma-dangle (always-multiline)
  • Configures member-delimiter-style (semi for multiline type members, comma for single-line)
  • Configures operator-linebreak (before, with = kept after for multiline type declarations)
  • Configures indent-binary-ops (4 spaces, matching general indent)
  • Configures arrow-parens (as-needed, no exception for block bodies)
  • Requires a blank line between type/interface/class/enum declarations and a following export statement
  • Disables brace-style (codebase mixes Allman for class/constructor declarations and 1tbs for control-flow, not expressible via this rule's single-style options)

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 192 files, which is 92 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 695cdcbf-ab60-434b-9839-78416f61a443

📥 Commits

Reviewing files that changed from the base of the PR and between 907c6ca and ad6a9c7.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (192)
  • .babelrc
  • .github/workflows/release.yml
  • .github/workflows/test.yml
  • eslint.config.ts
  • knip.json
  • package.json
  • resources/schemas/settings.schema.json
  • src/app.ts
  • src/automation/scriptRuntime.ts
  • src/automation/scriptVm.ts
  • src/automation/scriptVmFactory.ts
  • src/controller/automation/createScriptController.ts
  • src/controller/automation/deleteScriptController.ts
  • src/controller/automation/getLogController.ts
  • src/controller/automation/getScriptController.ts
  • src/controller/automation/getScriptsController.ts
  • src/controller/automation/runScriptController.ts
  • src/controller/automation/statusScriptController.ts
  • src/controller/automation/stopScriptController.ts
  • src/controller/controllerInterface.ts
  • src/controller/getDeviceController.ts
  • src/controller/getDevicesController.ts
  • src/controller/healthController.ts
  • src/controller/patchDeviceController.ts
  • src/controller/settings/getSettingsController.ts
  • src/controller/settings/putSettingsController.ts
  • src/controller/versionController.ts
  • src/device/attribute/boolDeviceAttribute.ts
  • src/device/attribute/deviceAttribute.ts
  • src/device/attribute/floatDeviceAttribute.ts
  • src/device/attribute/intDeviceAttribute.ts
  • src/device/attribute/intRangeDeviceAttribute.ts
  • src/device/attribute/listDeviceAttribute.ts
  • src/device/attribute/numberDeviceAttribute.ts
  • src/device/attribute/strDeviceAttribute.ts
  • src/device/bleDevice.ts
  • src/device/detectedDeviceOfferQueue.ts
  • src/device/device.ts
  • src/device/deviceConfig.ts
  • src/device/deviceId.ts
  • src/device/deviceManager.ts
  • src/device/deviceNameGenerator.ts
  • src/device/genericDeviceUpdater.ts
  • src/device/knownDeviceRegistry.ts
  • src/device/peripheralDevice.ts
  • src/device/protocol/airotic/airoticDevice.ts
  • src/device/protocol/airotic/airoticDeviceFactory.ts
  • src/device/protocol/airotic/airoticDeviceProvider.ts
  • src/device/protocol/airotic/airoticProtocol.ts
  • src/device/protocol/buttplugIo/buttplugIoDevice.ts
  • src/device/protocol/buttplugIo/buttplugIoDeviceFactory.ts
  • src/device/protocol/buttplugIo/buttplugIoWebsocketDeviceProvider.ts
  • src/device/protocol/buttplugIo/buttplugIoWebsocketDeviceProviderFactory.ts
  • src/device/protocol/buttplugIo/slvCtrlPlusButtplugWebsocketClientConnector.ts
  • src/device/protocol/deviceProtocol.ts
  • src/device/protocol/estim2b/estim2bDevice.ts
  • src/device/protocol/estim2b/estim2bDeviceFactory.ts
  • src/device/protocol/estim2b/estim2bProtocol.ts
  • src/device/protocol/estim2b/estim2bSerialDeviceProvider.ts
  • src/device/protocol/messageResponseHandler.ts
  • src/device/protocol/slvCtrlPlus/genericSlvCtrlPlusDevice.ts
  • src/device/protocol/slvCtrlPlus/slvCtrlPlusDevice.ts
  • src/device/protocol/slvCtrlPlus/slvCtrlPlusDeviceFactory.ts
  • src/device/protocol/slvCtrlPlus/slvCtrlPlusSerialDeviceProvider.ts
  • src/device/protocol/slvCtrlPlus/slvCtrlProtocol.ts
  • src/device/protocol/slvCtrlPlus/slvCtrlProtocolLegacy.ts
  • src/device/protocol/slvCtrlPlus/slvCtrlProtocolV1.ts
  • src/device/protocol/virtual/audio/piperVirtualDeviceConfig.ts
  • src/device/protocol/virtual/audio/piperVirtualDeviceLogic.ts
  • src/device/protocol/virtual/audio/ttsVirtualDeviceConfig.ts
  • src/device/protocol/virtual/audio/ttsVirtualDeviceLogic.ts
  • src/device/protocol/virtual/display/displayVirtualDeviceLogic.ts
  • src/device/protocol/virtual/genericVirtualDeviceFactory.ts
  • src/device/protocol/virtual/genericVirtualDeviceLogicFactory.ts
  • src/device/protocol/virtual/randomGenerator/randomGeneratorVirtualDeviceConfig.ts
  • src/device/protocol/virtual/randomGenerator/randomGeneratorVirtualDeviceLogic.ts
  • src/device/protocol/virtual/virtualDevice.ts
  • src/device/protocol/virtual/virtualDeviceFactory.ts
  • src/device/protocol/virtual/virtualDeviceLogic.ts
  • src/device/protocol/virtual/virtualDeviceLogicFactory.ts
  • src/device/protocol/virtual/virtualDeviceProvider.ts
  • src/device/protocol/virtual/virtualDeviceProviderFactory.ts
  • src/device/protocol/zc95/zc95Device.ts
  • src/device/protocol/zc95/zc95DeviceFactory.ts
  • src/device/protocol/zc95/zc95MessageFactory.ts
  • src/device/protocol/zc95/zc95Protocol.ts
  • src/device/protocol/zc95/zc95SerialDeviceProvider.ts
  • src/device/provider/bleDeviceProvider.ts
  • src/device/provider/deviceProvider.ts
  • src/device/provider/deviceProviderEvent.ts
  • src/device/provider/deviceProviderFactory.ts
  • src/device/provider/deviceProviderManager.ts
  • src/device/provider/genericDeviceProviderFactory.ts
  • src/device/provider/serialDeviceProvider.ts
  • src/device/serializedTypes.ts
  • src/device/transport/bleDeviceTransport.ts
  • src/device/transport/bleObserver.ts
  • src/device/transport/deviceBidirectionalTransport.ts
  • src/device/transport/deviceReadableTransport.ts
  • src/device/transport/deviceWritableTransport.ts
  • src/device/transport/serialDeviceTransport.ts
  • src/device/transport/serialDeviceTransportFactory.ts
  • src/device/transport/serialPortObserver.ts
  • src/device/transport/sharedObserver.ts
  • src/device/updater/abstractDeviceUpdater.ts
  • src/device/updater/bufferedDeviceUpdater.ts
  • src/device/updater/deviceUpdaterInterface.ts
  • src/entity/deviceList.ts
  • src/entity/list.ts
  • src/env.ts
  • src/factory/dateFactory.ts
  • src/factory/eventEmitterFactory.ts
  • src/factory/serialPortFactory.ts
  • src/factory/uuidFactory.ts
  • src/health/healthMetricsCollector.ts
  • src/health/serializedTypes.ts
  • src/index.ts
  • src/logging/Logger.ts
  • src/logging/PinoLogger.ts
  • src/middleware/contentTypeMiddleware.ts
  • src/repository/automationScriptRepository.ts
  • src/repository/automationScriptRepositoryInterface.ts
  • src/repository/connectedDeviceRepository.ts
  • src/repository/deviceRepositoryInterface.ts
  • src/schemaValidation/JsonSchemaValidator.ts
  • src/schemaValidation/JsonSchemaValidatorFactory.ts
  • src/schemaValidation/schemaValidationError.ts
  • src/serial/frameParser.ts
  • src/serial/synchronousSerialPort.ts
  • src/serialization/classToPlainSerializer.ts
  • src/serialization/discriminator/genericDeviceAttributeDiscriminator.ts
  • src/serialization/discriminator/objectDiscriminator.ts
  • src/serialization/plainToClassSerializer.ts
  • src/serviceMap.ts
  • src/serviceProvider/automationServiceProvider.ts
  • src/serviceProvider/controllerServiceProvider.ts
  • src/serviceProvider/deviceServiceProvider.ts
  • src/serviceProvider/factoryServiceProvider.ts
  • src/serviceProvider/healthServiceProvider.ts
  • src/serviceProvider/loggerServiceProvider.ts
  • src/serviceProvider/repositoryServiceProvider.ts
  • src/serviceProvider/schemaValidationServiceProvider.ts
  • src/serviceProvider/serializationServiceProvider.ts
  • src/serviceProvider/settingsServiceProvider.ts
  • src/serviceProvider/socketServiceProvider.ts
  • src/settings/deviceSource.ts
  • src/settings/knownDevice.ts
  • src/settings/serializedTypes.ts
  • src/settings/settings.ts
  • src/settings/settingsManager.ts
  • src/socket/deviceUpdateHandler.ts
  • src/socket/types.ts
  • src/types.d.ts
  • src/util/async.ts
  • src/util/color.ts
  • src/util/devNullStream.ts
  • src/util/dictionary.ts
  • src/util/error.ts
  • src/util/expressUtils.ts
  • src/util/json.ts
  • src/util/latestOnlyTaskQueue.ts
  • src/util/numbers.ts
  • src/util/objects.ts
  • src/util/process.ts
  • src/util/typeUtils.ts
  • tests/integration/automationScripts.spec.ts
  • tests/integration/deviceEvents.spec.ts
  • tests/integration/devices/estim2bDevice.spec.ts
  • tests/integration/helpers/airoticDeviceSimulator.ts
  • tests/integration/helpers/appHelper.ts
  • tests/integration/helpers/buttplugIoServerSimulator.ts
  • tests/integration/helpers/estim2bDeviceSimulator.ts
  • tests/integration/helpers/mockSerialPortFactory.ts
  • tests/integration/helpers/zc95DeviceSimulator.ts
  • tests/unit/automation/scriptRuntime.spec.ts
  • tests/unit/device/bleDevice.spec.ts
  • tests/unit/device/protocol/airotic/airoticDevice.spec.ts
  • tests/unit/device/protocol/buttplugIo/buttplugIoDevice.spec.ts
  • tests/unit/device/protocol/estim2b/estim2bDevice.spec.ts
  • tests/unit/device/protocol/slvCtrlPlus/genericSlvCtrlPlusDevice.spec.ts
  • tests/unit/device/protocol/slvCtrlPlus/slvCtrlProtocolLegacy.spec.ts
  • tests/unit/device/protocol/slvCtrlPlus/slvCtrlProtocolV1.spec.ts
  • tests/unit/device/protocol/virtual/display/displayVirtualDevice.spec.ts
  • tests/unit/device/protocol/zc95/zc95Device.spec.ts
  • tests/unit/device/protocol/zc95/zc95DeviceFactory.spec.ts
  • tests/unit/device/protocol/zc95/zc95Protocol.spec.ts
  • tests/unit/device/provider/deviceProvider.spec.ts
  • tests/unit/device/testDevice.ts
  • tests/unit/serial/frameParser.spec.ts
  • tsconfig.json
  • tsconfig.tooling.json
  • types/eslint-plugin-sort-class-members.d.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@heavyrubberslave
heavyrubberslave force-pushed the chore/stylistic-formatting-rules branch from 4542f8f to 52d45aa Compare August 5, 2026 22:34
- Add @stylistic/eslint-plugin dependency and stylistic.configs.recommended
- Configure indent (4 spaces), semi (always), comma-dangle (always-multiline)
- Configure member-delimiter-style (semi for multiline, comma for singleline)
- Configure operator-linebreak (before, with = kept after for multiline
  type declarations)
- Configure indent-binary-ops (4 spaces, matching general indent)
- Configure arrow-parens (as-needed, no exception for block bodies)
- Require blank line between type/interface/class/enum declarations and
  a following export statement
- Disable brace-style (mixed Allman/1tbs convention not configurable
  via a single rule)
waitForNextWsEvent(deviceRefreshed) had no predicate, so it could
resolve on the device's own 175ms auto-refresh tick instead of the
refresh actually caused by the channelALevel update, letting the
assertion run before 'A80' was written to the device.
@heavyrubberslave
heavyrubberslave force-pushed the chore/stylistic-formatting-rules branch from 778a488 to a8a3c56 Compare August 7, 2026 15:31
@heavyrubberslave heavyrubberslave added the patch Creates a new patch/bugfix release if merged label Aug 8, 2026
@heavyrubberslave
heavyrubberslave marked this pull request as ready for review August 8, 2026 20:59
@heavyrubberslave

Copy link
Copy Markdown
Member Author

Close in favor of #108

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

patch Creates a new patch/bugfix release if merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant