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 explicitelse
blocks 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 sample_config/sample_eslint.config.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
string
instead ofString
- Use
bool
instead ofBoolean
- Disallows unsupported types like
undefined
andobject
- Use
@typescript-eslint/adjacent-overload-signatures
: Requires overload signatures to be adjacent
For detailed rule documentation, see the docs/rules directory.