Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/igorskyflyer/npm-extendable-string

πŸ¦€ ExtendableString allows you to create strings on steroids that have custom transformations applied to them, unlike common, plain strings. πŸͺ€
https://github.com/igorskyflyer/npm-extendable-string

back-end browser class extend extendable igorskyflyer javascript js node npm string text transform ts typescript utility vitest

Last synced: 2 days ago
JSON representation

πŸ¦€ ExtendableString allows you to create strings on steroids that have custom transformations applied to them, unlike common, plain strings. πŸͺ€

Awesome Lists containing this project

README

        

ExtendableString



πŸ¦€ ExtendableString allows you to create strings on steroids that have custom


transformations applied to them, unlike common, plain strings. πŸͺ€








πŸ’– Support further development


I work hard for every project, including this one


and your support means a lot to me!




Consider buying me a coffee. β˜•


Thank you for supporting my efforts! πŸ™πŸ˜Š





Donate to igorskyflyer




@igorskyflyer










## πŸ“ƒ Table of contents

- [Usage](#-usage)
- [API](#-api)
- [constructor()](#constructorraw-transformfn)
- [value](#value-string)
- [toString()](#tostring-string)
- [Examples](#-examples)
- [Changelog](#-changelog)
- [License](#-license)
- [Related](#-related)
- [Author](#-author)




## πŸ•΅πŸΌ Usage

Install it by executing:

```shell
npm i '@igor.dvlpr/extendable-string'
```


## 🀹🏼 API


> [!WARNING]
> Do **NOT** instantiate a new object from the `ExtendableString` class, extend it instead.
>


### `constructor(raw, transformFn)`

*Creates an ExtendableString instance.*


`raw` - The string input to transform.

`transformFn` - The transformation function to apply to the string.

Will throw an error if the transformation function is not supplied.

---

### `value: string`

*Gets the transformed string or sets a new value that will be transformed automatically.*

---

### `toString(): string`

*Gets the transformed string value.*

Returns the transformed string.

---

## ✨ Examples

`UpperCaseString.mts`
```ts
import { ExtendableString } from '@igor.dvlpr/extendable-string'

export class UpperCaseString extends ExtendableString {
constructor(value: string) {
super(value, (str) => str.toUpperCase())
}
}
```


`example.mts`
```ts
import { UpperCaseString } from './UpperCaseString.mjs'

const test = new UpperCaseString('aaaa')
console.log(test.value) // Outputs 'AAAA'

const example = new UpperCaseString('aaaa')
example.value = 'hello'
console.log(test.value) // Outputs 'HELLO'
```

---

## πŸ“ Changelog

πŸ“‘ The changelog is available here: [CHANGELOG.md](https://github.com/igorskyflyer/npm-extendable-string/blob/main/CHANGELOG.md).

---

## πŸͺͺ License

Licensed under the MIT license which is available here, [MIT license](https://github.com/igorskyflyer/npm-extendable-string/blob/main/LICENSE).

---

## 🧬 Related

[@igor.dvlpr/keppo](https://www.npmjs.com/package/@igor.dvlpr/keppo)

> _🎑 Parse, manage, compare and output SemVer-compatible version numbers. πŸ›‘_


[@igor.dvlpr/astro-escaped-component](https://www.npmjs.com/package/@igor.dvlpr/astro-escaped-component)

> _πŸƒπŸ»β€β™‚οΈβ€βž‘οΈ An Astro component that holds only HTML-encoded content. πŸ“œ_


[@aria-toolkit/shared](https://www.npmjs.com/package/@aria-toolkit/shared)

> _πŸ‘» Shared resources between Aria modules. πŸ¦β€β¬›_


[@igor.dvlpr/windev](https://www.npmjs.com/package/@igor.dvlpr/windev)

> _πŸƒ Provides ways of checking whether a path is a legacy Windows device. πŸ’Ύ_


[@igor.dvlpr/mapped-replacer](https://www.npmjs.com/package/@igor.dvlpr/mapped-replacer)

> _πŸ—Ί Zero-dependency Map and RegExp based string replacer with Unicode support. 🍁_

---


### πŸ‘¨πŸ»β€πŸ’» Author
Created by **Igor Dimitrijević** ([*@igorskyflyer*](https://github.com/igorskyflyer/)).