3.14.1 • Published 2 years ago

@aofl/object-utils v3.14.1

Weekly downloads
284
License
MIT
Repository
github
Last release
2 years ago

@aofl/object-utils

A small collection of Object utility functions designed to have a small footprint (20b gz) and be performant.

Api Documentation


Why?

Libraries like Lodash have a high overhead and come with more functionality than most projects need. Also, with es6 features fewer of these "utility" functions are needed.

In Lodash's case, even if you only import the needed features you still get the 4kb gzipped Core build + additional functionality.


Installation

npm i -S @aofl/object-utils

Usage

import {deepAssign} from '@aofl/object-utils';

deepAssign(leftSource, 'nested.path.to.assign', rightSource);

Methods

deepAssign

Recursively calls Object.assign along the specified path.

Arguments

NameTypeDescription
leftSourceObjectLeft source
pathStringPath to target
rightSourceObjectRight source

Example

const user = {
  name: 'Alan',
  account: {
    active: true,
    products: {
      1: true,
      2: true,
      3: true
    }
  },
  preferences: {
   locale: 'en-US'
 }
};

const user2 = deepAssign(user, 'account.products', {
  2: false
});

// { // new ref
//   name: 'Alan',
//   account: { // new ref
//     active: true,
//     products: { // new ref
//       1: true,
//       2: false, // updated value
//       3: true
//     }
//   },
//   preferences: { // same ref
//     locale: 'en-US'
//   }
// };

console.log(user2 === user); // expected result: false
console.log(user2.account === user.account); // expected result: false
console.log(user2.preferences === user.preferences); // expected result: true

deepFreeze

Recursively calls Object.freeze on objects properties.

Note: this method should only be used in development environments and disabled in production

Arguments

NameTypeDescription
sourceObjectSource Object

Example

let user = deepFreeze({
  name: 'Alan',
  account: {
    active: true,
    products: {
      1: true,
      2: true,
      3: true
    }
  },
  preferences: {
   locale: 'en-US'
 }
});

user.account.active = false; // Throws an error in strict mode
console.log(user.account.active); // expected output: true

3.14.1

2 years ago

3.14.0

2 years ago

4.0.0-alpha.45

3 years ago

4.0.0-alpha.44

3 years ago

4.0.0-alpha.17

3 years ago

4.0.0-alpha.16

3 years ago

4.0.0-alpha.15

3 years ago

4.0.0-alpha.19

3 years ago

4.0.0-alpha.18

3 years ago

4.0.0-alpha.39

3 years ago

4.0.0-alpha.38

3 years ago

4.0.0-alpha.37

3 years ago

4.0.0-alpha.36

3 years ago

4.0.0-alpha.31

3 years ago

4.0.0-alpha.30

3 years ago

4.0.0-alpha.35

3 years ago

4.0.0-alpha.34

3 years ago

4.0.0-alpha.33

3 years ago

4.0.0-alpha.32

3 years ago

4.0.0-alpha.28

3 years ago

4.0.0-alpha.27

3 years ago

4.0.0-alpha.26

3 years ago

4.0.0-alpha.25

3 years ago

4.0.0-alpha.29

3 years ago

4.0.0-alpha.20

3 years ago

4.0.0-alpha.24

3 years ago

4.0.0-alpha.23

3 years ago

4.0.0-alpha.22

3 years ago

4.0.0-alpha.21

3 years ago

4.0.0-alpha.42

3 years ago

4.0.0-alpha.41

3 years ago

4.0.0-alpha.40

3 years ago

4.0.0-alpha.43

3 years ago

4.0.0-alpha.13

3 years ago

3.13.1

3 years ago

3.13.0

3 years ago

4.0.0-alpha.11

3 years ago

4.0.0-alpha.10

3 years ago

4.0.0-alpha.9

3 years ago

3.12.1

3 years ago

3.12.0

3 years ago

3.9.0

4 years ago

3.10.0

4 years ago

3.8.0

4 years ago

3.8.1

4 years ago

3.9.0-alpha.0

4 years ago

3.6.1

4 years ago

3.5.0

4 years ago

3.5.0-beta.20

4 years ago

3.5.0-beta.22

4 years ago

3.5.0-beta.21

4 years ago

3.5.0-beta.19

4 years ago

3.5.0-beta.18

4 years ago

3.5.0-beta.15

4 years ago

3.5.0-beta.14

4 years ago

3.5.0-beta.17

4 years ago

3.5.0-beta.16

4 years ago

3.5.0-beta.13

4 years ago

3.5.0-beta.12

4 years ago

3.5.0-beta.11

4 years ago

3.5.0-beta.10

4 years ago

3.5.0-beta.9

4 years ago

3.5.0-beta.8

4 years ago

3.5.0-beta.7

4 years ago

3.5.0-beta.5

4 years ago

3.5.0-beta.6

4 years ago

3.5.0-beta.3

4 years ago

3.5.0-beta.4

4 years ago

3.5.0-beta.2

4 years ago

3.5.0-beta.1

4 years ago

3.3.0

4 years ago

3.2.2-alpha.3

4 years ago

3.2.2-alpha.2

4 years ago

3.2.1

4 years ago

3.2.0

4 years ago

3.1.0

4 years ago

3.0.0

4 years ago

3.0.0-beta.49

4 years ago

3.0.0-beta.48

4 years ago

3.0.0-beta.46

4 years ago

3.0.0-beta.42

4 years ago

3.0.0-beta.41

4 years ago

3.0.0-beta.40

4 years ago

3.0.0-alpha.12

5 years ago

3.0.0-beta.39

5 years ago

3.0.0-beta.38

5 years ago

3.0.0-beta.37

5 years ago

3.0.0-beta.36

5 years ago

3.0.0-beta.35

5 years ago

3.0.0-beta.34

5 years ago

3.0.0-beta.32

5 years ago

3.0.0-beta.30

5 years ago

3.0.0-beta.28

5 years ago

3.0.0-beta.27

5 years ago

3.0.0-beta.26

5 years ago

3.0.0-beta.25

5 years ago

3.0.0-beta.24

5 years ago

3.0.0-beta.23

5 years ago

3.0.0-beta.22

5 years ago

3.0.0-beta.17

5 years ago

3.0.0-beta.16

5 years ago

3.0.0-beta.15

5 years ago

3.0.0-beta.14

5 years ago

3.0.0-beta.13

5 years ago

3.0.0-beta.12

5 years ago

3.0.0-beta.11

5 years ago

3.0.0-beta.9

5 years ago

3.0.0-beta.8

5 years ago

3.0.0-beta.6

5 years ago

3.0.0-beta.1

5 years ago

3.0.0-alpha.11

5 years ago

3.0.0-alpha.5

5 years ago

3.0.0-alpha.0

5 years ago

3.0.0-0

5 years ago

2.1.0-alpha.10

5 years ago

2.0.0

5 years ago

2.0.0-alpha.17

5 years ago

2.0.0-alpha.16

5 years ago

2.0.0-alpha.5

5 years ago

1.4.1

5 years ago

1.4.0

5 years ago

1.3.0

5 years ago

1.2.3

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.1

6 years ago

1.0.0-beta.28

6 years ago

1.0.0-beta.27

6 years ago

1.0.0-beta.26

6 years ago

1.0.0-beta.25

6 years ago

1.0.0-beta.24

6 years ago

1.0.0-beta.23

6 years ago

1.0.0-beta.22

6 years ago

1.0.0-beta.21

6 years ago

1.0.0-beta.20

6 years ago

1.0.0-beta.2

6 years ago

1.0.0-beta.1

6 years ago

1.0.0

6 years ago