@dulysse1/better-node
TypeScript icon, indicating that this package has built-in type declarations

2.2.14 • Public • Published

Better Node

Work for Javascript and Typescript

How to install ?

With npm

npm install @dulysse1/better-node

With yarn

yarn add @dulysse1/better-node

With pnpm

pnpm i @dulysse1/better-node

How to use ?

tsconfig.json

{
	"compilerOptions": {
		"lib": ["es2015"], // and more!

		"strict": true, // recommended!

		"strictNullChecks": true // recommended!
	}
}

index.ts / index.js

/**
 * IMPORT AT THE TOP MODULE SCRIPT
 * (index.js, index.ts ...)
 * SO THAT YOU CAN USE IT EVERYWHERE !
 **/

import "@dulysse1/better-node";
// OR //
require("@dulysse1/better-node");

/**
 * Then... Enjoy !
 **/

Examples

+ New !

Namespace 👉 Tx 👈

A magic toolkit for typing

Architecture
/Tx
  --/Array
      --/Split
      --/...
  --/Any
      --/Equal
      --/...
  --/Object
      --/Merge
      --/...
  --/String
      --/Replace
      --/...
  --/Number
      --/Add
      --/...
  --/Union
      --/ToArray
      --/...
Usage example
type T1 = Tx.Array.Reverse<[1, 2, 3]>;
//   ^? [3, 2, 1];

type T2 = Tx.String.ReplaceAll<"Hello world!", "o", "x">;
//   ^? "Hellx wxrld!";

type T4 = Tx.Object.Merge<{ name: "hello" }, { age: 22 }>;
//   ^? { name: "hello"; age: 22 };

type T5 = Tx.String.Slice<"Hello world!", 1, 4>;
//   ^? "ell";

type T6 = Tx.Number.Sub<19, 8>;
//   ^? 11;

type T8 = Tx.Union.ToArray<1 | 2 | 3 | 4 | 5>;
//   ^? [1, 2, 3, 4, 5];

type T9 = Tx.String.Last<"hello">;
//   ^? "o";

// AND MUCH MORE COMPLEX TYPES !

type IsPalindrome<T extends string> = Tx.Any.Equal<T, string> extends true
	? boolean
: Tx.Any.Equal<Tx.String.Length<Tx.Any.Satisfy<T, string>>, 0> extends true
	? true
: Tx.Any.Equal<Tx.String.First<T>, Tx.String.Last<T>> extends true
	? IsPalindrome<Tx.String.Slice<T, 1, Tx.Number.Decr<Tx.String.Length<T>>>>
: false;

type result = IsPalindrome<"kayak">;
//      ^? true;
+ ----

String

// STRING REPLACE ALL
console.log("I like 🐑 , 🐑 is my favorite pet 🐑 !".replaceAll("🐑", "🦁"));
> 'I like 🦁 , 🦁 is my favorite pet 🦁 !'
// STRING STYLE
console.log("Server internal error! ⚠️".red.bolded);
> 'Server internal error! ⚠️'  <= your text will be red and bolded 🔴
// REVERSE YOUR STRING
console.log("Hello World!".reverse());
> '!dlroW olleH'
// CAPITALIZE YOUR STRING
console.log("user_has_name".capitalized(false, "_"));
> 'userHasName'
// UN-CAPITALIZE YOUR STRING
console.log("UserHasName".uncapitalized(true, "-"));
> 'user-has-name'

Array

// ARRAY GENERATOR
console.log(new Array(10).randomize().asc());
> [ 0, 1, 3, 5, 5, 5, 8, 8, 8, 8 ]
// ARRAY REPLACE ELEMENT
const array = [1, 2, 1, 1];

array.replace(1, 3);
console.log(array);

array.replaceAll(1, 3);
console.log(array);
> [ 3, 2, 1, 1 ]
> [ 3, 2, 3, 3 ]
// ARRAY SHUFFLE
const array = [1, 2, 3, 4, 5, 6];
console.log(array.shuffle());
> [ 3, 6, 1, 4, 2, 5 ]
// ARRAY DROP
const array = [1, 2, 3, "hello", "world", 1, "4"];
array.drop("world", 1, "4");
console.log(array);
> [ 2, 3, 'hello' ]
// ARRAY COPY
const array = [1, 2, 3];
const array_copy = array.copy();
array.push(4);
console.log(array_copy);
> [ 1, 2, 3 ]
// ARRAY SUM
const array = [15, 14, 18];
console.log(array.sum());
> 47
// ARRAY INSERT
const array = [1, 2, 3];
array.insert(4, 1);
console.log(array);
> [ 1, 4, 2, 3 ]

Number

// NUMBER PRECISION
console.log(Math.PI.float(2));
> 3.14
// NUMBER IS BETWEEN
const age = 18;
console.log(age.between(18, 25));
> true

And more... :)

Contact

Package Sidebar

Install

npm i @dulysse1/better-node

Weekly Downloads

7

Version

2.2.14

License

ISC

Unpacked Size

109 kB

Total Files

81

Last publish

Collaborators

  • dulysse1