https://github.com/cristopher1/json-serializer-base-serializers
A set of serializers used by the npm package @cljimenez/json-serializer-core.
https://github.com/cristopher1/json-serializer-base-serializers
Last synced: about 1 month ago
JSON representation
A set of serializers used by the npm package @cljimenez/json-serializer-core.
- Host: GitHub
- URL: https://github.com/cristopher1/json-serializer-base-serializers
- Owner: cristopher1
- License: mit
- Created: 2023-09-11T19:15:32.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-28T02:17:30.000Z (over 2 years ago)
- Last Synced: 2025-09-22T10:49:28.707Z (9 months ago)
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/@cljimenez/json-serializer-base-serializers
- Size: 385 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Welcome to @cljimenez/json-serializer-base-serializers 👋
> A set of serializers used by the npm package @cljimenez/json-serializer-core.
### 🏠 [Homepage](https://github.com/cristopher1/json-serializer-plugins#readme)
### [See @cljimenez/json-serializer-base-serializers in npm](https://www.npmjs.com/package/@cljimenez/json-serializer-base-serializers)
### [Index](#index)
- [Install](#install)
- [Prerequisites](#prerequisites)
- [What is a Serializer?](#what-is-a-serializer?)
- [About methods](#about-method)
- [How to use?](#how-to-use?)
- [1. Install base serializers using the installer object (baseSerializerInstaller)](#using-installer)
- [2. Add Serializers separately](#add-serializers-separately)
- [Author](#author)
- [Contributing](#contributing)
- [License](#license)
```sh
npm install @cljimenez/json-serializer-base-serializers
```
If you want to use `@cljimenez/json-serializer-base-serializers` with `@cljimenez/json-serializer-core`, you must install both packages.
```script
npm install @cljimenez/json-serializer-core @cljimenez/json-serializer-base-serializers
```
A Serializer is an object that contains three methods:
- **getSerializerType(void)=>string**
- **serialize(unserializedData: any)=>object**
- **parse(serializedData: object)=>any**
The `@cljimenez/json-serializer-base-serializers` includes five serializers:
- **BigIntSerializer**: Serializes and unserializes `big integer`.
- **DateSerializer**: Serializes and unserializes `dates`.
- **FunctionSerializer**: Serializes and unserializes `functions`.
- **MapSerializer**: Serializes and unserializes `maps`.
- **SetSerializer**: Serializes and unserializes `sets`.
**`getSerializerType(void)=>string`**: Returns a string that represents the type of Serializer.
**Example for commonjs:**
```js
const baseSerializers = require('@cljimenez/json-serializer-base-serializers')
const BigIntSerializer = baseSerializers.BigIntSerializer
const DateSerializer = baseSerializers.DateSerializer
const FunctionSerializer = baseSerializers.FunctionSerializer
const MapSerializer = baseSerializers.MapSerializer
const SetSerializer = baseSerializers.SetSerializer
const bigIntSerializer = new BigIntSerializer()
const dateSerializer = new DateSerializer()
const functionSerializer = new FunctionSerializer()
const mapSerializer = new MapSerializer()
const setSerializer = new SetSerializer()
// returns 'bigint'
bigIntSerializer.getSerializerType()
// returns 'Date'
dateSerializer.getSerializerType()
// returns 'function'
functionSerializer.getSerializerType()
// returns 'Map'
mapSerializer.getSerializerType()
// returns 'Set'
setSerializer.getSerializerType()
```
**Example for ES Modules:**
```js
import {
BigIntSerializer,
DateSerializer,
FunctionSerializer,
MapSerializer,
SetSerializer,
} from '@cljimenez/json-serializer-base-serializers'
const bigIntSerializer = new BigIntSerializer()
const dateSerializer = new DateSerializer()
const functionSerializer = new FunctionSerializer()
const mapSerializer = new MapSerializer()
const setSerializer = new SetSerializer()
// returns 'bigint'
bigIntSerializer.getSerializerType()
// returns 'Date'
dateSerializer.getSerializerType()
// returns 'function'
functionSerializer.getSerializerType()
// returns 'Map'
mapSerializer.getSerializerType()
// returns 'Set'
setSerializer.getSerializerType()
```
**`serialize(unserializedData: any)=>object`**. Serializes data, returns an object using the format `{value: serializedData}`.
**Example for commonjs**:
```js
const baseSerializers = require('@cljimenez/json-serializer-base-serializers')
const FunctionSerializer = baseSerializers.FunctionSerializer
const functionSerializer = new FunctionSerializer()
// returns: { value: '(() => {\n "string"\n })' }
const serializedData = functionSerializer.serialize(() => {
'string'
})
```
**Example for ES Modules**:
```js
import { FunctionSerializer } from '@cljimenez/json-serializer-base-serializers'
const functionSerializer = new FunctionSerializer()
// returns: { value: '(() => {\n "string"\n })' }
const serializedData = functionSerializer.serialize(() => {
'string'
})
```
**`parse(serializedData: object)=>any`**. Unserializes data, returns the value formated by serialize method.
**Example for commonjs**:
```js
const baseSerializers = require('@cljimenez/json-serializer-base-serializers')
const FunctionSerializer = baseSerializers.FunctionSerializer
const functionSerializer = new FunctionSerializer()
const serializedData = functionSerializer.serialize(
(arg1, arg2) => `${arg1} and ${arg2}`,
)
// { value: '((arg1, arg2) => `${arg1} and ${arg2}`)' }
console.log(serializedData)
const unserializedData = functionSerializer.parse(serializedData)
// string1 and string2
console.log(unserializedData('string1', 'string2'))
```
**Example for ES Modules**:
```js
import { FunctionSerializer } from '@cljimenez/json-serializer-base-serializers'
const functionSerializer = new FunctionSerializer()
const serializedData = functionSerializer.serialize(
(arg1, arg2) => `${arg1} and ${arg2}`,
)
// { value: '((arg1, arg2) => `${arg1} and ${arg2}`)' }
console.log(serializedData)
const unserializedData = functionSerializer.parse(serializedData)
// string1 and string2
console.log(unserializedData('string1', 'string2'))
```
### 1. Install base serializers using the installer object (baseSerializerInstaller):
**Note**: The FunctionSerializer is not included by default in the installer, if you want include it, you must use the **installOptions** parameter in the **jsonSerializer.installSerializersAndRefreshJsonSerializer** method.
```js
const installOptions = { includeFunctionSerializer: true }
jsonSerializer.installSerializersAndRefreshJsonSerializer(
baseSerializers,
installOptions,
)
```
**Complete example for commonjs:**
```js
// Import the packages.
const core = require('@cljimenez/json-serializer-core')
const baseSerializers = require('@cljimenez/json-serializer-base-serializers')
// Obtain the installer object.
const installer = baseSerializers.baseSerializersInstaller
// Obtain the JsonSerializer object.
const jsonSerializer = core.JsonSerializerFactory.createJsonSerializer()
// Install the serializers without FunctionSerializer.
jsonSerializer.installSerializersAndRefreshJsonSerializer(installer)
// If you want install the FunctionSerializer, you can use:
jsonSerializer.installSerializersAndRefreshJsonSerializer(installer, {
includeFunctionSerializer: true,
})
jsonSerializer.serialize(/*Replace by the unserialized data supports to the installed Serializers*/)
jsonSerializer.parse(/*Replace by the serialized data serializes by jsonSerializer.serialize method*/)
```
**Complete example for ES Modules:**
```js
// Import the JsonSerializerFactory class.
import { JsonSerializerFactory } from '@cljimenez/json-serializer-core'
// Import the baseSerializerInstaller object.
import { baseSerializersInstaller } from '@cljimenez/json-serializer-base-serializers'
// Obtain the JsonSerializer object.
const jsonSerializer = JsonSerializerFactory.createJsonSerializer()
// Install the serializers without FunctionSerializer.
jsonSerializer.installSerializersAndRefreshJsonSerializer(
baseSerializersInstaller,
)
// If you want install the FunctionSerializer, you can use:
jsonSerializer.installSerializersAndRefreshJsonSerializer(
baseSerializersInstaller,
{ includeFunctionSerializer: true },
)
jsonSerializer.serialize(/*Replace by the unserialized data supports to the installed Serializers*/)
jsonSerializer.parse(/*Replace by the serialized data serializes by jsonSerializer.serialize method*/)
```
### 2. Add Serializers separately
**Complete example for commonjs:**
```js
// Import the packages.
const core = require('@cljimenez/json-serializer-core')
const baseSerializers = require('@cljimenez/json-serializer-base-serializers')
// Obtain the JsonSerializer object.
const jsonSerializer = core.JsonSerializerFactory.createJsonSerializer()
// Import Serializers to add.
const BigIntSerializer = baseSerializers.BigIntSerializer
const FunctionSerializer = baseSerializers.FunctionSerializer
const MapSerializer = baseSerializers.MapSerializer
// Create the instances.
const bigIntSerializer = new BigIntSerializer()
const functionSerializer = new FunctionSerializer()
const mapSerializer = new MapSerializer()
// Add Serializers.
jsonSerializer.addSerializerAndRefreshJsonSerializer(bigIntSerializer)
jsonSerializer.addSerializerAndRefreshJsonSerializer(functionSerializer)
jsonSerializer.addSerializerAndRefreshJsonSerializer(mapSerializer)
jsonSerializer.serialize(/*Insert unserialized data supports to the installed Serializers*/)
jsonSerializer.parse(/*Insert serialized data serializes by jsonSerializer.serialize method*/)
```
**Complete example for ES Modules:**
```js
// Import the JsonSerializerFactory class.
import { JsonSerializerFactory } from '@cljimenez/json-serializer-core'
// Import Serializers to add.
import {
BigIntSerializer,
FunctionSerializer,
MapSerializer,
} from '@cljimenez/json-serializer-base-serializers'
// Obtain the JsonSerializer object.
const jsonSerializer = JsonSerializerFactory.createJsonSerializer()
// Create the instances.
const bigIntSerializer = new BigIntSerializer()
const functionSerializer = new FunctionSerializer()
const mapSerializer = new MapSerializer()
// Add Serializers.
jsonSerializer.addSerializerAndRefreshJsonSerializer(bigIntSerializer)
jsonSerializer.addSerializerAndRefreshJsonSerializer(functionSerializer)
jsonSerializer.addSerializerAndRefreshJsonSerializer(mapSerializer)
jsonSerializer.serialize(/*Insert unserialized data supports to the installed Serializers*/)
jsonSerializer.parse(/*Insert serialized data serializes by jsonSerializer.serialize method*/)
```
👤 **Cristopher Jiménez**
- Github: [@cristopher1](https://github.com/cristopher1)
Contributions, issues and feature requests are welcome!
Feel free to check [issues page](https://github.com/cristopher1/json-serializer-base-serializers/issues).
Copyright © 2023 [Cristopher Jiménez](https://github.com/cristopher1).
This project is [MIT](https://github.com/cristopher1/json-serializer-plugins/blob/master/LICENSE) licensed.
---
_This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_