(marginChar: string): (self: string) => string
(self: string, marginChar: string): stringStrips a leading margin prefix from every line using the supplied margin character.
Example (Stripping custom margins)
import { String } from "effect"
const text = " |hello\n |world"
const result = String.stripMarginWith(text, "|")
console.log(result) // "hello\nworld"transforming
Source effect/String.ts:101022 lines
export const const stripMarginWith: {
(marginChar: string): (self: string) => string
(self: string, marginChar: string): string
}
Strips a leading margin prefix from every line using the supplied margin
character.
Example (Stripping custom margins)
import { String } from "effect"
const text = " |hello\n |world"
const result = String.stripMarginWith(text, "|")
console.log(result) // "hello\nworld"
stripMarginWith: {
(marginChar: stringmarginChar: string): (self: stringself: string) => string
(self: stringself: string, marginChar: stringmarginChar: string): string
} = import dualdual(2, (self: stringself: string, marginChar: stringmarginChar: string): string => {
let let out: stringout = ""
for (const const line: stringline of const linesWithSeparators: (
s: string
) => LinesIterator
Returns an IterableIterator which yields each line contained within the
string as well as the trailing newline character.
Example (Iterating lines with separators)
import { String } from "effect"
const lines = String.linesWithSeparators("hello\nworld\n")
console.log(Array.from(lines)) // ["hello\n", "world\n"]
linesWithSeparators(self: stringself)) {
let let index: numberindex = 0
while (let index: numberindex < const line: stringline.String.length: numberReturns the length of a String object.
length && const line: stringline.String.charAt(pos: number): stringReturns the character at the specified index.
charAt(let index: numberindex) <= " ") {
let index: numberindex = let index: numberindex + 1
}
const const stripped: stringstripped = let index: numberindex < const line: stringline.String.length: numberReturns the length of a String object.
length && const line: stringline.String.charAt(pos: number): stringReturns the character at the specified index.
charAt(let index: numberindex) === marginChar: stringmarginChar
? const line: stringline.String.substring(start: number, end?: number): stringReturns the substring at the specified location within a String object.
substring(let index: numberindex + 1)
: const line: stringline
let out: stringout = let out: stringout + const stripped: stringstripped
}
return let out: stringout
})Referenced by 1 symbols