https://github.com/prinorange/nullify-undefined
Convert undefined in the object to null to solve the problem of javascript object serialization in some scenarios
https://github.com/prinorange/nullify-undefined
javascript null null-safety typescript undefined
Last synced: 8 months ago
JSON representation
Convert undefined in the object to null to solve the problem of javascript object serialization in some scenarios
- Host: GitHub
- URL: https://github.com/prinorange/nullify-undefined
- Owner: PrinOrange
- Created: 2023-01-26T03:43:51.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-05-05T09:50:11.000Z (almost 3 years ago)
- Last Synced: 2025-01-14T22:48:08.096Z (about 1 year ago)
- Topics: javascript, null, null-safety, typescript, undefined
- Language: TypeScript
- Homepage:
- Size: 42 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
## EMPTY HANDLING FOR JS OBJECT
When writing JavaScript or TypeScript, sometimes you will encounter the problem of serializing undefined values and causing errors.
For example, In [next.js]() developing when you pass an object with key of undefined value in `getStaticProps` or `getServerSideProps`, it will throw such the error:
```
error - SerializableError:
Error serializing '.Prop.value returned fram 'getStaticProps’in "/page/[..slug]".
Reason: "undefined’ cannot be serialized as JSON.
Please use 'null’or omit this value.
```
The bad thing is: many of the Props passed wrote in TypeScript are Optional Keys, and there are a lot of structured sub-data.
So when you accidentally pass in a key whose value is undefined, an error will be raised. This places a large burden on program checking.
So in order to safely serialize an object or a value, you can convert all Undefined to null, which is what this package does.
### Install
```bash
npm install nullify-undefined
```
### Usage
This library provides two modular reference methods of `ESM` and `CommonJS module`. To import this library,
```javascript
import Nullify from 'nullify-undefined/esm' // For esm
var Nullify = require('nullify-undefined/cjs') //For cjs
```
For example, I need to transform all `undefined` values into `null`:
```javascript
var obj = {
a: "the value of a",
b: {
c: undefined,
d: [{ e: undefined }, undefined],
},
f: null,
};
```
use `nullifyUndefined` function
```javascript
Nullify.nullifyUndefined(obj);
```
Output:
```javascript
obj = {
a: "the value of a",
b: {
c: null,
d: [{ e: null }, null],
},
f: null,
};
```
This function changes the value of the object passed in, and the return value is a reference to the passed object. If you don't want to change the passed object, you can make a deep copy of the passed object. like this:
```javascript
Nullify.nullifyUndefined({...obj});
```
In addition, this library also provides some other functions. For example:
+ undefineNull : Replaces null values in JavaScript objects with undefined.
+ removeEmptyValue : Remove all empty values in JavaScript objects. Contains `null` and `undefined` value.
+ removeNull : Replaces all `null` values in JavaScript objects.
+ removeUndefined : Replaces all `undefined` values in JavaScript objects.
Their usage is similar to the example above.
### LICENSE
This project is MIT licensed.