Commit Graph

83 Commits

Author SHA1 Message Date
Mariusz Nowak
eb72d16bf6 Major reorganization and partial refactoring
- Move out main modules from `lib` folder
- Introduce `normalizer` based configurations, and convert primitive and regular handlers into thos normalizers (can be found in lib/normalizers folder). Custom normalizers can be provided at run time via `normaizer` option
- Provide `plain` module which does not load any extensions or normalizers. Any extensions that have to be used should be required upfront and normalizers should be provided directly
- Remove `method` option, instead `methods` and `methods-plan` modules are provided which generate descriptors for lazy created memoized methods
- `profile` is no longer extension. To be used it should be required directly
- Improve logic for `async` handling
- Take out `max` extensionLRU logic into external `lru-queue` package
- Remove `context` option
- Remove possibility to access original arguments when resolvers are used
- Assure expected length of memoized functions
2014-04-27 12:11:06 +02:00
Mariusz Nowak
38f907315d Update up to changes in event-emitter package 2014-04-24 21:58:25 +02:00
Mariusz Nowak
0fe6670fed Update up to changes in event-emitter package 2014-04-24 16:00:11 +02:00
Mariusz Nowak
223a34623d Provide access to references count 2013-11-22 19:21:15 +01:00
Mariusz Nowak
0cc9969de0 Memoized methods factory
Based on `d` descriptors factory.
It's first step to replace `method` option
2013-10-23 18:18:39 +02:00
Mariusz Nowak
f9e9c9edc5 Update up to changes in es5-ext 2013-10-08 18:55:10 +02:00
Mariusz Nowak
05949b19e3 Merge with v0.2 2013-10-08 15:27:12 +02:00
Mariusz Nowak
ff85fb5228 Do not emit asyncpurge on uninitialized values
Fix #9
2013-10-08 15:20:23 +02:00
Mariusz Nowak
9846a233ab -- whitespace 2013-10-03 21:09:37 +02:00
Mariusz Nowak
3a25f3d14c Update up to changes in es5-ext package 2013-10-01 15:14:15 +02:00
Mariusz Nowak
2986e6d0e9 Update up to changes in es5-ext package 2013-08-28 12:59:22 +02:00
Mariusz Nowak
b0ad851327 -- lint 2013-08-07 22:40:53 +02:00
Mariusz Nowak
343b6cdcd4 serialize option, for custom args serialization 2013-07-22 20:37:15 +02:00
Mariusz Nowak
baae9f8d54 Define once 2013-07-22 20:24:04 +02:00
Mariusz Nowak
2b4cf268c8 Fix primitive handling for dynamic length 2013-07-22 19:35:28 +02:00
Mariusz Nowak
748a9aa2d5 Fix primitive handling for dynamic length 2013-07-22 19:34:28 +02:00
Mariusz Nowak
aa79f75eb6 -- whitespace 2013-07-22 19:33:23 +02:00
Mariusz Nowak
f955c6ffbd Rename get to serialize 2013-07-22 19:15:49 +02:00
Mariusz Nowak
53a6304f27 -- whitespace 2013-05-18 10:12:07 +02:00
Mariusz Nowak
434b866ec3 force option
Force memoization of already memoized function
2013-05-18 10:11:09 +02:00
Mariusz Nowak
f57bac383c Merge with v0.2 2013-03-23 16:13:23 +01:00
Mariusz Nowak
28c770166e Prevent circular function calls 2013-03-23 16:00:07 +01:00
Mariusz Nowak
83f31df6f7 Bind function to context with 'method' option 2013-02-12 15:36:30 +01:00
Mariusz Nowak
fb4439692d Improve 'method' functionality.
- Proto chain safe
- Memoized method is ready right after first access (previously it was bundled on first invokation which was problematic)
- memoize when used with method option returns object with name -> descriptor content, it should be used with Object.defineProperties on target object
2013-02-11 17:43:55 +01:00
Mariusz Nowak
0e32a471f6 Run dispose in same context as main function 2013-02-11 16:28:59 +01:00
Mariusz Nowak
8a5e0a3d26 -- whitespace 2013-02-04 14:33:37 +01:00
Mariusz Nowak
48fb305cdd -- whitespace 2013-02-04 14:33:01 +01:00
Mariusz Nowak
0a1e34be71 -- whitespace 2013-02-04 14:32:43 +01:00
Mariusz Nowak
a65cf0b236 Do not import whole event-emitter 2013-01-25 00:01:08 +01:00
Mariusz Nowak
bcf03e72cc Fix cache clear in regular mode
Overlooked (serious) bug introduced after switching to id matching algorithm.
Improved tests
2012-10-04 20:06:29 +02:00
Mariusz Nowak
e31e498ff9 Fix null pre-fetch cache issue 2012-10-03 15:46:32 +02:00
Mariusz Nowak
28da3c9c0d preFetch option for maxAge variant
Thanks @puzrin for comments on that!
2012-10-03 15:40:37 +02:00
Mariusz Nowak
3a16a6feca Provide arguments and context with 'hit' event 2012-10-03 15:06:36 +02:00
Mariusz Nowak
a0db6b4b22 Do not memoize already memoized functions 2012-10-03 13:31:49 +02:00
Mariusz Nowak
625b831533 Readability 2012-09-21 15:52:57 +02:00
Mariusz Nowak
1452a76dac Basic documentation for each module 2012-09-21 15:49:09 +02:00
Mariusz Nowak
a62f1680af -- lint 2012-09-21 15:14:19 +02:00
Mariusz Nowak
4ddf5b3238 Fix variable visibility. Lint 2012-09-21 15:13:52 +02:00
Mariusz Nowak
c2843dd16a Add missing global dependency 2012-09-21 15:02:41 +02:00
Mariusz Nowak
49b181f559 Clean verbosity 2012-09-21 14:44:10 +02:00
Mariusz Nowak
f2d0dacd17 Support for async mode in refCounter 2012-09-21 14:06:32 +02:00
Mariusz Nowak
01735bd218 max: Handle async with async events 2012-09-21 13:54:29 +02:00
Mariusz Nowak
213ee0dc65 (fix) maxAge: Rely on async events 2012-09-21 13:52:26 +02:00
Mariusz Nowak
4c57e47a6d maxAge: Rely on async events 2012-09-21 13:51:29 +02:00
Mariusz Nowak
851a6293ac dispose: rely on async events 2012-09-21 13:50:30 +02:00
Mariusz Nowak
54fb4e4f13 async: safe purgeAll 2012-09-21 13:47:48 +02:00
Mariusz Nowak
d23505d700 maxAge: Handle init time properly when in async mode 2012-09-21 13:40:51 +02:00
Mariusz Nowak
22f4772556 Fix id for initasync event 2012-09-21 13:39:47 +02:00
Mariusz Nowak
329456db58 Improved async handling algorithm.
Introduced async events
2012-09-21 13:26:59 +02:00
Mariusz Nowak
146e59e543 Modularization. Cleanup and logic improvements.
Additionally changed max option algorithm from FIFO to LRU
2012-09-21 12:04:55 +02:00