1 | // @flow
|
2 |
|
3 | import {minify} from 'terser';
|
4 | import serialize from 'serialize-to-js';
|
5 |
|
6 | export default function serializeObject(
|
7 | obj: mixed,
|
8 | shouldMinify: boolean = false,
|
9 | ) {
|
10 | let code = `module.exports = ${serialize(obj)};`;
|
11 |
|
12 | if (shouldMinify) {
|
13 | let minified = minify(code);
|
14 | if (minified.error) {
|
15 | throw minified.error;
|
16 | }
|
17 |
|
18 | code = minified.code;
|
19 | }
|
20 |
|
21 | return code;
|
22 | }
|