Scott Kyle
336ef55c1f
Remove uses of for-of loops in RPC modules
...
The React Native packager does not transform for-of loops, and minification step uses UglifyJS, which does not yet support ES6 syntax.
Fixes #120
2015-11-05 16:10:52 -08:00
Scott Kyle
7df2997ee7
Use a Set to store listener callbacks in JS
2015-11-03 02:41:52 -08:00
Scott Kyle
0b35564830
Merge pull request #107 from realm/sk-live-update-fixes
...
Ensure Lists and Results live-update in Chrome
2015-10-28 10:46:43 -07:00
Scott Kyle
46bee3c867
Add beta licenses to Chrome JS modules
2015-10-28 10:37:17 -07:00
Scott Kyle
0eb3b49970
Ensure Lists and Results live-update in Chrome
...
Results needed to live-update during a transaction (not just as the end), and Lists needed to update on deletions as well.
2015-10-28 10:21:32 -07:00
Ari Lazier
ec87281cc1
don't convert undefined to null in rpc requests
2015-10-27 12:13:57 -07:00
Ari Lazier
a1c4cd5702
pr fixes
2015-10-27 07:48:11 -07:00
Ari Lazier
6f41c3cf68
take notification name
2015-10-26 19:18:24 -07:00
Ari Lazier
bb68e45250
support notifications in chrome
2015-10-26 16:49:46 -07:00
Scott Kyle
d55d42da8d
Add ESLint config for JS test files
...
This helps the editor catch simple syntax issues before finding out about them when running a test.
2015-10-21 15:20:44 -07:00
Scott Kyle
2e592bc101
Sprinkle some const inside ES6 JS code
...
React Native 0.13.0 fixes the bug we experienced by using const.
2015-10-21 13:57:34 -07:00
Scott Kyle
725e9855fe
Update RPC JS to use originalXMLHttpRequest
...
React Native now leaves the original object accessible when it "polyfills" objects. So we check for that, but still have the previous logic in place in case they change their minds.
2015-10-21 13:57:34 -07:00
Scott Kyle
0055d0510c
Make List objects work with Object.keys in Chrome
...
Rather than using Object.preventExtensions to throw exceptions when setting any out-of-bounds index, we must instead compromise by only throwing for the common cases, which are -1 and list.length. Having Object.keys() support is essential for List to work with React Native ListViewDataSource.
Resolves #80
2015-10-21 13:11:41 -07:00
Scott Kyle
34b84759c8
Fix crash when reloading app during Chrome debugging
...
Added a session ID, that actually tracks the Realm constructor in our RPC server's JS context. This conveniently let us remove the special casing for defaultPath as well as letting us call the Realm constructor with JSObjectCallAsConstructor.
Fixes #68
2015-10-20 15:10:52 -07:00
Scott Kyle
01dc3a85d9
Add comment about usage of preventExtensions
2015-10-20 00:52:38 -07:00
Scott Kyle
f2c4e7882a
Make RPC lists non-extensible
...
Assigning to non-existent index will throw an exception and all tests pass in Chrome!
2015-10-19 17:43:51 -07:00
Scott Kyle
85e2a26b42
Make RPC Results objects auto-resize
2015-10-19 17:28:20 -07:00
Scott Kyle
3439b4c455
Add getter/setter for defaultPath to RPC
2015-10-19 16:59:04 -07:00
Scott Kyle
03751c35b4
Handle passing dates through RPC
2015-10-19 16:46:56 -07:00
Scott Kyle
b07aa72a55
Move all constants into a single JS file
2015-10-19 16:19:43 -07:00
Scott Kyle
57778ce878
Improve calling object methods through RPC
2015-10-19 16:15:38 -07:00
Scott Kyle
d172b43535
Add path and schemaVersion getters to realm object
2015-10-19 15:46:28 -07:00
Scott Kyle
1b7653206a
Generalize getting/setting properties through RPC
2015-10-19 15:46:00 -07:00
Scott Kyle
4c0cc578d5
Generalize calling methods through the RPC
2015-10-19 12:46:31 -07:00
Scott Kyle
d482ea82e7
Error messages deserve good grammar
2015-10-19 12:18:16 -07:00
Scott Kyle
5f52d07154
Add support for Results methods in Chrome
...
Which only consists of sortByProperty
2015-10-19 12:18:09 -07:00
Scott Kyle
78ec67cd6c
Hacky support for adding notifications in Chrome
...
Since notifications are called synchronously after a write, we fake it by calling them manually for now. The future plan will be more involved, so some of that is stubbed out.
2015-10-19 12:09:14 -07:00
Scott Kyle
b985e1f0a6
Add realm.close() method to JS shim
...
That was easy!
2015-10-19 12:07:50 -07:00
Scott Kyle
44eea1e036
Minor syntax improvements to JS shim
2015-10-19 12:07:50 -07:00
Ari Lazier
5ccc03eeb7
rename some methods for clarity - try to cleanup js objects
2015-10-15 18:48:13 -07:00
Ari Lazier
eb598a2408
fix for in chrome
2015-10-15 17:07:10 -07:00
Scott Kyle
7a79ac8803
Make Xcode tests run in React environment
...
The deleteTestFiles() function is now added to the Realm object, so that it's easy for the RPC module to handle this as well. We can only do this in testing environments in the future.
2015-10-15 03:26:56 -07:00
Scott Kyle
94521b73bb
Properly serialize args to create Realm through RPC
...
An exception was thrown when parsing the JSON when only a string was passed. This is better and no longer uses the Objective-C API for converting the dictionary to a JSValue.
2015-10-15 03:00:13 -07:00
Scott Kyle
22076933ad
Fix "const" search and replace
2015-10-08 15:52:23 -07:00
Ari Lazier
d9618a0e06
remove const, link test app with libRealmReact
2015-10-08 15:51:46 -07:00
Scott Kyle
a997ec5be9
Some cleanup of JS
2015-10-08 15:32:14 -07:00
Scott Kyle
310e3d7a03
Don't store transient arrays returned by RPC
2015-10-08 15:31:29 -07:00
Ari Lazier
417f0a0c72
don't add Results to property types
2015-10-08 11:22:52 -06:00
Ari Lazier
afa974ccc6
serialize Results like other types, use common method rpc call for objects()
2015-10-08 11:04:50 -06:00
Ari Lazier
ed3cf01432
consolidate realm methods, code cleanup/remove some duplication
2015-10-08 10:43:38 -06:00
Scott Kyle
3c9fb1a323
Fix for setting properties through RPC
2015-10-08 02:00:10 -07:00
Scott Kyle
ebb400ed41
Support delete and deleteAll from RPC
2015-10-08 01:53:22 -07:00
Scott Kyle
31fc14d602
Support (de)serialization of objects in RPC
...
Everything is a dictionary with either a `value` key or an `id` key. If it's a value, then it will recursively be (de)serialized.
2015-10-08 01:53:01 -07:00
Scott Kyle
a9cac20f79
Rework lists to each have their own getters
...
This was necessary for them to each have their own enumerable properties. The React Native ListViewDataSource uses Object.keys() to the indexes.
2015-10-07 21:20:14 -07:00
Scott Kyle
141ce2cb6d
Pass realmId for all calls to convert() in rpc.js
2015-10-07 18:40:09 -07:00
Scott Kyle
41ba3b62b8
JS implementation for Results from RPC
2015-10-07 17:08:31 -07:00
Scott Kyle
f35d83a07d
Account for overridden XMLHttpRequest in rpc module
2015-10-07 17:08:31 -07:00
Scott Kyle
cb4fea97d4
Fix "const" search and replace
2015-10-07 17:08:31 -07:00
Ari Lazier
131123ff9a
first end to end rpc call
2015-10-06 14:52:49 -06:00
Ari Lazier
476b3623bb
partial rpc server implemenation
2015-10-06 13:36:56 -06:00
Scott Kyle
bf1ecfbb07
Initial concept of JS for Chrome debugging
...
The idea is that we will have an NPM module that should always be required to use the Realm JS API. It will handle the underlying implementation details depending on which environment it is being run in (i.e. JavaScriptCore, Chrome, Node).
The focus here was on stubbing out the machinery required to get React Native Chrome debugging working with the Realm API by leveraging synchronous requests. The app itself will need to run a web server that responds to these requests.
2015-10-01 22:56:47 -07:00