https://github.com/gourdonski/molarjs
Tooth be told
https://github.com/gourdonski/molarjs
helpers javascript-utils
Last synced: about 1 year ago
JSON representation
Tooth be told
- Host: GitHub
- URL: https://github.com/gourdonski/molarjs
- Owner: gourdonski
- Created: 2017-06-21T05:32:17.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2018-02-11T16:04:50.000Z (about 8 years ago)
- Last Synced: 2025-02-04T05:34:02.430Z (about 1 year ago)
- Topics: helpers, javascript-utils
- Language: JavaScript
- Homepage:
- Size: 80.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MolarJS
Yet another JavaScript library with a (debatably) nifty name. Still has its baby teeth.
## Lookup
A convenient way to manage collections of objects, including setting a TTL.
### Basic usage
var foo = new molar.Lookup(false); //allow dupe keys is false
foo.add('1', { bar: '1' });
foo.add('2', { bar: '2' });
foo.add('3', { bar: '3' });
foo.add('3', { bar: '4' });
var count = foo.count(); //count is 3, because dupe keys set to false
var results = foo.findBy(obj => /\d+/.test(obj.key)); //results contains 3 items, because all keys are digits
## Mapper
Self-documenting object mapping in your code.
### Basic usage
var mapper = new molar.Mapper();
var foo = { name: '1', value: '1' };
mapper.register(new molar.MapperDef('Bar', false) //auto-map set to false
.define('Foo to bar')
.addMap('value', 'value')
.addMap('value', 'id', src => +src + 1)); //transform and map
var bar = mapper.map(foo, 'Bar'); //bar is { value: '1', id: 2 }
## Mutant
Keep track of when properties on an object change.
### Basic usage
var obj = new molar.Mutant({ id: 1, name: 'obj' });
obj.id = 2;
var isMutated = obj.mutated(); //true
obj.id = 1;
isMutated = obj.mutated(); //false because reverted
obj.id = 2;
obj.name = 'mutant';
obj.rebase();
isMutated = obj.mutated(); //false because rebased
obj.id = 1;
obj.name = 'obj';
isMutated = obj.mutated(); //true because no longer based on original obj
## Ready
Determine if a date/time intersects a complex time interval. Cron for intervals.
### Basic usage
var ready = new molar.Ready('* 19-23 * * 2,4 *'); //every Tuesday and Thursday between 7-11PM
var intersects = ready.intersects(new Date()); //true if current time intersects interval