You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							37 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							37 lines
						
					
					
						
							1.1 KiB
						
					
					
				"use strict"; | 
						|
Object.defineProperty(exports, "__esModule", { value: true }); | 
						|
exports.toString = void 0; | 
						|
const quote_1 = require("./quote"); | 
						|
const object_1 = require("./object"); | 
						|
const function_1 = require("./function"); | 
						|
/** | 
						|
 * Stringify primitive values. | 
						|
 */ | 
						|
const PRIMITIVE_TYPES = { | 
						|
    string: quote_1.quoteString, | 
						|
    number: (value) => (Object.is(value, -0) ? "-0" : String(value)), | 
						|
    boolean: String, | 
						|
    symbol: (value, space, next) => { | 
						|
        const key = Symbol.keyFor(value); | 
						|
        if (key !== undefined) | 
						|
            return `Symbol.for(${next(key)})`; | 
						|
        // ES2018 `Symbol.description`. | 
						|
        return `Symbol(${next(value.description)})`; | 
						|
    }, | 
						|
    bigint: (value, space, next) => { | 
						|
        return `BigInt(${next(String(value))})`; | 
						|
    }, | 
						|
    undefined: String, | 
						|
    object: object_1.objectToString, | 
						|
    function: function_1.functionToString, | 
						|
}; | 
						|
/** | 
						|
 * Stringify a value recursively. | 
						|
 */ | 
						|
const toString = (value, space, next, key) => { | 
						|
    if (value === null) | 
						|
        return "null"; | 
						|
    return PRIMITIVE_TYPES[typeof value](value, space, next, key); | 
						|
}; | 
						|
exports.toString = toString; | 
						|
//# sourceMappingURL=stringify.js.map
 |