Skip to content

asahasrabuddhe/devtools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

devtools

Headless engines for common developer utilities, implemented in Rust and compiled to WebAssembly. Use them in the browser or any JS runtime that can load WASM (for example via wasm-bindgen).

Install

npm install @ajitems/devtools

Usage

The package is built with wasm-pack for the web target. Initialize the module once, then call the exported functions. Each engine returns a JSON-shaped object with ok, optional data, and optional error (see ToolResult in the sources).

import init, { base64_encode, jwt_decode } from "@ajitems/devtools";

await init(); // WASM start (e.g. panic hook)

const encoded = base64_encode("hello", false);
// { ok: true, data: { output: "...", inputBytes: 5, outputBytes: ... }, error: null }

const decoded = jwt_decode("eyJ...");
// { ok: true | false, data: ..., error: ... }

Exact import paths depend on how you bundle or serve the .wasm file; follow the wasm-pack web workflow for your toolchain.

What’s included

Area Functions (high level)
Encoding base64_encode, base64_decode
JSON json_format, json_diff
JWT jwt_decode
URL url_process
Regex regex_test
Env files env_validate
Docker docker_convert
Tokens / prompts tokens_estimate, prompt_analyse
SLA sla_calculate
Payroll / tax (India-oriented) ctc_calculate, freelance_calculate, gst_calculate, gstin_validate, pan_validate
India utilities validate_ifsc, estimate_cloud_cost, calculate_working_days, calculate_automation_roi, calculate_sprint_velocity, calculate_retry_budget

With the cron feature (enabled in published builds): cron_parse.

Build from source

Prerequisites: stable Rust, wasm32-unknown-unknown, and wasm-pack.

rustup target add wasm32-unknown-unknown
wasm-pack build --target web --release -- --features cron
cp package.npm.json pkg/package.json

Optional Cargo features:

  • cron — cron expression parsing (cron_parse).
  • minify — pulls in minify/CSS dependencies (see Cargo.toml; not required for the default npm build).

CI runs cargo clippy, cargo fmt --check, cargo test --all-features, and the WASM build above.

Publish

Releases are published to npm when a version tag v* is pushed (see .github/workflows/publish.yml).

License

MIT. See LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors