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

https://github.com/qeepsake/rails-guid

Tiny utility to create and extract rails guid strings in JavaScript 🛤
https://github.com/qeepsake/rails-guid

Last synced: 2 months ago
JSON representation

Tiny utility to create and extract rails guid strings in JavaScript 🛤

Awesome Lists containing this project

README

          

# Rails Guid for JavaScript

[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)

> Zero dependancy utility for creating and extracting rails GUIDs from a string.

[![NPM](https://img.shields.io/npm/v/@qeepsake/rails-guid.svg)](https://www.npmjs.com/package/@qeepsake/rails-guid) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save @qeepsake/rails-guid
```

## Usage

### Extracting Rails GUID

You can use `extractRailsId` to extract a Rails GUID from a string:

```js
import { extractRailsId } from '@qeepsake/rails-guid';

const guid = "gid://qeepsake-rails/Model/55587";
extractRailsId(guid) // -> 55587
```

### Creating Rails GUID

You can use the `createRailsId` to create Rails GUID:

```js
import { createRailsId } from '@qeepsake/rails-guid';

const id = 55587 || "55587";
createRailsId(id, "Model") // -> gid://qeepsake-rails/Model/55587
```

### Tetsing for Extracted Rails ID

```js
import { isExtractedRailsId } from '@qeepsake/rails-guid';

isExtractedRailsId("55587") // => true
isExtractedRailsId("gid://qeepsake-rails/Model/55587") // => false
```

### Testing for Rails Global ID

You can use `isRailsId`` to test if a string is a valid Rails Global ID:

```js
import { isRailsId } from '@qeepsake/rails-guid';

isRailsId("gid://qeepsake-rails/User/1") // => true
isRailsId("gid://someotherapp/User/1") // => true
isRailsId("User/1") // => false
```

This function tests if the string conforms to the general Rails gid structure: `gid:////`.

## License

MIT © [lukebrandonfarrell](https://github.com/lukebrandonfarrell)

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Luke Brandon Farrell

📆 💻

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!