https://github.com/aleclarson/php-serialized
PHP serialize and unserialize for NodeJS (with useful error messages)
https://github.com/aleclarson/php-serialized
ast nodejs parser php serialized
Last synced: about 2 months ago
JSON representation
PHP serialize and unserialize for NodeJS (with useful error messages)
- Host: GitHub
- URL: https://github.com/aleclarson/php-serialized
- Owner: aleclarson
- License: mit
- Created: 2018-08-16T20:28:21.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2020-03-16T21:41:51.000Z (over 6 years ago)
- Last Synced: 2024-10-29T20:08:42.390Z (over 1 year ago)
- Topics: ast, nodejs, parser, php, serialized
- Language: JavaScript
- Homepage:
- Size: 12.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# php-serialized v1.2.0
PHP `serialize` and `unserialize` for NodeJS (with **useful error messages**)
```js
const {serialize, unserialize} = require('php-serialized');
serialize([ null ]);
// => 'a:1:{i:0;N;}'
unserialize('a:1:{i:0;N;}');
// => [ [0, null] ]
```
The return value of `unserialize` is always an array.
By default, array nodes are *not* converted in any way.
Pass a function to transform parsed arrays.
```js
unserialize('a:1:{i:0;N;}', (arr) => {
let res = [];
for (let i = 0; i < arr.length; i += 2) {
res[arr[i]] = arr[i + 1];
}
return res;
});
// => [ [null] ]
```
*Note:* Serialized class instances are not currently supported. Pull requests are encouraged!
### `parse(str: string, raw: Function | true): Array`
Parse a serialized string into an array of AST nodes.
Any syntax errors are returned in an array. The parser will continue until the end is reached or a fatal error is encountered. This means multiple errors can be returned.
When 1+ errors are encountered, the returned array will only contain error nodes. Use `results[0].type !== 'error'` to know if there are no errors.
```js
const {parse} = require('php-serialized-ast');
parse('a:0:{}');
// => [{ type: 'array', value: [], start: 0, end: 6 }]
parse('a:0:{');
// => [{ type: 'error', error: 'Array never closed', start: 0 }]
```
### `reduce(ast: Array | Node) : any`
Convert AST nodes to their raw values using the `reduce` function.
Array nodes are *not* converted in any way.
```js
const {reduce, parse} = require('php-serialized-ast');
reduce(parse('a:1:{i:0;N;}')); => [ [0, null] ]
```
*Note:* Doing `reduce(parse(str))` will always be slower than doing `unserialize(str)` because of the intermediate AST nodes.