@cljimenez/json-serializer-base-serializers
v1.0.2
Published
A set of serializers used by the npm package @cljimenez/json-serializer-core
Downloads
15
Readme
A set of serializers used by the npm package @cljimenez/json-serializer-core.
🏠 Homepage
See @cljimenez/json-serializer-base-serializers in npm
Index
Install
npm install @cljimenez/json-serializer-base-serializers
Prerequisites
If you want to use @cljimenez/json-serializer-base-serializers
with @cljimenez/json-serializer-core
, you must install both packages.
npm install @cljimenez/json-serializer-core @cljimenez/json-serializer-base-serializers
What is a Serializer?
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
.
About methods
getSerializerType(void)=>string
: Returns a string that represents the type of Serializer.
Example for commonjs:
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:
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:
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:
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:
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:
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'))
How to use?
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.
const installOptions = { includeFunctionSerializer: true }
jsonSerializer.installSerializersAndRefreshJsonSerializer(
baseSerializers,
installOptions,
)
Complete example for commonjs:
// 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:
// 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:
// 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:
// 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*/)
Author
👤 Cristopher Jiménez
- Github: @cristopher1
🤝 Contributing
Contributions, issues and feature requests are welcome!Feel free to check issues page.
📝 License
Copyright © 2023 Cristopher Jiménez. This project is MIT licensed.
This README was generated with ❤️ by readme-md-generator