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

https://github.com/hejny/spacetrim

Spacetrim is trimming string from all 4 sides. It is very helpful to keep pretty code indentation without keeping a strange spaces inside a strings.
https://github.com/hejny/spacetrim

javascript library nodejs typescript

Last synced: about 1 year ago
JSON representation

Spacetrim is trimming string from all 4 sides. It is very helpful to keep pretty code indentation without keeping a strange spaces inside a strings.

Awesome Lists containing this project

README

          

# ✂️ Space trim

[![NPM Version of Space trim](https://badge.fury.io/js/spacetrim.svg)](https://www.npmjs.com/package/spacetrim)
[![Quality of package Space trim](https://packagequality.com/shield/spacetrim.svg)](https://packagequality.com/#?package=spacetrim)
[![lint](https://github.com/hejny/spacetrim/actions/workflows/lint.yml/badge.svg)](https://github.com/hejny/spacetrim/actions/workflows/lint.yml)
[![test](https://github.com/hejny/spacetrim/actions/workflows/test.yml/badge.svg)](https://github.com/hejny/spacetrim/actions/workflows/test.yml)
[![Known Vulnerabilities](https://snyk.io/test/github/hejny/spacetrim/badge.svg)](https://snyk.io/test/github/hejny/spacetrim)
[![Issues](https://img.shields.io/github/issues/hejny/spacetrim.svg?style=flat)](https://github.com/hejny/spacetrim/issues)
[![Socket](https://socket.dev/api/badge/npm/package/spacetrim)](https://socket.dev/npm/package/spacetrim)

Spacetrim is trimming string from all 4 sides.

It is very helpful to keep pretty code indentation without keeping strange spaces inside a string.

> ░ is whitespace and `spaceTrim` will trim the string at the boundaries ╔═╗

```
░░░░░░░░░░░░░
░░░░░░░░░░░░░░
░░░░░░░╔═════╗░
░░░░░░░║Hello║░░
░░░░░░░║Space║░░░
░░░░░░░║Trim ║░░░░
░░░░░░░╚═════╝░░░░░
░░░░░░░░░░░░░░░░░░░░
```

## Usage

```bash
npm i spacetrim
```

```typescript
import spaceTrim from 'spacetrim';

const trimmed = spaceTrim(`

Hello
Space
Trim

`);

console.log(trimmed);

/*
Hello
Space
Trim
*/
```

_See more examples in [simple tests](./src/spaceTrim.test.ts)._

## Nesting

This is very usefull when you want to trim multiline strings inside multiline strings.

```typescript
import { spaceTrim } from 'spacetrim';

const trimmed = spaceTrim(
(block) => `

Numbers
${block(['1', '2', '3'].join('\n'))}
Chars
${block(['A', 'B', 'C'].join('\n'))}

`,
);

console.log(trimmed);

/*
Numbers
1
2
3
Chars
A
B
C
*/
```

_See more examples in [nesting tests](./src/nesting/nesting.test.ts)._

## Asynchronous nesting

You can also trim multiline strings which are fetched asynchronously inside multiline strings.

```typescript
import { spaceTrim } from 'spacetrim';

const trimmed = await spaceTrim(
async (block) => `

TypeScript:
${await fetch('https://en.wikipedia.org/wiki/TypeScript').then(
(result) => result.text(),
)}

`,
);

console.log(trimmed);

/*
TypeScript:
TypeScript is a free and open source programming language...
*/
```

_See more examples in [asynchronous nesting tests](./src/nesting/async-nesting.test.ts)._

## 🖋️ Contributing

I am open to pull requests, feedback, and suggestions. Or if you like this utility, you can [☕ buy me a coffee](https://www.buymeacoffee.com/hejny) or [donate via cryptocurrencies](https://github.com/hejny/hejny/blob/main/documents/crypto.md).

You can also ⭐ star the spacetrim package, [follow me on GitHub](https://github.com/hejny) or [various other social networks](https://www.pavolhejny.com/contact/).

## ✨ Partners

Collboard
     
WebGPT
     
Promptbook

[Become a partner](https://www.pavolhejny.com/contact/)