Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wlwl2/case-utils
Utility functions for working with string case in Node.js (npm package).
https://github.com/wlwl2/case-utils
Last synced: about 2 months ago
JSON representation
Utility functions for working with string case in Node.js (npm package).
- Host: GitHub
- URL: https://github.com/wlwl2/case-utils
- Owner: wlwl2
- License: mit
- Created: 2019-11-03T01:26:45.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-28T02:44:34.000Z (almost 2 years ago)
- Last Synced: 2024-10-28T15:37:45.799Z (about 2 months ago)
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/case-utils
- Size: 70.3 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# case-utils
Utility functions for working with string case in Node.js.
See [types_of_cases.md](docs/types_of_cases.md) (`docs/types_of_cases.md`) for examples and more documentation.
Also see the contents of the `migration` folder for what might happen in
the future.## Motivation
### Understanding transformations and the code that does them
The advantage of using this package is that there are a few dependencies
and string manipulation code can be seen in a single file (index.js).Understanding what the transformations do is **necessary** and not just helpful.
Transformations should be documented.
At first, you might think you know what transformations are doing,
but consider this:- Do you remember the names of the cases you are converting from and to?
See [types_of_cases.md](docs/types_of_cases.md)
- Do you remember the difference between 'dashes' and 'hyphens'?
See [dashes-vs-hyphens.md](docs/dashes-vs-hyphens.md)
- What happens to **all** and each of the characters after the transformation?
In 9 July 2020, the toStart() function in this package converted
'this is a test' to 'This Is A Test',
but it also converted 'this is a tEST' to 'This Is A Test'. This meant
that, not only was the first character of each word transformed, the others
were too ("EST" to "est").9 July 2020 Log: The toStart() function name and functionality will probably change.
### Transformation function names
**This is not started or complete yet.**
Indicates what you are converting from and what you are converting
to **in the same function name**.### A more formal resource
Get all of this done formally, because it's getting annoying even when
I am writing in C#. See [types_of_cases.md](docs/types_of_cases.md) (`docs/types_of_cases.md`).## Installation
```bash
npm i case-utils --save
```## Usage
**The names of these functions will most likely change in the future.
For now, they kind of work.**### camelToKebab()
1. Bug 1: There would be a **bug** if you used something like `itemIDitemID`.
```js
// Possible solution:
var test = 'itemIDitemID'
console.log(test.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase())
```
2. Bug 2: Numbers in the text are not accounted for yet e.g. `TrainingDummy1`
becomes `training-dummy1` when we want: `training-dummy-1`.
3. Bug 3: Function name change to `camelOrPascalToKebab()` after case detection.
4. Enhancement: `hyphenate()`- 'thisIsATest' becomes: 'this-is-a-test'
- 'itemID' becomes: 'item-id' **(NOT 'item-i-d')**
- 'IsACollider' becomes: 'is-a-collider'
- 'PositionX' becomes: 'position-x'
- 'PlayerID' becomes: 'player-id'
- 'IDPlayer' becomes: 'id-player'
- 'ThisIsATest' becomes: 'this-is-a-test'See the `sample-project` folder for the example script.
Currently also does this for Pascal case.
`CaseUtils.camelToKebab(string)` accepts a string as an argument and
returns a string.#### Example:
```js
const CaseUtils = require('case-utils');console.log(CaseUtils.camelToKebab('thisIsATest')); // Returns `this-is-a-test`.
```### removeHyphens()
Converts 'this-is-a-test' to 'this is a test'.
`CaseUtils.removeHyphens(string)` accepts a string as an argument and
returns a string.#### Example:
```js
const CaseUtils = require('case-utils');console.log(CaseUtils.removeHyphens('this-is-a-test')); // Returns `this is a test`.
```### toStart()
Converts 'this is a test' to 'This Is A Test'.
Also: 'this is a tEST' to 'This Is A Test'.
`CaseUtils.toStart(string)` accepts a string as an argument and
returns a string.Bug: Numbers in the text are not accounted for yet e.g. `TrainingDummy1`
#### Example:
```js
const CaseUtils = require('case-utils');console.log(CaseUtils.toStart('this is a test')); // Returns `This Is A Test`.
```