GithubHelp home page GithubHelp logo

vasern / vasern Goto Github PK

View Code? Open in Web Editor NEW
344.0 17.0 24.0 2.82 MB

Vasern is a fast, lightweight and open source data storage for React Native

Home Page: https://vasern.github.io

License: Other

JavaScript 11.88% Objective-C 0.55% Objective-C++ 1.71% C++ 82.14% CSS 1.73% Java 1.81% HTML 0.04% Ruby 0.13%
mobile database reactnative hermes

vasern's Introduction

Vasern Logo

NPM CI Status GitHub Issues Supported Platforms Join Slack

Vasern is a fast and open source data storage for React Native.

View Development Roadmap. Read about beta release announcement


Table of Contents:

For more details, visit Vasern Documentation

Updated 08/10/2019: Due to personal schedule and a small number of active users, vasern-server and news features won't be release anytime soon. Though I'll be happy to help with current issues. Any changes in the future will be updated in the slack channel

What is Vasern?

Vasern is a data storage for React Native that underneath is linked-consistent key-value stores. Its data engine is built natively to achieve native performance. Our goal is to develop an open source, developer friendly end-to-end database solution. Sync server - vasern-server is under development.

A snipped code shows how Vasern works

import Vasern from 'vasern';

// Define Todos application schema
const VasernDB = new Vasern({ 
  schemas: [{
    name: "Users",
    props: {
      fname: "string",
      lname: "string"
    }
  },{
    name: "Todos",
    props: {
      name: "string",
      completed: "boolean",
      assignTo: "#Users"
    }
  }]
});

// Add listener whenever Todos has a change (loaded/insert/update/delete)
VasernDB.Todos.onChange(() => {

  // Get all todo items with "completed" is "false"
  const todoList = VasernDB.Todos.filter({ completed: false });
  
  // Update state
  this.setState({ data: todoList.data() });
})

Development Status

Vasern beta is available on iOS and Android. It is being tested to ensure its functionality, data quality and consistency. View Development Roadmap

Join us on Slack for any quick update and discusion.

Getting Started

Examples

Help and Feedback

The more concise and informative, the better it helps us to understand your concern.

Contributors

Vasern is lucky to have support from our contributors, thanks to:

Contribute to Vasern

Your contributions are welcome and highly appreciated. At the moment, you can create an issue with (1) Goal and (2) Details of your code.

vasern's People

Contributors

0mars avatar adityasonel avatar anhtuank7c avatar artiebits avatar curtisy1 avatar dependabot[bot] avatar hieunc229 avatar imokhles avatar kailashvele avatar pragmatrix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vasern's Issues

committed transaction list

I saw that there is a way to improve the speed of multiple actions.
Is it also faster if i don't commit these actions in a callback block but multiple single actions with save=false?
And if so, when do these actions get executed? (I mean how does the db know when i make the last action?)
I'm asking this because i have to add multiple events to the db. In one cycle i add to multiple schemas so i just want to call my "normal" saveEvent function (which normally just saves one event with save=true) with save=false. But is this faster?

Is it stable enough for production

Hello,

I will need to use whether Realm or Vasern for a production app.

Currently Realm isn't supporting Hermes engine, seems like Vasern do.

But I see it's pretty new, is is stable for production ?

Regards

Queryable events

In order to increase performance and reduce the code written by users, the library should add the Queryable logic (filter, exclude, limit, etc...) to events.

Example:

Todos
.filter({ completed: true })
.onChange(({ changed }) => {
    console.log(changed);
});

Error when linking

Hi,

I was trying link vasern in my app and get the following error:

PS C:\Users\fredc\Documents\Projetos\questoespython3> npx react-native link vasern
warn Calling react-native link [packageName] is deprecated in favor of autolinking. It will be removed in the next major release.
Autolinking documentation: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md
info Linking "vasern" iOS dependency
info iOS module "vasern" has been successfully linked
info Linking "vasern" Android dependency
error Linking "vasern" failed. Run CLI with --verbose flag for more details.
Error: ENOENT: no such file or directory, open 'C:\Users\fredc\Documents\Projetos\questoespython3\android\app\src\main\java\com\questoespython3\MainApplication.java'
    at Object.openSync (fs.js:458:3)
    at Object.readFileSync (fs.js:360:35)
    at applyPatch (C:\Users\fredc\Documents\Projetos\questoespython3\node_modules\@react-native-community\cli-platform-android\build\link\patches\applyPatch.js:42:51)
    at Object.registerNativeAndroidModule [as register] (C:\Users\fredc\Documents\Projetos\questoespython3\node_modules\@react-native-community\cli-platform-android\build\link\registerNativeModule.js:34:27)
    at C:\Users\fredc\Documents\Projetos\questoespython3\node_modules\react-native\node_modules\@react-native-community\cli\build\commands\link\linkDependency.js:63:16
    at Array.forEach (<anonymous>)
    at linkDependency (C:\Users\fredc\Documents\Projetos\questoespython3\node_modules\react-native\node_modules\@react-native-community\cli\build\commands\link\linkDependency.js:36:32)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async Object.link [as func] (C:\Users\fredc\Documents\Projetos\questoespython3\node_modules\react-native\node_modules\@react-native-community\cli\build\commands\link\link.js:110:5)
    at async Command.handleAction (C:\Users\fredc\Documents\Projetos\questoespython3\node_modules\react-native\node_modules\@react-native-community\cli\build\index.js:186:9)

Does the database initialize everytime I reload the app?

What I want to do is to store a lot of messages in the database. I used to do the cache in redux but seems like the huge amount of data cause the slowness.

I build the database based on your example, but seems like when I close the app or reload the app on simulator, the data is gone. I am not sure I am doing it right with the configuration. Do you have any suggestion?

roadmap info

Hi and thanks for vasern.

I've read 08/10/2019 updated and I would like to ask you for clarification on the new roadmap.

Only vasern-server will not be released? are the changes and new features to get to 1.0 planned?

Thanks


From roadmap

Version 0.4

  • Full transactional (ACID) support (Native)
  • Input sanitizers (avoid invalid inputs that might cause exploits) (Native or JavaScript)

Version 0.5

  • Migration (Native and JavaScript)
  • Query Observation (keep track of changes and automatically update) (JavaScript)

Before version 1.0

  • Optimize speed and memory for index_set (indexing feature) in fsm (Native)
  • Introduce Vasern Playground - A Vasern test server
  • Reactjs compatibility
  • 🔸 Eliminate critical bugs (on going task)

ld: library not found for -lVasern

ld: library not found for -lVasern
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Getting this error on Archiving project in XCode.

Since I am using cocoapods for Firebase I have to open .xcworkspace file in XCode.

However, I have linked the library in the Projects by both the Auto and Manual methods and followed the standard process of adding libVasern.a in linkers.

The library seems to be linked since running application on an emulator doesn't throw the error while Archiving it does.

Any suggestions?

Update throw immutable error

Error:

You attempted to set the key DefaultCalendar with the value true on an object that is meant to be immutable and has been frozen.

code:

export const changeCalendar = async (id, title, color) => {
try{
let newCalendar = await Calendar1.update(id, {id: id, Title: title, Color: color}, true);
return newCalendar
}catch(e){
return e;
}
}

Functions names

A way to attract more people here, could be to rename all the functions of the library to match the ones from Firebase.

Example:

Queryable.filter({ completed: true }); --> Queryable.where({ completed: true });

Add Typescript typings

Would you be willing to add typings for Typescript to this project? If you don't mind, I'll try working on getting these to work while integrating vasern in my project.

Inconsistent key name when using references

There seems to have an inconsistent behavior when fetching some Documents with references in them. Some times the Document would return a reference ID with a suffix of _id (this is what I'm expecting), some times there would be no suffix, just whatever the Document's name is.

I see the latter more often when inserting new records into the Document.

Relationship table

Can we make a pivot table? I didn't find it in the documentation.

  • If that's the case, how can we do it ?

here is an exemple :

users
    id - integer
    name - string

roles
    id - integer
    name - string

role_user
    user_id - integer
    role_id - integer
    text - string

Unable to get data

var TodoSchema = {
name: "Todos",
props: {
name: "string",
note: "?string",
completed: "boolean"
},
};

    const VasernDB = new Vasern({
        schemas: [TodoSchema],
        version: 1
    });
    
    const { Todos } = VasernDB;
    
    
    var item1 = Todos.get({ name: "Setup database for React Native" });
    console.log(item1);
    Todos.remove(item1);
    console.log(Todos._data);
    console.log(Todos.available);

At the moment i cannot perform for example
Todos.data() or Todos.get({ name: "Setup database for React Native" }) or Todos.remove() doesnt work!!

it runs when i want to get Todos._data, but i just get an empty list but when i just want to get Todos i see under the object, that there should be 7 items in the list
and also Todos.available is false but in the object Todos it is true!?

Unable to write data

Error: Unable to write data
at createErrorFromErrorData (C:\Users\kalla\Apps\OwnApp\node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:146)
at C:\Users\kalla\Apps\OwnApp\node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:95
at MessageQueue.__invokeCallback (C:\Users\kalla\Apps\OwnApp\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:397)
at C:\Users\kalla\Apps\OwnApp\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:127
at MessageQueue.__guard (C:\Users\kalla\Apps\OwnApp\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:297)
at MessageQueue.invokeCallbackAndReturnFlushedQueue (C:\Users\kalla\Apps\OwnApp\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:126)
at debuggerWorker.js:72

Somehow it is working but i get this error message.
I save 4 database with an await in a row. That causes the problem above but i dont know why?

Get all data, return raw string

I created a scaning-code (barcode, QR...) app using Vasern to save codes.
When I get all records in componentDidMount, it returns raw values first. My FlatList can't render properly.

  • CodeModel:
export class CodeModel {
  name = 'Codes';
  props = {
    time: 'string',
    data: 'string',
    type: 'string'
  }
}
  • Console log:

screen shot 2018-11-12 at 4 05 07 pm

screenshot_20181112-155909

When I scanned a barcode, it re-rendered properly.

screenshot_20181112-155930

How can I fix it?
My project: https://github.com/pnthach95/ScanCodeRNApp
Dependencies:

react-native: 0.57.4
vasern: 0.2.83

Option for Deleteing DB

Hi,

While implementing I came across a scenario where I was initially trying out the Library.

However later when I decided to actually implement in my Application I felt a need to remove all the already present DB data.

Is there any option like deletion of DB or Truncating of the data in Schema or something like data where I can set the DB instance to empty and start using.

Thanks.

Insertion problem

I have a problem when I insert the data to the "assignedTo" attribute. At the moment the data are inserted, it work. But if I reload the application the data of the attribute "assignedTo" disappears.

here is my entry:

const budget = Budgets.insert({
            currency,
            start_date: startDate,
            end_date: endDate,
            created_at: nowStr,
            assignedTo: account
        })[0];

the display I have in my log when inserting
[Sat Jul 18 2020 12:13:14.836] LOG [{"assignedTo": {"created_at": "18-07-2020", "id": "5f12cb2cgeCHGxjx0009cF9e", "name": "grf"}, "created_at": "18-07-2020", "currency": "CHF", "end_date": "18-08-2020", "id": "5f12cb2cbLpSb6I4000DIDR4", "start_date": "18-07-2020"}]

and here are the contents after reloading the application

[Sat Jul 18 2020 12:13:27.476] LOG [{"created_at": "18-07-2020", "currency": "CHF", "end_date": "18-08-2020", "id": "5f12cb2cbLpSb6I4000DIDR4", "start_date": "18-07-2020"}]

we notice that the ID is different and the attribute "assignedTo" doesn't exist anymore.

this is the budget model

export default class BudgetModel {
    name = "Budgets";

    props = {
        currency: 'string',
        start_date: 'string', // I know I can put some type datetime
        end_date: 'string', // I know I can put some type datetime
        created_at: 'string' // I know I can put some type datetime
    }
    assignedTo = "#Accounts";
}

When trying to archive in XCode, I get "no such file - libVasern.a"

I'm trying archive my React Native project in XCode which has Vasern integrated. I had followed all steps as mentioned in the guide, and had no problems while developing. But now, when I try to archive my project I keep getting an error saying "no such file or directory - /libVasern.a". Again, I can assure you that Vasern.xcodeproj is added to my Libraries and libVasern.a is added in the Build Phrases > Link Binary with Libraries.

Customisable id

Is it possible to make own ids (otherwise i would just overwrite the id with my own one and save the last id with async storage)? Because i would need ascending ids, so i know that every id is only once used and 100% unique!

ReferenceError: save is not defined

I am trying to insert a document to Todos using this
Todos.insert({ name: this.state.name, note: "Using Vasern", completed: false },save=true)
but it gives error as save is not defined
if i remove save and try it executes but the added data is not reflected in Todos.get()
I am using it with React-native-v8 engine
and Thanks for this Library This actually supports external js engine like Hermes or v8 while famous db like Realm doesn't

previousCommitedItems.concat is not a function.

Trying to save a document and it ends up like this

Unhandled promise rejection, [TypeError: previousCommitedItems.concat is not a function. (In 'previousCommitedItems.concat(_this8._commitedItems[key])', 'previousCommitedItems.concat' is undefined)]

Here is the code

export class UserProvider {
    private model: Document;

    public constructor() {
        this.model = db.get('User');
        this.model.load();
    }

    public async authorize(user: User): Promise<false | NewObject[]> {
        this.removeAll();
        return this.model.insert(user, true); // <<<<<<<<<<<<<<<< here
    }

    public get(): User {
        if (this.model.count() < 1) {
            throw new UserNotFoundError('User not found!');
        }
        return <User>this.model.data().find(e => true);
    }

    private removeAll() {
        this.model.data().forEach(function (item) {
            db.remove(item, true);
        });
    }

Configuration "compile" is deprecated

Since Android has deprecated using "compile" to import third party library. Here is the solution if you run into the error Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'. It will be removed at the end of 2018

From your main Android folder project, open build.grandle in the app directory. Then find and replace the following line:

dependencies {
-    compile project(":vasern");
+    implementation project(":vasern")
}

In most cases, it can also be applied to other third party libraries

Error: Couldn't find preset "module:metro-react-native-babel-preset"

First: Can i store/get objects with vasern in/from the local storage at any time over the different files?

And second: Why is there a second react-native module in vasern installed (i have already installed react native normally!)? I have the problem that i cannot run it with two of them!
And when i delete react-native there is another issue about babel!

How do i manage references?

Hi i have another question:
How do i manage references?
If i have two schemas and i reference one of the to the other, how to do i insert data to them?
Do i have to insert in both (and give the id of the "second" db to the first) or is it sufficient if i just insert the data into the "main" schema and insert the data of the refrenced element like the schema of the "second" db is built (as an object)?
f.e.
export class CalendarEventModel { name="CalendarEvent" props={Id: "int", Title: "string", Start: "datetime", End: "datetime", Calendar: "#Calendar"};
const CalendarSchema = {name: "Calendar", props: {Id: "int", Title:"string", Color:"string"}};
1.
Calendar.insert({Id: 1, Title:"CalendarExample", Color:"#FFFFFF"});
CalendarEvents.insert({Id: 1, Title: "example", Start: Moment(), End: Moment().add(5, "minutes"), Calendar: 1});
2.
CalendarEvent.insert({Id: 1, Title: "example", Start: Moment(), End: Moment().add(5, "minutes"), Calendar: {Id: 1, Title:"CalendarExample", Color:"#FFFFFF"}});

And which types does datetime take (only date() of js or also Moment.js objects)?

Thank you!

No error shown though i give the false value

For example if i decalre Id: "int" in the schema and insert for example Id. "hello" there is no error like "property Id should be an int and not an string!".
And somehow i event can store an "normal" object under a refrence without the true props of this refrence. I just found out that i can save anything (any value (boolean, int...)) under anything (any value...). Dont know if this is a bug or just my mistake, if i have something wrong in my code. i could post it if you want.

JSON support

Feature request:
It would be nice to support JSON natively, currnetly I have to store the data as string and convert it to JSON on the fly, it would be nice to support this natively.

Data is not updated when saving

Hola estoy experimentando un problema al guardar datos con Perform metodo no me da ningun error pero al salir de la aplicacion precionando el boton atras y volver a abrir e intentar consultar datos aparecen vacios pero matar la tarea de la aplicacion por completo e iniciar si me arroja los datos espero hacerme entender no hablo ingles gracias

does vasern supported Bulk Insert?

Hi, i want to insert object in array, but i don't know what is the best way to do it

let say i have this array :

[
  {id : '1', name : 'foo', shortName : 'fo', img : 'url', telp : '123'},
  {id : '2', name : 'bar', shortName : 'ba', img : 'url2', telp : '1234'},
]

i want to insert those object in vasern, and below is my code:

//data var is those array
data.map((item)=>{
  Db.MyModel.insert({
    id: item.id,
    name: item.name,
    shortName: item.shortName,
    img: item.img,
    telp: item.telp
  })
})
DB.MyModel.onLoaded(()=>{
  let data = DB.MyModel.data()
  console.log('Log Queries' , data)
})

but i cannot get the value immediately when i console.log the Model with above code,
any suggestion?

C++ business logic

In order to increase performance, the library should rely on C++ for the business logic (filter, exclude, limit, etc..) instead of the JS side with lodash.

int are still saved as strings

I have wondered why though i declare the type as int i still get the number as string from db.

So i have looked in the source code and i think i found the mistake under Parser.js and Parser.parseValue().

My new code of this function

et dataType;
let type = inputType;
let results;
let splitted;

if (type.indexOf("[]") !== -1) {
  dataType = "list";
  type = type.replace("[]", "");
} else if (type.indexOf("#") !== -1) {
  dataType = "ref";
  type = type.replace("#", "");
} else {
  if (type.indexOf("?") !== -1) {
    type = type.replace("?", "");
    dataType = type;
  }
  dataType = type;
}

  //replace questinmark, so type can be itendified correctly
  
  //check if value exists and is not empty string but type is string
  if (val) {
    if (val === "") {
      if(dataType === "string"){
        return val && val.replace ? val.replace(/\u00A0n/g, "\n") : "";
      }else{
        return null;
      }
    } else{
      //look if val is defined
      switch (dataType) {
        case "string":
          return val && val.replace ? val.replace(/\u00A0n/g, "\n") : "";
        case "int":
          return parseInt(val, 10);
        case "double":
          return parseFloat(val);
        case "boolean":
          return val === "1";
        case "datetime":
          return new Date(parseInt(val, 10));
        case "ref":
          return val;
        case "list":
          splitted = val.split(LBreak);
          results = new Array(splitted.length);
          splitted.forEach((value, i) => {
            results[i] = Parser.parseValue(type, value);
          });
          return results;
        default:
        console.log(dataType);
          return val;
      }
    }
}
return null;

I have tested it and had no issues yet.
(i know it is kind of a pull request...)

key in props setting to null

It is not quite an issue.
If i for example insert data and i set one of the key in props to null it first gives back the whole object with key value null (or undefined), but if i then reload the app, all the key set to null or undefined now have the value "".
I would prefer if these keys would not be defined then having a string like that "".

Thank you for your response!

Queryable limit

In order to limit the result of a query, the library should have a "limit" function with an integer parameter:

Queryable.filter({ completed: true }).limit(3);

Property with false (boolean) value is undefined

I have an schema with a boolean element. If i now insert the value false into this element, first it shows me the whole objects with this element. But after i refresh the app the element in the object which i just inserted is gone. With value true everything is fine, it is just a mistake with false.
I dont know if this is meant to be like this, but it is a little bit weird to me.
I have then the problem that i cannot change this element because it doesnt exists.

alter a schema

I want to add a new propertie to one of my schemas.

The problem is that i'm not sure how this is going to work on the devices. If a user has the old database and now gets the new one they wont have a value for the new propertie (if im right).
So how can i alter a schema that it works for the user who has already the old database. (Another question would be how to alter a schema in general (delete/change properties)?

Add documentation: do not create props with name "id" !!! related to issue #10

Thanks for this awesome library, loved this library so far.

I just want to add a thing to your documentation, a thing that had made me took hours to resolve, which is DO NOT NAME YOUR PROPS "id" as it will lead to bug such as missing data or obfuscated key-value pairs. This happens because I put "id" as my props and my data gone crazy. To resolve this, I create a prop named "bookId" instead.

I think this should be documented in either "Supported Data Types" or "Write Schema, Setup Vasern" sections.

Thanks in advance

Cannot read property 'perform' of undefined

i issue while using this awesome package for the first time ( i wasn't able to fix it at all )
here's my setup

  • Stracture

Capture d’écran 2019-10-06 à 21 00 08

  • Initialization

Capture d’écran 2019-10-06 à 21 00 13

Capture d’écran 2019-10-06 à 21 00 19

  • Usage

Capture d’écran 2019-10-06 à 21 00 55

i keep getting Cannot read property 'perform' of undefined

Capture d’écran 2019-10-06 à 21 02 32

can you help me ?

libVasern.a not generated on a Release build

Debug build generates the libVasern.a file but not with Release Configuration.
If I copied generated libVasern.a file from Debug folder to Release folder it complains about invalid signing bitcode .

Yes, I did try deleting the DerivedData folder but I still can't compile a release build.

not working on android 7 and lower

On android 7 and lower app crashes on start and i have not clue why! (with android 8/8.1 it is working fine!)

ava.lang.NoClassDefFoundError: Failed resolution of: Ljava/nio/file/Paths;
at com.reactlibrary.storage.Storage.Init(Storage.java:71)
at com.reactlibrary.storage.Storage.(Storage.java:50)
at com.reactlibrary.RNVasernModule.(RNVasernModule.java:30)
at com.reactlibrary.RNVasernPackage.createNativeModules(RNVasernPackage.java:17)
at com.facebook.react.NativeModuleRegistryBuilder.processPackage(NativeModuleRegistryBuilder.java:85)
at com.facebook.react.ReactInstanceManager.processPackage(ReactInstanceManager.java:1173)
at com.facebook.react.ReactInstanceManager.processPackages(ReactInstanceManager.java:1143)
at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1085)
at com.facebook.react.ReactInstanceManager.access$900(ReactInstanceManager.java:117)
at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:916)
at java.lang.Thread.run(Thread.java:761)

That what i get under logcat.

Support default Value?

Hi, does Vasern support default value?

i need to handle if user is currently install or not,

my usecase something like:

  • IF user is first install, show introduction screen, else skip introduce screen

update new values

If i update an object in the vasern db, is it enough if i give in all values that should change it it merges them or do i have to give every value (so the values that i dont want to change persist)?

Slack link is not working anymore

Hello everyone,
I wanted to talk to you on Slack before opening Issues but the link on the README is not working anymore.

Is it possible to fix this?

Thank you.

set a key to null

Is it possible to set a key to null or do i have to set it to null with "" ?

(if you saw old issue text, sorry, i have found the issue myself, but im still interested in this question)

Thank you!

Update refernce not reflex immediately

How do i update a refrence?
name= "CalendarEvent";
props={
Title: title,
Calendar: "#Calendar1",
...}

name: "Calendar1",
props: {
Title: "string",
Color: "string",
}

Do i now update the Calendar in CalenderEvent with CalendarEvent.update({Calendar: CalendarObject}) or with CalendarEvent.update({Calendar_id: newCalendarId})??

And if i want to change the calendar can i just say Calendar1.update(idOfCalendar, {Title: newTitle})
and it then also takes the updated calendar in CalendarEvent or do i also have to update CalendarEvent for Calendar?

Thank you

Automatic link iOS module failed

As a user, I want to link module automatically via react-native link but right now we got an issue related to point to the wrong folder in node_modules.

See the attached image.

screen shot 2018-10-17 at 1 30 32 pm

Object and Array data types

Hi,

There are use cases when there is a need for storing the whole object. Where the object is received from API and we are not completely aware what kind of data types each key might have with it.

Is there any option for storing Object Data type? I couldn't see it in the documentation.

For eg.

const VasernDB = new Vasern({ schemas: [{ name: "Users", props: { data: "object" } }] });

React Native Bridge -> JSI

In order to increase performance between the JS and C++, the library should rely on the new JSI instead of the React Native Bridge.

Preview here

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.