@effect/data
Advanced tools
Comparing version 0.12.6 to 0.12.7
{ | ||
"name": "@effect/data", | ||
"version": "0.12.6", | ||
"version": "0.12.7", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "repository": { |
@@ -11,2 +11,5 @@ /** | ||
import * as readonlyArray from "@effect/data/internal/ReadonlyArray" | ||
import * as number from "@effect/data/Number" | ||
import * as Option from "@effect/data/Option" | ||
import type * as Ordering from "@effect/data/Ordering" | ||
import type { Refinement } from "@effect/data/Predicate" | ||
@@ -306,3 +309,236 @@ import * as predicate from "@effect/data/Predicate" | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abc", S.charCodeAt(1)), Option.some(98)) | ||
* assert.deepStrictEqual(pipe("abc", S.charCodeAt(4)), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const charCodeAt = (index: number) => | ||
(self: string): Option.Option<number> => | ||
Option.filter(Option.some(self.charCodeAt(index)), (charCode) => !isNaN(charCode)) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abcd", S.substring(1)), "bcd") | ||
* assert.deepStrictEqual(pipe("abcd", S.substring(1, 3)), "bc") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const substring = (start: number, end?: number) => (self: string): string => self.substring(start, end) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abc", S.at(1)), Option.some("b")) | ||
* assert.deepStrictEqual(pipe("abc", S.at(4)), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const at = (index: number) => (self: string): Option.Option<string> => Option.fromNullable(self.at(index)) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abc", S.charAt(1)), Option.some("b")) | ||
* assert.deepStrictEqual(pipe("abc", S.charAt(4)), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const charAt = (index: number) => | ||
(self: string): Option.Option<string> => Option.filter(Option.some(self.charAt(index)), isNonEmpty) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abc", S.codePointAt(1)), Option.some(98)) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const codePointAt = (index: number) => | ||
(self: string): Option.Option<number> => Option.fromNullable(self.codePointAt(index)) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abbbc", S.indexOf("b")), Option.some(1)) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const indexOf = (searchString: string) => | ||
(self: string): Option.Option<number> => | ||
Option.filter(Option.some(self.indexOf(searchString)), number.greaterThanOrEqualTo(0)) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abbbc", S.lastIndexOf("b")), Option.some(3)) | ||
* assert.deepStrictEqual(pipe("abbbc", S.lastIndexOf("d")), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const lastIndexOf = (searchString: string) => | ||
(self: string): Option.Option<number> => | ||
Option.filter(Option.some(self.lastIndexOf(searchString)), number.greaterThanOrEqualTo(0)) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("a", S.localeCompare("b")), -1) | ||
* assert.deepStrictEqual(pipe("b", S.localeCompare("a")), 1) | ||
* assert.deepStrictEqual(pipe("a", S.localeCompare("a")), 0) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const localeCompare = (that: string, locales?: Array<string>, options?: Intl.CollatorOptions) => | ||
(self: string): Ordering.Ordering => number.sign(self.localeCompare(that, locales, options)) | ||
/** | ||
* It is the `pipe`-able version of the native `match` method. | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const match = (regexp: RegExp | string) => | ||
(self: string): Option.Option<RegExpMatchArray> => Option.fromNullable(self.match(regexp)) | ||
/** | ||
* It is the `pipe`-able version of the native `matchAll` method. | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const matchAll = (regexp: RegExp) => (self: string): IterableIterator<RegExpMatchArray> => self.matchAll(regexp) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* const str = "\u1E9B\u0323"; | ||
* assert.deepStrictEqual(pipe(str, S.normalize()), "\u1E9B\u0323") | ||
* assert.deepStrictEqual(pipe(str, S.normalize("NFC")), "\u1E9B\u0323") | ||
* assert.deepStrictEqual(pipe(str, S.normalize("NFD")), "\u017F\u0323\u0307") | ||
* assert.deepStrictEqual(pipe(str, S.normalize("NFKC")), "\u1E69") | ||
* assert.deepStrictEqual(pipe(str, S.normalize("NFKD")), "\u0073\u0323\u0307") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const normalize = (form?: "NFC" | "NFD" | "NFKC" | "NFKD") => (self: string): string => self.normalize(form) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("a", S.padEnd(5)), "a ") | ||
* assert.deepStrictEqual(pipe("a", S.padEnd(5, "_")), "a____") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const padEnd = (maxLength: number, fillString?: string) => | ||
(self: string): string => self.padEnd(maxLength, fillString) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("a", S.padStart(5)), " a") | ||
* assert.deepStrictEqual(pipe("a", S.padStart(5, "_")), "____a") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const padStart = (maxLength: number, fillString?: string) => | ||
(self: string): string => self.padStart(maxLength, fillString) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("a", S.repeat(5)), "aaaaa") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const repeat = (count: number) => (self: string): string => self.repeat(count) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("ababb", S.replaceAll("b", "c")), "acacc") | ||
* assert.deepStrictEqual(pipe("ababb", S.replaceAll(/ba/g, "cc")), "accbb") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const replaceAll = (searchValue: string | RegExp, replaceValue: string) => | ||
(self: string): string => self.replaceAll(searchValue, replaceValue) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("ababb", S.search("b")), Option.some(1)) | ||
* assert.deepStrictEqual(pipe("ababb", S.search(/abb/)), Option.some(2)) | ||
* assert.deepStrictEqual(pipe("ababb", S.search("d")), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const search = (regexp: RegExp | string) => | ||
(self: string): Option.Option<number> => | ||
Option.filter(Option.some(self.search(regexp)), number.greaterThanOrEqualTo(0)) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* const str = "\u0130" | ||
* assert.deepStrictEqual(pipe(str, S.toLocaleLowerCase("tr")), "i") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const toLocaleLowerCase = (locale?: string | Array<string>) => | ||
(self: string): string => self.toLocaleLowerCase(locale) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* const str = "i\u0307" | ||
* assert.deepStrictEqual(pipe(str, S.toLocaleUpperCase("lt-LT")), "I") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export const toLocaleUpperCase = (locale?: string | Array<string>) => | ||
(self: string): string => self.toLocaleUpperCase(locale) | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* | ||
* assert.deepStrictEqual(S.endsWithPosition("abc", "b", 2), true) | ||
@@ -309,0 +545,0 @@ * assert.deepStrictEqual(S.endsWithPosition("abc", "c", 2), false) |
200
String.d.ts
@@ -8,2 +8,4 @@ /** | ||
*/ | ||
import * as Option from "@effect/data/Option"; | ||
import type * as Ordering from "@effect/data/Ordering"; | ||
import type { Refinement } from "@effect/data/Predicate"; | ||
@@ -263,3 +265,201 @@ import type { NonEmptyArray } from "@effect/data/ReadonlyArray"; | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abc", S.charCodeAt(1)), Option.some(98)) | ||
* assert.deepStrictEqual(pipe("abc", S.charCodeAt(4)), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const charCodeAt: (index: number) => (self: string) => Option.Option<number>; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abcd", S.substring(1)), "bcd") | ||
* assert.deepStrictEqual(pipe("abcd", S.substring(1, 3)), "bc") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const substring: (start: number, end?: number) => (self: string) => string; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abc", S.at(1)), Option.some("b")) | ||
* assert.deepStrictEqual(pipe("abc", S.at(4)), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const at: (index: number) => (self: string) => Option.Option<string>; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abc", S.charAt(1)), Option.some("b")) | ||
* assert.deepStrictEqual(pipe("abc", S.charAt(4)), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const charAt: (index: number) => (self: string) => Option.Option<string>; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abc", S.codePointAt(1)), Option.some(98)) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const codePointAt: (index: number) => (self: string) => Option.Option<number>; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abbbc", S.indexOf("b")), Option.some(1)) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const indexOf: (searchString: string) => (self: string) => Option.Option<number>; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abbbc", S.lastIndexOf("b")), Option.some(3)) | ||
* assert.deepStrictEqual(pipe("abbbc", S.lastIndexOf("d")), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const lastIndexOf: (searchString: string) => (self: string) => Option.Option<number>; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("a", S.localeCompare("b")), -1) | ||
* assert.deepStrictEqual(pipe("b", S.localeCompare("a")), 1) | ||
* assert.deepStrictEqual(pipe("a", S.localeCompare("a")), 0) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const localeCompare: (that: string, locales?: Array<string>, options?: Intl.CollatorOptions) => (self: string) => Ordering.Ordering; | ||
/** | ||
* It is the `pipe`-able version of the native `match` method. | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const match: (regexp: RegExp | string) => (self: string) => Option.Option<RegExpMatchArray>; | ||
/** | ||
* It is the `pipe`-able version of the native `matchAll` method. | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const matchAll: (regexp: RegExp) => (self: string) => IterableIterator<RegExpMatchArray>; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* const str = "\u1E9B\u0323"; | ||
* assert.deepStrictEqual(pipe(str, S.normalize()), "\u1E9B\u0323") | ||
* assert.deepStrictEqual(pipe(str, S.normalize("NFC")), "\u1E9B\u0323") | ||
* assert.deepStrictEqual(pipe(str, S.normalize("NFD")), "\u017F\u0323\u0307") | ||
* assert.deepStrictEqual(pipe(str, S.normalize("NFKC")), "\u1E69") | ||
* assert.deepStrictEqual(pipe(str, S.normalize("NFKD")), "\u0073\u0323\u0307") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const normalize: (form?: "NFC" | "NFD" | "NFKC" | "NFKD") => (self: string) => string; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("a", S.padEnd(5)), "a ") | ||
* assert.deepStrictEqual(pipe("a", S.padEnd(5, "_")), "a____") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const padEnd: (maxLength: number, fillString?: string) => (self: string) => string; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("a", S.padStart(5)), " a") | ||
* assert.deepStrictEqual(pipe("a", S.padStart(5, "_")), "____a") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const padStart: (maxLength: number, fillString?: string) => (self: string) => string; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("a", S.repeat(5)), "aaaaa") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const repeat: (count: number) => (self: string) => string; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("ababb", S.replaceAll("b", "c")), "acacc") | ||
* assert.deepStrictEqual(pipe("ababb", S.replaceAll(/ba/g, "cc")), "accbb") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const replaceAll: (searchValue: string | RegExp, replaceValue: string) => (self: string) => string; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("ababb", S.search("b")), Option.some(1)) | ||
* assert.deepStrictEqual(pipe("ababb", S.search(/abb/)), Option.some(2)) | ||
* assert.deepStrictEqual(pipe("ababb", S.search("d")), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const search: (regexp: RegExp | string) => (self: string) => Option.Option<number>; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* const str = "\u0130" | ||
* assert.deepStrictEqual(pipe(str, S.toLocaleLowerCase("tr")), "i") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const toLocaleLowerCase: (locale?: string | Array<string>) => (self: string) => string; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* const str = "i\u0307" | ||
* assert.deepStrictEqual(pipe(str, S.toLocaleUpperCase("lt-LT")), "I") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
export declare const toLocaleUpperCase: (locale?: string | Array<string>) => (self: string) => string; | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* | ||
* assert.deepStrictEqual(S.endsWithPosition("abc", "b", 2), true) | ||
@@ -266,0 +466,0 @@ * assert.deepStrictEqual(S.endsWithPosition("abc", "c", 2), false) |
222
String.js
@@ -6,5 +6,7 @@ "use strict"; | ||
}); | ||
exports.trimStart = exports.trimEnd = exports.trim = exports.toUpperCase = exports.toLowerCase = exports.takeRight = exports.takeLeft = exports.stripMarginWith = exports.stripMargin = exports.startsWithPosition = exports.startsWith = exports.split = exports.slice = exports.replace = exports.linesWithSeparators = exports.length = exports.isString = exports.isNonEmpty = exports.isEmpty = exports.includesWithPosition = exports.includes = exports.endsWithPosition = exports.endsWith = exports.empty = exports.concat = exports.Semigroup = exports.Order = exports.Monoid = exports.Equivalence = void 0; | ||
exports.trimStart = exports.trimEnd = exports.trim = exports.toUpperCase = exports.toLowerCase = exports.toLocaleUpperCase = exports.toLocaleLowerCase = exports.takeRight = exports.takeLeft = exports.substring = exports.stripMarginWith = exports.stripMargin = exports.startsWithPosition = exports.startsWith = exports.split = exports.slice = exports.search = exports.replaceAll = exports.replace = exports.repeat = exports.padStart = exports.padEnd = exports.normalize = exports.matchAll = exports.match = exports.localeCompare = exports.linesWithSeparators = exports.length = exports.lastIndexOf = exports.isString = exports.isNonEmpty = exports.isEmpty = exports.indexOf = exports.includesWithPosition = exports.includes = exports.endsWithPosition = exports.endsWith = exports.empty = exports.concat = exports.codePointAt = exports.charCodeAt = exports.charAt = exports.at = exports.Semigroup = exports.Order = exports.Monoid = exports.Equivalence = void 0; | ||
var _Function = /*#__PURE__*/require("@effect/data/Function"); | ||
var readonlyArray = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/internal/ReadonlyArray")); | ||
var number = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Number")); | ||
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Option")); | ||
var predicate = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Predicate")); | ||
@@ -271,3 +273,219 @@ var equivalence = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/typeclass/Equivalence")); | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abc", S.charCodeAt(1)), Option.some(98)) | ||
* assert.deepStrictEqual(pipe("abc", S.charCodeAt(4)), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.endsWith = endsWith; | ||
const charCodeAt = index => self => Option.filter(Option.some(self.charCodeAt(index)), charCode => !isNaN(charCode)); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abcd", S.substring(1)), "bcd") | ||
* assert.deepStrictEqual(pipe("abcd", S.substring(1, 3)), "bc") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.charCodeAt = charCodeAt; | ||
const substring = (start, end) => self => self.substring(start, end); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abc", S.at(1)), Option.some("b")) | ||
* assert.deepStrictEqual(pipe("abc", S.at(4)), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.substring = substring; | ||
const at = index => self => Option.fromNullable(self.at(index)); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abc", S.charAt(1)), Option.some("b")) | ||
* assert.deepStrictEqual(pipe("abc", S.charAt(4)), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.at = at; | ||
const charAt = index => self => Option.filter(Option.some(self.charAt(index)), isNonEmpty); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abc", S.codePointAt(1)), Option.some(98)) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.charAt = charAt; | ||
const codePointAt = index => self => Option.fromNullable(self.codePointAt(index)); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abbbc", S.indexOf("b")), Option.some(1)) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.codePointAt = codePointAt; | ||
const indexOf = searchString => self => Option.filter(Option.some(self.indexOf(searchString)), number.greaterThanOrEqualTo(0)); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("abbbc", S.lastIndexOf("b")), Option.some(3)) | ||
* assert.deepStrictEqual(pipe("abbbc", S.lastIndexOf("d")), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.indexOf = indexOf; | ||
const lastIndexOf = searchString => self => Option.filter(Option.some(self.lastIndexOf(searchString)), number.greaterThanOrEqualTo(0)); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("a", S.localeCompare("b")), -1) | ||
* assert.deepStrictEqual(pipe("b", S.localeCompare("a")), 1) | ||
* assert.deepStrictEqual(pipe("a", S.localeCompare("a")), 0) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.lastIndexOf = lastIndexOf; | ||
const localeCompare = (that, locales, options) => self => number.sign(self.localeCompare(that, locales, options)); | ||
/** | ||
* It is the `pipe`-able version of the native `match` method. | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.localeCompare = localeCompare; | ||
const match = regexp => self => Option.fromNullable(self.match(regexp)); | ||
/** | ||
* It is the `pipe`-able version of the native `matchAll` method. | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.match = match; | ||
const matchAll = regexp => self => self.matchAll(regexp); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* const str = "\u1E9B\u0323"; | ||
* assert.deepStrictEqual(pipe(str, S.normalize()), "\u1E9B\u0323") | ||
* assert.deepStrictEqual(pipe(str, S.normalize("NFC")), "\u1E9B\u0323") | ||
* assert.deepStrictEqual(pipe(str, S.normalize("NFD")), "\u017F\u0323\u0307") | ||
* assert.deepStrictEqual(pipe(str, S.normalize("NFKC")), "\u1E69") | ||
* assert.deepStrictEqual(pipe(str, S.normalize("NFKD")), "\u0073\u0323\u0307") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.matchAll = matchAll; | ||
const normalize = form => self => self.normalize(form); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("a", S.padEnd(5)), "a ") | ||
* assert.deepStrictEqual(pipe("a", S.padEnd(5, "_")), "a____") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.normalize = normalize; | ||
const padEnd = (maxLength, fillString) => self => self.padEnd(maxLength, fillString); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("a", S.padStart(5)), " a") | ||
* assert.deepStrictEqual(pipe("a", S.padStart(5, "_")), "____a") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.padEnd = padEnd; | ||
const padStart = (maxLength, fillString) => self => self.padStart(maxLength, fillString); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("a", S.repeat(5)), "aaaaa") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.padStart = padStart; | ||
const repeat = count => self => self.repeat(count); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("ababb", S.replaceAll("b", "c")), "acacc") | ||
* assert.deepStrictEqual(pipe("ababb", S.replaceAll(/ba/g, "cc")), "accbb") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.repeat = repeat; | ||
const replaceAll = (searchValue, replaceValue) => self => self.replaceAll(searchValue, replaceValue); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import * as Option from '@effect/data/Option' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* assert.deepStrictEqual(pipe("ababb", S.search("b")), Option.some(1)) | ||
* assert.deepStrictEqual(pipe("ababb", S.search(/abb/)), Option.some(2)) | ||
* assert.deepStrictEqual(pipe("ababb", S.search("d")), Option.none()) | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.replaceAll = replaceAll; | ||
const search = regexp => self => Option.filter(Option.some(self.search(regexp)), number.greaterThanOrEqualTo(0)); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* const str = "\u0130" | ||
* assert.deepStrictEqual(pipe(str, S.toLocaleLowerCase("tr")), "i") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.search = search; | ||
const toLocaleLowerCase = locale => self => self.toLocaleLowerCase(locale); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* import { pipe } from '@effect/data/Function' | ||
* | ||
* const str = "i\u0307" | ||
* assert.deepStrictEqual(pipe(str, S.toLocaleUpperCase("lt-LT")), "I") | ||
* | ||
* @since 1.0.0 | ||
*/ | ||
exports.toLocaleLowerCase = toLocaleLowerCase; | ||
const toLocaleUpperCase = locale => self => self.toLocaleUpperCase(locale); | ||
/** | ||
* @example | ||
* import * as S from '@effect/data/String' | ||
* | ||
* assert.deepStrictEqual(S.endsWithPosition("abc", "b", 2), true) | ||
@@ -278,3 +496,3 @@ * assert.deepStrictEqual(S.endsWithPosition("abc", "c", 2), false) | ||
*/ | ||
exports.endsWith = endsWith; | ||
exports.toLocaleUpperCase = toLocaleUpperCase; | ||
const endsWithPosition = /*#__PURE__*/(0, _Function.dual)(3, (self, searchString, position) => self.endsWith(searchString, position)); | ||
@@ -281,0 +499,0 @@ /** |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
3730580
79299