A simple decode/encode solution for json / jsonx / url-encoded / xml / yaml.
npm install @chubbyts/chubbyts-decode-encode














A simple decode/encode solution for json / jsonx / url-encoded / xml / yaml.
* node: 18
* [@chubbyts/chubbyts-throwable-to-error][2]: ^2.0.2
* [fast-xml-parser][3]: ^5.3.1
* [qs][4]: ^6.14.0
* [yaml][5]: ^2.8.1
Through NPM as [@chubbyts/chubbyts-decode-encode][1].
``ts`
npm i @chubbyts/chubbyts-decode-encode@^2.1.1
#### createDecoder
`ts
import { createDecoder } from '@chubbyts/chubbyts-decode-encode/dist/decoder/decoder';
import { createJsonTypeDecoder } from '@chubbyts/chubbyts-decode-encode/dist/decoder/json-type-decoder';
const decoder = createDecoder([createJsonTypeDecoder()]);
const data = decoder.decode('{"key":"value"}', 'application/json'); // or with 3th argument, for example { user: 'username1' }
// data: {key: "value"}
const contentTypes = decoder.contentTypes;
// contentTypes: ['application/json']
`
#### createJsonTypeDecoder
`ts
import { createJsonTypeDecoder } from '@chubbyts/chubbyts-decode-encode/dist/decoder/json-type-decoder';
const jsonTypeDecoder = createJsonTypeDecoder();
const data = jsonTypeDecoder.decode('{"key":"value"}');
// data: {key: "value"}
const contentType = jsonTypeDecoder.contentType;
// contentType: 'application/json'
`
#### createJsonxTypeDecoder
`ts
import { createJsonxTypeDecoder } from '@chubbyts/chubbyts-decode-encode/dist/decoder/jsonx-type-decoder';
const jsonxTypeDecoder = createJsonxTypeDecoder();
const data = jsonxTypeDecoder.decode(
);`
// data: {key: "value"}
const contentType = jsonxTypeDecoder.contentType;
// contentType: 'application/jsonx+xml'
#### createUrlEncodedTypeDecoder
`ts
import { createUrlEncodedTypeDecoder } from '@chubbyts/chubbyts-decode-encode/dist/decoder/url-encoded-type-decoder';
const urlEncodedTypeDecoder = createUrlEncodedTypeDecoder();
const data = urlEncodedTypeDecoder.decode('key=value');
// data: {key: "value"}
const contentType = urlEncodedTypeDecoder.contentType;
// contentType: 'application/x-www-form-urlencoded'
`
#### createYamlTypeDecoder
`ts
import { createYamlTypeDecoder } from '@chubbyts/chubbyts-decode-encode/dist/decoder/yaml-type-decoder';
const yamlTypeDecoder = createYamlTypeDecoder();
const data = yamlTypeDecoder.decode('key: value');
// data: {key: "value"}
const contentType = yamlTypeDecoder.contentType;
// contentType: 'application/x-yaml'
`
#### createEncoder
`ts
import { createEncoder } from '@chubbyts/chubbyts-encode-encode/dist/encoder/encoder';
import { createJsonTypeEncoder } from '@chubbyts/chubbyts-encode-encode/dist/encoder/json-type-encoder';
const encoder = createEncoder([createJsonTypeEncoder()]);
const encodedData = encoder.encode({key: "value"}, 'application/json'); // or with 3th argument, for example { user: 'username1' }
// encodedData: {"key":"value"}
const contentTypes = encoder.contentTypes;
// contentTypes: ['application/json']
`
#### createJsonTypeEncoder
`ts
import { createJsonTypeEncoder } from '@chubbyts/chubbyts-encode-encode/dist/encoder/json-type-encoder';
const jsonTypeEncoder = createJsonTypeEncoder();
const encodedData = jsonTypeEncoder.encode({key: "value"});
// encodedData: {"key":"value"}
const contentType = jsonTypeEncoder.contentType;
// contentTypes: 'application/json'
`
#### createJsonxTypeEncoder
`ts
import { createJsonxTypeEncoder } from '@chubbyts/chubbyts-encode-encode/dist/encoder/jsonx-type-encoder';
const jsonxTypeEncoder = createJsonxTypeEncoder();
const encodedData = jsonxTypeEncoder.encode({key: "value"});
// encodedData:
//
//
//
const contentType = jsonxTypeEncoder.contentType;
// contentTypes: 'application/jsonx+xml'
`
#### createUrlEncodedTypeEncoder
`ts
import { createUrlEncodedTypeEncoder } from '@chubbyts/chubbyts-encode-encode/dist/encoder/url-encoded-type-encoder';
const urlEncodedTypeEncoder = createUrlEncodedTypeEncoder();
const encodedData = urlEncodedTypeEncoder.encode({key: "value"});
// encodedData: key=value
const contentType = urlEncodedTypeEncoder.contentType;
// contentTypes: 'application/x-www-form-urlencoded'
`
#### createYamlTypeEncoder
`ts
import { createYamlTypeEncoder } from '@chubbyts/chubbyts-encode-encode/dist/encoder/yaml-type-encoder';
const yamlTypeEncoder = createYamlTypeEncoder();
const encodedData = yamlTypeEncoder.encode({key: "value"});
// encodedData: key: value
const contentType = yamlTypeEncoder.contentType;
// contentTypes: 'application/x-yaml'
``
2025 Dominik Zogg
[1]: https://www.npmjs.com/package/@chubbyts/chubbyts-decode-encode
[2]: https://www.npmjs.com/package/@chubbyts/chubbyts-throwable-to-error
[3]: https://www.npmjs.com/package/fast-xml-parser
[4]: https://www.npmjs.com/package/qs
[5]: https://www.npmjs.com/package/yaml