mauss
TypeScript icon, indicating that this package has built-in type declarations

0.7.2 • Public • Published

Mauss Total npm downloads · Published npm version Monthly npm downloads License

A declarative approach to a fast and efficient type-safe SDK

A curated collection of modular and reusable development tools written with TypeScript.

Installation

pnpm install mauss

Why?

The best of all possible worlds!

  1. Conciseness of the functional paradigm — less is more
  2. Predictable behavior from the consistency of pure function
  3. Readable and manageable code with declarative immutability
  4. Fast and efficient performance of imperative JavaScript

Write a simpler, cleaner, more predictable code that results in a more maintainable software without sacrificing performance.

Natively, JavaScript already have some aspects to it and provides a wide set of built-in functional methods like .map, .filter, and .reduce that can be chained together indefinitely, but here's the caveat. By definition, the language is considered as a multi-paradigm scripting language, which means — unlike a purely functional language, i.e., Haskell — it is not optimized for the functional paradigm, the application performance will suffer heavily, and it can reduce the maintainability of a codebase to some extent.

Using modules provided by mauss, you can write shorter and simpler code with minimal chaining, and without degrading the performance of your application. A good understanding of software design principles and a discipline in the application of functional and declarative paradigms are still needed to achieve the most benefits. It does not nullify bad practices completely, but it does make it harder to do so...

API Documentation

Module Import
core 'mauss'
api 'mauss/api'
bits 'mauss/bits'
guards 'mauss/guards'
math 'mauss/math'
std 'mauss/std'
utils 'mauss/utils'
web 'mauss/web'
typings 'mauss/typings'

Mauss | MIT License

Package Sidebar

Install

npm i mauss

Weekly Downloads

29

Version

0.7.2

License

MIT

Unpacked Size

73.8 kB

Total Files

74

Last publish

Collaborators

  • ignatiusmb