UNPKG

fp-ts-std

Version:

The missing pseudo-standard library for fp-ts.

179 lines 4.93 kB
/** * A newtype around strings signifying non-emptiness therein. * * Many further utilities can be defined in terms of the `String` module via * contramap, for example any predicates. * * @since 0.15.0 */ import type { Endomorphism } from "fp-ts/Endomorphism"; import * as O from "fp-ts/Option"; import { type Predicate } from "fp-ts/Predicate"; import type { ReadonlyNonEmptyArray } from "fp-ts/ReadonlyNonEmptyArray"; import type { Show as TShow } from "fp-ts/Show"; import { type Newtype } from "newtype-ts"; type Show<A> = TShow<A>; type NonEmptyStringSymbol = { readonly NonEmptyString: unique symbol; }; /** * Newtype representing a non-empty string. Non-emptiness is only guaranteed so * long as interaction with the newtype is confined to exports from this module, * as unlike `NonEmptyArray` it's only protected by a smart constructor. * * @example * import { NonEmptyString, unsafeFromString } from 'fp-ts-std/NonEmptyString' * import * as O from 'fp-ts/Option' * * const signature: NonEmptyString = unsafeFromString('- @samhh.com') * * @category 0 Types * @since 0.15.0 */ export type NonEmptyString = Newtype<NonEmptyStringSymbol, string>; /** * Smart constructor from strings. * * @category 3 Functions * @since 0.15.0 */ export declare const fromString: (x: string) => O.Option<NonEmptyString>; /** * Unsafely lift a string to `NonEmptyString`, throwing upon failure. Can be * useful for static values. Try to use `fromString` instead. * * @category 3 Functions * @since 0.15.0 */ export declare const unsafeFromString: (x: string) => NonEmptyString; /** * Safely derive a `NonEmptyString` from any number. * * @category 3 Functions * @since 0.15.0 */ export declare const fromNumber: (x: number) => NonEmptyString; /** * Unwrap a `NonEmptyString` newtype back to its underlying string * representation. * * @category 3 Functions * @since 0.15.0 */ export declare const unNonEmptyString: (x: NonEmptyString) => string; /** * An alias of `unNonEmptyString`. * * @category 3 Functions * @since 0.15.0 */ export declare const toString: (x: NonEmptyString) => string; /** * `Eq` instance for `NonEmptyString` for testing equivalence. * * @category 1 Typeclass Instances * @since 0.15.0 */ export declare const Eq: import("fp-ts/lib/Eq").Eq<NonEmptyString>; /** * `Ord` instance for `NonEmptyString` for comparison. * * @category 1 Typeclass Instances * @since 0.15.0 */ export declare const Ord: import("fp-ts/lib/Ord").Ord<NonEmptyString>; /** * `Semigroup` instance for `NonEmptyString`, enabling concatenation. * * @category 1 Typeclass Instances * @since 0.15.0 */ export declare const Semigroup: import("fp-ts/lib/Semigroup").Semigroup<NonEmptyString>; /** * `Show` instance for `NonEmptyString`. * * @category 1 Typeclass Instances * @since 0.15.0 */ export declare const Show: Show<NonEmptyString>; /** * Get the first character in a `NonEmptyString`. * * @category 3 Functions * @since 0.15.0 */ export declare const head: Endomorphism<NonEmptyString>; /** * Get the last character in a `NonEmptyString`. * * @category 3 Functions * @since 0.15.0 */ export declare const last: Endomorphism<NonEmptyString>; /** * Convert a `NonEmptyString` to uppercase. * * @category 3 Functions * @since 0.15.0 */ export declare const toUpperCase: Endomorphism<NonEmptyString>; /** * Convert a `NonEmptyString` to lowercase. * * @category 3 Functions * @since 0.15.0 */ export declare const toLowerCase: Endomorphism<NonEmptyString>; /** * Prepend a string to a `NonEmptyString`. * * @category 3 Functions * @since 0.15.0 */ export declare const prepend: (x: string) => Endomorphism<NonEmptyString>; /** * Append a string to a `NonEmptyString`. * * @category 3 Functions * @since 0.15.0 */ export declare const append: (x: string) => Endomorphism<NonEmptyString>; /** * Surround a `NonEmptyString`. Equivalent to calling `prepend` and `append` * with the same outer value. * * @category 3 Functions * @since 0.15.0 */ export declare const surround: (x: string) => Endomorphism<NonEmptyString>; /** * Reverse a `NonEmptyString`. * * @category 3 Functions * @since 0.15.0 */ export declare const reverse: Endomorphism<NonEmptyString>; /** * Calculate the number of characters in a `NonEmptyString`. * * @category 3 Functions * @since 0.17.0 */ export declare const size: (x: NonEmptyString) => number; /** * Split a `NonEmptyString` into an array of strings using `separator`. * * @category 3 Functions * @since 0.17.0 */ export declare const split: (separator: string | RegExp) => (x: NonEmptyString) => ReadonlyNonEmptyArray<string>; /** * Predicate upon the presence of a `search` string anywhere in a * `NonEmptyString`. * * @category 3 Functions * @since 0.17.0 */ export declare const includes: (search: string) => Predicate<NonEmptyString>; export {}; //# sourceMappingURL=NonEmptyString.d.ts.map