#front-end #js #points #migration #performance #projects

app wasm-grate

Analyzes JS projects for potential WebAssembly migration points

8 releases

0.3.2 Nov 12, 2023
0.3.1 Nov 11, 2023
0.2.2 Nov 5, 2023
0.1.23 Nov 4, 2023

#529 in WebAssembly

ISC license

31KB
635 lines

WASM-grate

WASM-grate (a portmanteau of WebAssembly and "integrate/migrate") is a tool designed to streamline the adoption of WebAssembly in modern front-end web projects.

It helps you to identify potential bottlenecks or performance hitches in JavaScript (JS) or TypeScript (TS) codebases. WASM-grate highlights areas that could significantly benefit from the speed and efficiency of WebAssembly (e.g. CPU-intensive tasks).

Installation

npm i wasm-grate

Usage

wasm-grate -path '<path to a file or directory>'

or

wasm-grate -p '<path>'

Examples:

wasm-grate --path src/pages/Search
wasm-grate -p src/components/Report/Feed/helpers.ts

Output

# LOCATION
src/components/ProjectReport/ProjectFeed/Contribution/helpers/process-pr-data.ts:14:19

# COMPLEXITY SCORE
Complexity: 4/10

# DECLARATION OF THE FUNCTION
Declaration: const getScale = (totalChanges: number | null): number

Deploy to NPM and crates

rust-to-npm-cli deploy -b

Current state

WASM-grate is still in development and not production-ready yet.

For now it works only for:

  • function declarations
function foo() {
    console.log('function declaration');
} 
  • expressions
const bar = function() {
    console.log('function expression');
}
  • arrow functions
const foo = () => {
    console.log('arrow function');
} 

Please, wait for version 1.0.0

Dependencies

~13–25MB
~378K SLoC