| 12345678910111213141516171819202122232425262728293031323334 |
- import {isClass} from './utils/index.js';
- const BASE_CTOR_NAMES = [
- 'String',
- 'Number',
- 'Boolean',
- 'Object',
- 'Array',
- 'Function',
- 'Symbol',
- 'Map',
- 'Set',
- 'Date',
- ];
- /**
- * Value to string.
- *
- * @param {any} input
- * @return {string}
- */
- export function valueToString(input) {
- if (input == null) return String(input);
- if (typeof input === 'string') return `"${input}"`;
- if (typeof input === 'number' || typeof input === 'boolean')
- return String(input);
- if (isClass(input)) return input.name ? input.name : 'Class';
- if (input.constructor && input.constructor.name)
- return BASE_CTOR_NAMES.includes(input.constructor.name)
- ? input.constructor.name
- : `${input.constructor.name} (instance)`;
- if (typeof input === 'object' && input.constructor == null) return 'Object';
- return String(input);
- }
|