diff options
Diffstat (limited to '@linaria/packages/babel/src/utils/isSerializable.ts')
-rw-r--r-- | @linaria/packages/babel/src/utils/isSerializable.ts | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/@linaria/packages/babel/src/utils/isSerializable.ts b/@linaria/packages/babel/src/utils/isSerializable.ts new file mode 100644 index 0000000..1f65d58 --- /dev/null +++ b/@linaria/packages/babel/src/utils/isSerializable.ts @@ -0,0 +1,11 @@ +import type { Serializable } from '../types'; +import isBoxedPrimitive from './isBoxedPrimitive'; + +export default function isSerializable(o: any): o is Serializable { + return ( + (Array.isArray(o) && o.every(isSerializable)) || + (typeof o === 'object' && + o !== null && + (o.constructor.name === 'Object' || isBoxedPrimitive(o))) + ); +} |