When working with ordered sequences and you need to provide a sortable list, you'll find that working with positions is challenging.
- you want to make as few changes as possible to your data and not to update every record with their new possition
- you want your positions to be as short as possible to not waste memory
- you want to be able to add real-time capabilities to allow multiple collaborators to work at the same time
- you want a lock-free and eventually consistent experience
This tool is inspired by two nice close-source implementations. You can find some information about them here
- Figma's ordered sequences (https://blog.figma.com/realtime-editing-of-ordered-sequences-c1e6b46fcd67)
- Flip's ordered containers (https://youtu.be/W0kQ1um9X6w?t=7m1s)
Go ahead an read/watch the resources above. It'll take 15 minutes but it's worth the time.
On top of the ideas from Figma and Flip this library implements a random generator that gives you the shortest possible position string.
npm install random-position --save
var RandomPosition = require('random-position')
RandomPosition.between('1', '4')
RandomPosition.between('595', '601')
RandomPosition.after('98723412')
RandomPosition.before('98723412')
- add mocha and better tests
- add examples (react + firebase)
0.3.0 (2017-12-05) — improved before/after 0.1.0 (2017-12-04) — initial release
Before you submit a pull request, please take the following actions.
- Open an issue describing the contribution you would like to make
- Discuss until we all agree that your idea is useful for the project
- Create a pull request but make sure you follow the style guide and the tests pass
- Voila! You've done an amazing job.
- Hexbridge for sponsoring my open-source work.
MIT @ Andrei Canta