/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
deps/npm/node_modules/cmd-shim/lib/to-batch-syntax.js
49 строк
2 KB
ops+robot@npmjs.com
deps: upgrade npm to 8.7.0
17 апр 2022, 08:27
17 апр 2022, 08:27
c0d5f4b
Код
Авторство
О чём код?
exports.replaceDollarWithPercentPair = replaceDollarWithPercentPair exports.convertToSetCommand = convertToSetCommand exports.convertToSetCommands = convertToSetCommands function convertToSetCommand (key, value) { var line = '' key = key || '' key = key.trim() value = value || '' value = value.trim() if (key && value && value.length > 0) { line = '@SET ' + key + '=' + replaceDollarWithPercentPair(value) + '\r\n' } return line } function extractVariableValuePairs (declarations) { var pairs = {} declarations.map(function (declaration) { var split = declaration.split('=') pairs[split[0]] = split[1] }) return pairs } function convertToSetCommands (variableString) { var variableValuePairs = extractVariableValuePairs(variableString.split(' ')) var variableDeclarationsAsBatch = '' Object.keys(variableValuePairs).forEach(function (key) { variableDeclarationsAsBatch += convertToSetCommand(key, variableValuePairs[key]) }) return variableDeclarationsAsBatch } function replaceDollarWithPercentPair (value) { var dollarExpressions = /\$\{?([^$@#?\- \t{}:]+)\}?/g var result = '' var startIndex = 0 do { var match = dollarExpressions.exec(value) if (match) { var betweenMatches = value.substring(startIndex, match.index) || '' result += betweenMatches + '%' + match[1] + '%' startIndex = dollarExpressions.lastIndex } } while (dollarExpressions.lastIndex > 0) result += value.slice(startIndex) return result }