mirror of
https://github.com/status-im/realm-js.git
synced 2025-02-02 09:46:28 +00:00
add readOnly property
This commit is contained in:
parent
b9b3812c86
commit
2b35360117
@ -71,6 +71,8 @@ export default class Realm {
|
||||
|
||||
[
|
||||
'path',
|
||||
'readOnly',
|
||||
'schema',
|
||||
'schemaVersion',
|
||||
].forEach((name) => {
|
||||
Object.defineProperty(this, name, {get: util.getterForProperty(name)});
|
||||
|
@ -148,6 +148,7 @@ class Realm {
|
||||
static void get_path(ContextType, ObjectType, ReturnValue &);
|
||||
static void get_schema_version(ContextType, ObjectType, ReturnValue &);
|
||||
static void get_schema(ContextType, ObjectType, ReturnValue &);
|
||||
static void get_read_only(ContextType, ObjectType, ReturnValue &);
|
||||
|
||||
// static methods
|
||||
static void constructor(ContextType, ObjectType, size_t, const ValueType[]);
|
||||
@ -224,6 +225,7 @@ struct RealmClass : ClassDefinition<T, SharedRealm> {
|
||||
{"path", {wrap<Realm::get_path>, nullptr}},
|
||||
{"schemaVersion", {wrap<Realm::get_schema_version>, nullptr}},
|
||||
{"schema", {wrap<Realm::get_schema>, nullptr}},
|
||||
{"readOnly", {wrap<Realm::get_read_only>, nullptr}},
|
||||
};
|
||||
};
|
||||
|
||||
@ -387,6 +389,11 @@ void Realm<T>::get_schema(ContextType ctx, ObjectType object, ReturnValue &retur
|
||||
return_value.set(Schema<T>::object_for_schema(ctx, *schema));
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
void Realm<T>::get_read_only(ContextType ctx, ObjectType object, ReturnValue &return_value) {
|
||||
return_value.set(get_internal<T, RealmClass<T>>(object)->get()->config().read_only);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
void Realm<T>::objects(ContextType ctx, ObjectType this_object, size_t argc, const ValueType arguments[], ReturnValue &return_value) {
|
||||
validate_argument_count(argc, 1);
|
||||
|
@ -124,12 +124,14 @@ module.exports = BaseTest.extend({
|
||||
realm.write(function() {
|
||||
realm.create('TestObject', [1])
|
||||
});
|
||||
TestCase.assertEqual(realm.readOnly, false);
|
||||
realm.close();
|
||||
|
||||
realm = new Realm({readOnly: true, schema: [schemas.TestObject]});
|
||||
var objects = realm.objects('TestObject');
|
||||
TestCase.assertEqual(objects.length, 1);
|
||||
TestCase.assertEqual(objects[0].doubleCol, 1.0);
|
||||
TestCase.assertEqual(realm.readOnly, true);
|
||||
|
||||
TestCase.assertThrows(function() {
|
||||
realm.write(function() {});
|
||||
@ -138,6 +140,7 @@ module.exports = BaseTest.extend({
|
||||
|
||||
realm = new Realm({readOnly: true});
|
||||
TestCase.assertEqual(realm.schema.length, 1);
|
||||
TestCase.assertEqual(realm.readOnly, true);
|
||||
},
|
||||
|
||||
testDefaultPath: function() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user