Static methods

Public

Wrapped.isWrapped()

The static method checks whether the provided value of any type is an instance of Wrapped.

wrapped.class.ts
public static isWrapped<
  Text extends string,
  Opening extends string = string,
  Closing extends string = string
>(
  value: any,
  opening?: Opening,
  closing?: Closing
): value is Wrapped<Text, Opening, Closing> {
  return isInstance(value, Wrapped)
    ? isStringType(opening) && isStringType(closing)
      ? closing === value.closing && opening === value.opening
      : isStringType(opening)
      ? opening === value.opening
      : isStringType(closing)
      ? closing === value.closing
      : true
    : false;
}

Parameters

Returns

The return value is a boolean indicating whether the value is the Wrapped instance of any or given wrap.

Example usage

// Example usage.
import { Wrap, Wrapped } from '@angular-package/text';

// Define the wrapped.
const wrapped = new Wrapped(`[Oh no, I am wrapped]`, new Wrap('[', ']'));

// Returns `true`
Wrapped.isWrapped(wrapped, new Wrap('[', ']'));

Wrapped.template()

The static "tag" method builds the wrapped text of a string type on the template literal. It consists of a text and an instance of Wrap.

wrapped.class.ts
public static template(
  template: TemplateStringsArray,
  ...values: any[]
): string {
  let text, wrap;
  return (
    ([text, wrap] = values),
    `${Wrap.isWrap(wrap) ? wrap.opening : ''}${template[0]}${text || ''}${
      Wrap.isWrap(wrap) ? wrap.closing : ''
    }`
  );
}

Parameters

Returns

The return value is a string the wrapped text, or an empty string if elements of the provided values are not string.

Example usage

// Example usage.
import { Wrap, Wrapped } from '@angular-package/text';

// Define.
const wrap = new Wrap('[[[[', ']]]]');

// Returns [[[[prefix-text to be wrapped]]]]
Wrapped.template`prefix-${'text to be wrapped'}${wrap}`;

Last updated