fp-ts-std
Version:
The missing pseudo-standard library for fp-ts.
179 lines • 4.93 kB
TypeScript
/**
* 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