short-objectid
Version:
The idea of this project is make your details route easier 🥰 ..
95 lines (70 loc) • 3.92 kB
Markdown
---
[![Build Status][travis-img]][travis-url]
[![Coverage Status][coverage-img]][coverage-url]
[![NPM version][npm-badge]][npm-url]
[![License][license-badge]][license-url]
![Top Language][top-language-badge]
![Code Size][code-size-badge]
[![Code of Conduct][coc-badge]][coc-url]
[![PRs Welcome][pr-badge]][pr-url]
<!-- ***************** -->
[]: https://travis-ci.org/3imed-jaberi/Short-ObjectId.svg?branch=master
[]: https://travis-ci.org/3imed-jaberi/Short-ObjectId
[]: https://coveralls.io/repos/github/3imed-jaberi/Short-ObjectId/badge.svg?branch=master
[]: https://coveralls.io/github/3imed-jaberi/Short-ObjectId?branch=master
[]: https://img.shields.io/npm/v/short-objectid.svg?style=flat
[]: https://www.npmjs.com/package/short-objectid
[]: https://img.shields.io/badge/license-MIT-green.svg?style=flat-square
[]: https://github.com/3imed-jaberi/short-objectid/blob/master/LICENSE
[]: https://img.shields.io/github/languages/top/3imed-jaberi/short-objectid
[]: https://img.shields.io/github/languages/code-size/3imed-jaberi/short-objectid
[]: https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square
[]: https://github.com/3imed-jaberi/short-objectid/blob/master/CODE_OF_CONDUCT.md
[]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg
[]: https://github.com/3imed-jaberi/short-objectid/blob/master/CONTRIBUTING.md
<!-- ***************** -->
The idea of this module is make your route easier ⚡ when you work with mongodb object-ids 🗜🚀 ..
> Warning ⚠️: Previous versions are deprecated. For that the first release is 5.0.0-rc 👻.
```bash
$ npm install short-objectid
$ yarn add short-objectid
```
> Caution 🚨: Be careful when you use `shortObjectIdCache`. All cache hooks are not stable outside the function.
- `shortObjectId` — helps you to compress your ObjectId and make it short.
- `shortObjectIdCache` — A predictable cache container instance, helps you <br/> to go and return between the shortObjetId number and the original ObjectId <br/> and subscribe to each shortObjectId (func) call.
> __When you pass `cache: true` inside the options object, you don't need to use <br/> `shortObjectIdCache` because it works on the background.__
### `Usage`
This is a practical example of how to use.
```javascript
// you can also use the desctructure way ..
const shortObjectId = require ('short-objectid');
// objectId <required> ..
let mongodbObjectId = { "$oid" : "507f191e810c19729de860ea" };
// config object <optional> ..
let config = { Timestamp: 57, MachineId: 65, ProcessId: 48, Counter: 47 };
// options object <optional> ..
// you can pass one of these options [cache, keepOriginal] ..
// cache option, informs the shortObjectId function that you
// should subscribe to each call and then store all data ..
let opts = { cache: true };
// Now you have access to 2 hooks (only with cache opts)
// + getShortObjectId(fullObjectId: string): number
// + getFullObjectId(shortObjectId: number): string
const { shortObjectId, getShortObjectId, getFullObjectId } = shortObjectId(mongodbObjectId, config, opts);
// Result:
// console.log(`*****\n ${shortObjectId} \n*****`);
// Treminal
// $your_pc_name_with_your_directory
// *****
// 532860
// *****
```
> You can play around with it on this sandbox example [codesandbox.io/short-objectid](https://codesandbox.io/s/short-objectid-fs0kv) using `Express JS` and `Mongoose` 🙌🏻.
---
[](LICENSE)