MCPcopy Create free account
hub / github.com/Script-Hub-Org/Script-Hub / parseSurgeArgumentsDesc

Function parseSurgeArgumentsDesc

Rewrite-Parser.beta.js:2359–2379  ·  view source on GitHub ↗
(str, keys = [])

Source from the content-addressed store, hash-verified

2357}
2358
2359function parseSurgeArgumentsDesc(str, keys = []) {
2360 str = `${str ?? ''}`.replace(/\\n/g, '\n')
2361 const map = {}
2362 const keyPattern = keys.length > 0 ? keys.map(escapeRegExp).join('|') : '[^:\\n]+'
2363 const regex = new RegExp(`(?:^|\\n)(${keyPattern}):\\s*`, 'g')
2364 const matches = [...str.matchAll(regex)]
2365 for (let i = 0; i < matches.length; i++) {
2366 const key = matches[i][1].trim()
2367 const start = matches[i].index + matches[i][0].length
2368 const end = i + 1 < matches.length ? matches[i + 1].index : str.length
2369 const value = str.slice(start, end).trim()
2370 if (key && value) map[key] = value
2371 }
2372 str.split(/\r?\n/).forEach(line => {
2373 const parsed = parseSurgeArgumentsDescLine(line, keys)
2374 if (parsed?.key && parsed?.desc && !map[parsed.key]) {
2375 map[parsed.key] = parsed.desc
2376 }
2377 })
2378 return map
2379}
2380
2381function applySurgeArgumentsDesc(args, rawDesc) {
2382 const descMap = parseSurgeArgumentsDesc(

Callers 1

applySurgeArgumentsDescFunction · 0.85

Calls 1

Tested by

no test coverage detected