recital / core / src / tools / split-line-by-spaces-with-quotes.ts
split-line-by-spaces-with-quotes.ts
Raw
/**
 * Copyright (c) 2022 Amorphous
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */

/**
 * Splits a string by whitespace, except for whitespace that's within quotes
 * @param line
 */
export const splitLineBySpacesWithQuotes = (line: string): string[] => {
	return line.match(/(\S*'.*?'|\S*".*?"|\S+)/gm) || []
}