/
1Rrd0
/
Course
Обзор
Документация
Войти
/
1Rrd0
/
Course
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
node_modules/yamljs/src/Dumper.coffee
55 строк
2 KB
dima
2
13 дек 2025, 10:58
13 дек 2025, 10:58
ce5a48e
Код
Авторство
О чём код?
Utils = require './Utils' Inline = require './Inline' # Dumper dumps JavaScript variables to YAML strings. # class Dumper # The amount of spaces to use for indentation of nested nodes. @indentation: 4 # Dumps a JavaScript value to YAML. # # @param [Object] input The JavaScript value # @param [Integer] inline The level where you switch to inline YAML # @param [Integer] indent The level of indentation (used internally) # @param [Boolean] exceptionOnInvalidType true if an exception must be thrown on invalid types (a JavaScript resource or object), false otherwise # @param [Function] objectEncoder A function to serialize custom objects, null otherwise # # @return [String] The YAML representation of the JavaScript value # dump: (input, inline = 0, indent = 0, exceptionOnInvalidType = false, objectEncoder = null) -> output = '' prefix = (if indent then Utils.strRepeat(' ', indent) else '') if inline <= 0 or typeof(input) isnt 'object' or input instanceof Date or Utils.isEmpty(input) output += prefix + Inline.dump(input, exceptionOnInvalidType, objectEncoder) else if input instanceof Array for value in input willBeInlined = (inline - 1 <= 0 or typeof(value) isnt 'object' or Utils.isEmpty(value)) output += prefix + '-' + (if willBeInlined then ' ' else "\n") + @dump(value, inline - 1, (if willBeInlined then 0 else indent + @indentation), exceptionOnInvalidType, objectEncoder) + (if willBeInlined then "\n" else '') else for key, value of input willBeInlined = (inline - 1 <= 0 or typeof(value) isnt 'object' or Utils.isEmpty(value)) output += prefix + Inline.dump(key, exceptionOnInvalidType, objectEncoder) + ':' + (if willBeInlined then ' ' else "\n") + @dump(value, inline - 1, (if willBeInlined then 0 else indent + @indentation), exceptionOnInvalidType, objectEncoder) + (if willBeInlined then "\n" else '') return output module.exports = Dumper