mirror of
https://github.com/status-im/realm-js.git
synced 2025-01-11 14:54:33 +00:00
commit
97b8742278
@ -797,6 +797,7 @@
|
||||
0277984E1BBB2F1000C96559 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ReactExample" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -21,14 +21,14 @@ var {
|
||||
var TodoItemSchema = {
|
||||
name: 'Todo',
|
||||
properties: [
|
||||
{name: 'text', type: RealmType.String},
|
||||
{name: 'text', type: Realm.Types.STRING},
|
||||
]
|
||||
};
|
||||
var TodoListSchmea = {
|
||||
name: 'TodoList',
|
||||
properties: [
|
||||
{name: 'name', type: RealmType.String},
|
||||
{name: 'items', type: RealmType.Array, objectType: 'Todo'}
|
||||
{name: 'name', type: Realm.Types.STRING},
|
||||
{name: 'items', type: Realm.Types.ARRAY, objectType: 'Todo'}
|
||||
]
|
||||
};
|
||||
|
||||
|
@ -64,33 +64,33 @@ static inline Property RJSParseProperty(JSContextRef ctx, JSObjectRef propertyOb
|
||||
prop.name = RJSValidatedStringProperty(ctx, propertyObject, nameString);
|
||||
|
||||
std::string type = RJSValidatedStringProperty(ctx, propertyObject, typeString);
|
||||
if (type == "RealmTypeBool") {
|
||||
if (type == "PropTypesBOOL") {
|
||||
prop.type = PropertyTypeBool;
|
||||
}
|
||||
else if (type == "RealmTypeInt") {
|
||||
else if (type == "PropTypesINT") {
|
||||
prop.type = PropertyTypeInt;
|
||||
}
|
||||
else if (type == "RealmTypeFloat") {
|
||||
else if (type == "PropTypesFLOAT") {
|
||||
prop.type = PropertyTypeFloat;
|
||||
}
|
||||
else if (type == "RealmTypeDouble") {
|
||||
else if (type == "PropTypesDOUBLE") {
|
||||
prop.type = PropertyTypeDouble;
|
||||
}
|
||||
else if (type == "RealmTypeString") {
|
||||
else if (type == "PropTypesSTRING") {
|
||||
prop.type = PropertyTypeString;
|
||||
}
|
||||
else if (type == "RealmTypeDate") {
|
||||
else if (type == "PropTypesDATE") {
|
||||
prop.type = PropertyTypeDate;
|
||||
}
|
||||
else if (type == "RealmTypeData") {
|
||||
else if (type == "PropTypesDATA") {
|
||||
prop.type = PropertyTypeData;
|
||||
}
|
||||
else if (type == "RealmTypeObject") {
|
||||
else if (type == "PropTypesOBJECT") {
|
||||
prop.type = PropertyTypeObject;
|
||||
prop.object_type = RJSValidatedStringProperty(ctx, propertyObject, objectTypeString);
|
||||
prop.is_nullable = true;
|
||||
}
|
||||
else if (type == "RealmTypeArray") {
|
||||
else if (type == "PropTypesARRAY") {
|
||||
prop.type = PropertyTypeArray;
|
||||
prop.object_type = RJSValidatedStringProperty(ctx, propertyObject, objectTypeString);
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ JSClassRef RJSCreateWrapperClass(const char * name, JSObjectGetPropertyCallback
|
||||
return JSClassCreate(&classDefinition);
|
||||
}
|
||||
|
||||
void RJSRegisterGlobalClass(JSContextRef ctx, JSObjectRef globalObject, JSClassRef classRef, const char * name, JSValueRef *exception);
|
||||
JSObjectRef RJSRegisterGlobalClass(JSContextRef ctx, JSObjectRef globalObject, JSClassRef classRef, const char * name, JSValueRef *exception);
|
||||
|
||||
std::string RJSStringForJSString(JSStringRef jsString);
|
||||
std::string RJSValidatedStringForValue(JSContextRef ctx, JSValueRef value, const char * name = nullptr);
|
||||
|
@ -18,11 +18,12 @@
|
||||
|
||||
#import "RJSUtil.hpp"
|
||||
|
||||
void RJSRegisterGlobalClass(JSContextRef ctx, JSObjectRef globalObject, JSClassRef classRef, const char * name, JSValueRef *exception) {
|
||||
JSObjectRef RJSRegisterGlobalClass(JSContextRef ctx, JSObjectRef globalObject, JSClassRef classRef, const char * name, JSValueRef *exception) {
|
||||
JSObjectRef classObject = JSObjectMake(ctx, classRef, NULL);
|
||||
JSStringRef nameString = JSStringCreateWithUTF8CString(name);
|
||||
JSObjectSetProperty(ctx, globalObject, nameString, classObject, kJSPropertyAttributeNone, exception);
|
||||
JSStringRelease(nameString);
|
||||
return classObject;
|
||||
}
|
||||
|
||||
JSValueRef RJSMakeError(JSContextRef ctx, RJSException &exp) {
|
||||
@ -53,10 +54,10 @@ std::string RJSStringForJSString(JSStringRef jsString) {
|
||||
std::string RJSValidatedStringForValue(JSContextRef ctx, JSValueRef value, const char * name) {
|
||||
if (!JSValueIsString(ctx, value)) {
|
||||
if (name) {
|
||||
throw std::invalid_argument((std::string)"'" + name + "' must be of type 'string'");
|
||||
throw std::invalid_argument((std::string)"'" + name + "' must be of type 'STRING'");
|
||||
}
|
||||
else {
|
||||
throw std::invalid_argument("JSValue must be of type 'string'");
|
||||
throw std::invalid_argument("JSValue must be of type 'STRING'");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -21,22 +21,22 @@
|
||||
#import "RJSObject.hpp"
|
||||
|
||||
JSValueRef RJSTypeGet(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception) {
|
||||
return RJSValueForString(ctx, "RealmType" + RJSStringForJSString(propertyName));
|
||||
return RJSValueForString(ctx, "PropTypes" + RJSStringForJSString(propertyName));
|
||||
}
|
||||
|
||||
JSClassRef RJSRealmTypeClass() {
|
||||
JSClassDefinition realmTypesDefinition = kJSClassDefinitionEmpty;
|
||||
realmTypesDefinition.className = "RealmType";
|
||||
realmTypesDefinition.className = "PropTypes";
|
||||
JSStaticValue types[] = {
|
||||
{ "Bool", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "Int", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "Float", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "Double", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "String", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "Date", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "Data", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "Object", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "Array", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "BOOL", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "INT", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "FLOAT", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "DOUBLE", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "STRING", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "DATE", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "DATA", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "OBJECT", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ "ARRAY", RJSTypeGet, NULL, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
|
||||
{ NULL, NULL, NULL, 0 }
|
||||
};
|
||||
realmTypesDefinition.staticValues = types;
|
||||
@ -49,9 +49,11 @@ JSClassRef RJSRealmTypeClass() {
|
||||
JSValueRef exception = NULL;
|
||||
JSObjectRef globalObject = JSContextGetGlobalObject(ctx);
|
||||
|
||||
RJSRegisterGlobalClass(ctx, globalObject, RJSRealmConstructorClass(), "Realm", &exception);
|
||||
RJSRegisterGlobalClass(ctx, globalObject, RJSObjectClass(), "RealmObject", &exception);
|
||||
RJSRegisterGlobalClass(ctx, globalObject, RJSRealmTypeClass(), "RealmType", &exception);
|
||||
JSObjectRef globalRealmObject = RJSRegisterGlobalClass(ctx, globalObject, RJSRealmConstructorClass(), "Realm", &exception);
|
||||
JSObjectRef typesObject = JSObjectMake(ctx, RJSRealmTypeClass(), NULL);
|
||||
JSStringRef typeString = JSStringCreateWithUTF8CString("Types");
|
||||
JSObjectSetProperty(ctx, globalRealmObject, typeString, typesObject, kJSPropertyAttributeNone, &exception);
|
||||
JSStringRelease(typeString);
|
||||
|
||||
assert(!exception);
|
||||
}
|
||||
|
@ -29,10 +29,10 @@ var ObjectTests = {
|
||||
|
||||
for (var i = 0; i < BasicTypesObjectSchema.properties.length; i++) {
|
||||
var prop = BasicTypesObjectSchema.properties[i];
|
||||
if (prop.type == RealmType.Float) {
|
||||
if (prop.type == Realm.Types.FLOAT) {
|
||||
TestCase.assertEqualWithTolerance(object[prop.name], basicTypesValues[i], 0.000001);
|
||||
}
|
||||
else if (prop.type == RealmType.Date) {
|
||||
else if (prop.type == Realm.Types.DATE) {
|
||||
TestCase.assertEqual(object[prop.name].getTime(), basicTypesValues[i].getTime());
|
||||
}
|
||||
else {
|
||||
|
@ -21,7 +21,7 @@
|
||||
var TestObjectSchema = {
|
||||
name: 'TestObject',
|
||||
properties: [
|
||||
{name: 'doubleCol', type: RealmType.Double},
|
||||
{name: 'doubleCol', type: Realm.Types.DOUBLE},
|
||||
]
|
||||
};
|
||||
|
||||
@ -29,8 +29,8 @@ function PersonObject() {}
|
||||
PersonObject.prototype.schema = {
|
||||
name: 'PersonObject',
|
||||
properties: [
|
||||
{name: 'name', type: RealmType.String},
|
||||
{name: 'age', type: RealmType.Double},
|
||||
{name: 'name', type: Realm.Types.STRING},
|
||||
{name: 'age', type: Realm.Types.DOUBLE},
|
||||
]
|
||||
};
|
||||
PersonObject.prototype.description = function() {
|
||||
@ -40,13 +40,13 @@ PersonObject.prototype.description = function() {
|
||||
var BasicTypesObjectSchema = {
|
||||
name: 'BasicTypesObject',
|
||||
properties: [
|
||||
{name: 'boolCol', type: RealmType.Bool},
|
||||
{name: 'intCol', type: RealmType.Int},
|
||||
{name: 'floatCol', type: RealmType.Float},
|
||||
{name: 'doubleCol', type: RealmType.Double},
|
||||
{name: 'stringCol', type: RealmType.String},
|
||||
{name: 'dateCol', type: RealmType.Date},
|
||||
{name: 'dataCol', type: RealmType.Data},
|
||||
{name: 'boolCol', type: Realm.Types.BOOL},
|
||||
{name: 'intCol', type: Realm.Types.INT},
|
||||
{name: 'floatCol', type: Realm.Types.FLOAT},
|
||||
{name: 'doubleCol', type: Realm.Types.DOUBLE},
|
||||
{name: 'stringCol', type: Realm.Types.STRING},
|
||||
{name: 'dateCol', type: Realm.Types.DATE},
|
||||
{name: 'dataCol', type: Realm.Types.DATA},
|
||||
]
|
||||
};
|
||||
|
||||
@ -54,8 +54,8 @@ var LinkTypesObjectSchema = {
|
||||
name: 'LinkTypesObject',
|
||||
properties: [
|
||||
{name: 'objectCol', type: 'TestObject'},
|
||||
{name: 'objectCol1', type: RealmType.Object, objectType: 'TestObject'},
|
||||
{name: 'arrayCol', type: RealmType.Array, objectType: 'TestObject'},
|
||||
{name: 'objectCol1', type: Realm.Types.OBJECT, objectType: 'TestObject'},
|
||||
{name: 'arrayCol', type: Realm.Types.ARRAY, objectType: 'TestObject'},
|
||||
]
|
||||
};
|
||||
|
||||
@ -63,8 +63,8 @@ var IntPrimaryObjectSchema = {
|
||||
name: 'IntPrimaryObject',
|
||||
primaryKey: 'primaryCol',
|
||||
properties: [
|
||||
{name: 'primaryCol', type: RealmType.Int},
|
||||
{name: 'valueCol', type: RealmType.String},
|
||||
{name: 'primaryCol', type: Realm.Types.INT},
|
||||
{name: 'valueCol', type: Realm.Types.STRING},
|
||||
]
|
||||
};
|
||||
|
||||
@ -72,32 +72,32 @@ var AllTypesObjectSchema = {
|
||||
name: 'AllTypesObject',
|
||||
primaryKey: 'primaryCol',
|
||||
properties: [
|
||||
{name: 'primaryCol',type: RealmType.String},
|
||||
{name: 'boolCol', type: RealmType.Bool},
|
||||
{name: 'intCol', type: RealmType.Int},
|
||||
{name: 'floatCol', type: RealmType.Float},
|
||||
{name: 'doubleCol', type: RealmType.Double},
|
||||
{name: 'stringCol', type: RealmType.String},
|
||||
{name: 'dateCol', type: RealmType.Date},
|
||||
{name: 'dataCol', type: RealmType.Data},
|
||||
{name: 'primaryCol',type: Realm.Types.STRING},
|
||||
{name: 'boolCol', type: Realm.Types.BOOL},
|
||||
{name: 'intCol', type: Realm.Types.INT},
|
||||
{name: 'floatCol', type: Realm.Types.FLOAT},
|
||||
{name: 'doubleCol', type: Realm.Types.DOUBLE},
|
||||
{name: 'stringCol', type: Realm.Types.STRING},
|
||||
{name: 'dateCol', type: Realm.Types.DATE},
|
||||
{name: 'dataCol', type: Realm.Types.DATA},
|
||||
{name: 'objectCol', type: 'TestObject'},
|
||||
{name: 'arrayCol', type: RealmType.Array, objectType: 'TestObject'},
|
||||
{name: 'arrayCol', type: Realm.Types.ARRAY, objectType: 'TestObject'},
|
||||
]
|
||||
};
|
||||
|
||||
var DefaultValuesObjectSchema = {
|
||||
name: 'DefaultValuesObject',
|
||||
properties: [
|
||||
{name: 'boolCol', type: RealmType.Bool, default: true},
|
||||
{name: 'intCol', type: RealmType.Int, default: -1},
|
||||
{name: 'floatCol', type: RealmType.Float, default: -1.1},
|
||||
{name: 'doubleCol', type: RealmType.Double, default: -1.11},
|
||||
{name: 'stringCol', type: RealmType.String, default: 'defaultString'},
|
||||
{name: 'dateCol', type: RealmType.Date, default: new Date(1.111)},
|
||||
{name: 'dataCol', type: RealmType.Data, default: 'defaultData'},
|
||||
{name: 'boolCol', type: Realm.Types.BOOL, default: true},
|
||||
{name: 'intCol', type: Realm.Types.INT, default: -1},
|
||||
{name: 'floatCol', type: Realm.Types.FLOAT, default: -1.1},
|
||||
{name: 'doubleCol', type: Realm.Types.DOUBLE, default: -1.11},
|
||||
{name: 'stringCol', type: Realm.Types.STRING, default: 'defaultString'},
|
||||
{name: 'dateCol', type: Realm.Types.DATE, default: new Date(1.111)},
|
||||
{name: 'dataCol', type: Realm.Types.DATA, default: 'defaultData'},
|
||||
{name: 'objectCol', type: 'TestObject', default: [1]},
|
||||
{name: 'nullObjectCol', type: 'TestObject', default: null},
|
||||
{name: 'arrayCol', type: RealmType.Array, objectType: 'TestObject', default: [[2]]},
|
||||
{name: 'arrayCol', type: Realm.Types.ARRAY, objectType: 'TestObject', default: [[2]]},
|
||||
]
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user