An ESLint plugin that helps developers write better AssemblyScript code by enforcing language-specific rules and best practices.
This plugin provides two sets of rules:
- Language Standards: Rules that enforce AssemblyScript language restrictions and prevent errors
- Performance Optimization: Rules that help improve code performance in WebAssembly
Enforces AssemblyScript language compatibility:
dont-omit-else: Requires explicitelseblocks for conditionals that don't have early return statementsno-spread: Prevents use of spread syntax (...) which is not supported in AssemblyScriptno-unsupported-keyword: Disallows TypeScript keywords not supported in AssemblyScript (any,never,undefined)
Optimizes code for better WebAssembly performance:
-
array-init-style: Recommends usingnew Array<T>()instead of[]for initializing empty arrays -
no-repeated-member-access: Recommends extracting repeated member access to improve performance
See eslint.config.publish.mjs for a detailed example of how to configure and use this plugin.
It includes some other pre-written rules including:
no-implicit-globals: Warns against creating implicit global variablescurly: Requires curly braces for all control statements to prevent error-prone one-liner code@typescript-eslint/no-restricted-types: Enforces AssemblyScript-specific type usage:- Use
stringinstead ofString - Use
boolinstead ofBoolean - Disallows unsupported types like
undefinedandobject
- Use
@typescript-eslint/adjacent-overload-signatures: Requires overload signatures to be adjacent
For detailed rule documentation, see the docs/rules directory.