1.4.43 • Published 24 days ago

frotsi v1.4.43

Weekly downloads
-
License
-
Repository
-
Last release
24 days ago

✨FROTSI - Frontend TS Library ✨

Extra Stuff for Frontend Development!

This package should not be taken very seriously BUT it does provide many useful features.

Frotsi provides basic extensions for Math, Promise, String, Array globals objects. Besides that it adds some additional utils for various areas. All these functions will amp your work on building components/views/custom-html-elements etc.

Features

Functions

  • Extending JS.Math with functions: randomInt
  • Extending JS.Array with functions: sortNumbers, popRandom, random, last, symmetricDifference
  • Extending JS.Promise with functions: fireAndForget
  • Providing functions related to generating random IDs: generateInputId (useful for html inputs), generateDocumentId
  • loop iterator so you don't have to iterate over unfilled Arrays anymore
  • LocalStorage opinionated wrapper

Types

  • Flatten - Takes a type T and tries to flatten its type hierarchy by combining all of its properties into a single, non-nested type. Borrowed from TypeScript Grand Wizard Matt Pocock @mattpocock (he calls it Prettify, see here: https://www.youtube.com/watch?v=2lCCKiWGlC0 ).
  • DeepFlatten - Does what Flatten sometimes can't in more complicated and nested object types.

Installation / Import

After installing it with npm you should import the library at the top of your project's main (root) JS/TS file, so the global object extensions can attach themselves. For example in Angular it would be main.ts, in React main.tsx:

import 'frotsi';
import ...
...

Usage

After installing and importing, use it anywhere in your app, like so:

MATH:
Math.randomInt(1, 2);                               // --> '1' OR '2'

ARRAY:
[13,67,4,24,566].sortNumbers();                     // --> '[4, 13, 24, 67, 566]'
[1, 2, 3].random();                                 // --> get one item from provided array
[1, 2, 3].random(2);                                // --> get two item from provided array
[1, 2, 3].popRandom();                              // --> pop one item from provided array
[1, 2, 3].symmetricDifference([1, 2, 3, 3, 4]);     // --> '{ diffBase: [], diffCompared: [4] }'

PROMISE:
new Promise( ... ).fireAndForget();                 // --> 'undefined' - simply fires a Promise
new Promise( ... ).fireAndForget(true);             // --> 'undefined' - simply fires a Promise + logs errors

OTHER:
generateInputId('select', 'project-role');          // --> '@id_4796_5196_input_select_data_project-role'
generateDocumentId();                               // --> '20230525_022358_902Z_420'
loop(5).forEach(index => { ... });                  // --> 'undefined' - loops 5 times
loop(5).map(index => ({index: `${index}`}));        // --> '{index: string}[]' - loop 5 times and returns 5-element typed array
LocalStorage.setItem(`user`, {user: 'John'})
1.4.42

24 days ago

1.4.43

24 days ago

1.4.41

2 months ago

1.4.40

4 months ago

1.4.37

5 months ago

1.4.36

5 months ago

1.4.39

5 months ago

1.4.38

5 months ago

1.4.31

8 months ago

1.4.33

8 months ago

1.4.32

8 months ago

1.4.35

7 months ago

1.4.34

8 months ago

1.4.20

12 months ago

1.4.22

12 months ago

1.4.21

12 months ago

1.4.24

12 months ago

1.4.23

12 months ago

1.4.26

12 months ago

1.4.25

12 months ago

1.4.28

11 months ago

1.4.27

12 months ago

1.4.29

11 months ago

1.3.100

12 months ago

1.4.30

11 months ago

1.4.11

12 months ago

1.4.10

12 months ago

1.4.13

12 months ago

1.4.12

12 months ago

1.4.15

12 months ago

1.4.14

12 months ago

1.4.17

12 months ago

1.4.16

12 months ago

1.4.19

12 months ago

1.4.18

12 months ago

1.4.6

12 months ago

1.4.5

12 months ago

1.4.4

12 months ago

1.4.3

12 months ago

1.4.2

12 months ago

1.4.1

12 months ago

1.3.97

12 months ago

1.3.98

12 months ago

1.3.99

12 months ago

1.4.9

12 months ago

1.4.8

12 months ago

1.4.7

12 months ago

1.3.90

1 year ago

1.3.93

1 year ago

1.3.94

1 year ago

1.3.91

1 year ago

1.3.92

1 year ago

1.3.53

1 year ago

1.3.54

1 year ago

1.3.95

1 year ago

1.3.96

1 year ago

1.3.52

1 year ago

1.3.57

1 year ago

1.3.58

1 year ago

1.3.55

1 year ago

1.3.56

1 year ago

1.3.59

1 year ago

1.3.60

1 year ago

1.3.61

1 year ago

1.3.64

1 year ago

1.3.65

1 year ago

1.3.62

1 year ago

1.3.63

1 year ago

1.3.68

1 year ago

1.3.69

1 year ago

1.3.66

1 year ago

1.3.67

1 year ago

1.2.19

1 year ago

1.3.0

1 year ago

1.3.71

1 year ago

1.3.72

1 year ago

1.3.70

1 year ago

1.3.75

1 year ago

1.3.76

1 year ago

1.3.73

1 year ago

1.3.74

1 year ago

1.3.79

1 year ago

1.2.23

1 year ago

1.2.24

1 year ago

1.3.77

1 year ago

1.3.78

1 year ago

1.2.22

1 year ago

1.2.27

1 year ago

1.2.28

1 year ago

1.2.25

1 year ago

1.2.26

1 year ago

1.2.29

1 year ago

1.3.82

1 year ago

1.3.83

1 year ago

1.3.86

1 year ago

1.2.30

1 year ago

1.3.87

1 year ago

1.2.31

1 year ago

1.3.84

1 year ago

1.3.85

1 year ago

1.3.88

1 year ago

1.3.89

1 year ago

1.2.18

1 year ago

1.2.17

1 year ago

1.2.16

1 year ago

1.2.15

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.1

1 year ago

0.0.0

1 year ago