sierrasoftworks / iridium Goto Github PK
View Code? Open in Web Editor NEWA high performance MongoDB ORM for Node.js
Home Page: http://sierrasoftworks.github.io/Iridium/
License: Other
A high performance MongoDB ORM for Node.js
Home Page: http://sierrasoftworks.github.io/Iridium/
License: Other
User Schema/Model.
function User() {
Iridium.Instance.apply(this, arguments);
this.addAddress = (address) => this.address.push(address);
}
require('util').inherits(User, Iridium.Instance);
User.schema = {
_id: false,
username: String,
address: [Address.schema]
};
User.collection = 'users';
Address Schema/Model
Address.schema = {
_id: false,
ZipCode: { $type: String, $required: true }
};
Address.onCreating = (document) => console.log('Adding a new address');
Address.collection = 'address';
I have an Object like..
{
username: "test",
address: [{}]
}
it does not validate the address schema, and also how do I get the address document validated & inserted with an ObjectID as part of User? (like in Mongoose)
A support question: How do I update an element with the set operator?
Background: I am implementing an CRUD Rest service. In the update case I don't receive all fields, so I am calling update only with a subset of the existing fields. I want to avoid a findOne followed by an update and want to do this in one operation.
Whats the standard way to do this in Iridium?
Thanks for your work!
Can you please give some examples on how to work with entities relation? For 1:1, 1:m and m:m relations when all entities are in separate tables in mongodb.
I was trying a simple example code:
interface ChunkDocument{
_id?: string
name: string
}
@Index({ name: 1 })
@Collection('chunks')
class Chunk extends Instance<ChunkDocument, Chunk> implements ChunkDocument{
@ObjectID _id: string;
@Property(/^.+$/)
name: string;
}
class MyDatabase extends Core {
Chunks = new Model<ChunkDocument, Chunk>(this, Chunk);
// Houses = new Model<HouseDocument, House>(this, House);
}
var myDb = new MyDatabase({ database: 'avalon' });
myDb.connect().then(()=>{
console.log("Database connected");
myDb.Chunks.find().forEach((chunk: Chunk)=>{
console.log("===>" + chunk._id + " " + chunk.name);
myDb.close();
})
});
and if I compile it with "target": "es6"
in tsconfig.json
then I got this error on runtime:
Unhandled rejection TypeError: Class constructor Chunk cannot be invoked without 'new'
at new ModelSpecificInstance.constructor (/home/set/www/avalon/server/node_modules/iridium/dist/lib/ModelSpecificInstance.js:18:22)
at ModelHelpers.wrapDocument (/home/set/www/avalon/server/node_modules/iridium/dist/lib/ModelHelpers.js:35:16)
at /home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.js:316:137
at /home/set/www/avalon/server/node_modules/iridium/dist/lib/ModelHandlers.js:33:31
at tryCatcher (/home/set/www/avalon/server/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/home/set/www/avalon/server/node_modules/bluebird/js/release/promise.js:502:31)
at Promise._settlePromise (/home/set/www/avalon/server/node_modules/bluebird/js/release/promise.js:559:18)
at Promise._settlePromiseCtx (/home/set/www/avalon/server/node_modules/bluebird/js/release/promise.js:596:10)
at Async._drainQueue (/home/set/www/avalon/server/node_modules/bluebird/js/release/async.js:143:12)
at Async._drainQueues (/home/set/www/avalon/server/node_modules/bluebird/js/release/async.js:148:10)
at Immediate.Async.drainQueues [as _onImmediate] (/home/set/www/avalon/server/node_modules/bluebird/js/release/async.js:17:14)
at tryOnImmediate (timers.js:543:15)
at processImmediate [as _immediateCallback] (timers.js:523:5)
this is ES6
@Index({name: 1})
@Collection('sectors')
class Sector extends Item {
@Property(true)
name
@Property(true)
texture
}
instance getters name
and texture
not created
@Property decorator not works???
Some functions in Core still make use of the legacy var self = this...
reference scheme instead of using arrow functions (as the rest of the library does).
https://monosnap.com/file/9eEpP3TVlQDSiOo4IHtGspjg1hD7L7.png
User send json data, i want save it. how to update model?
i have error: MongoError: multi update only works with $ operators
P.S. this.list is instanceof Model
In my game I have a chunk entity which declared something like this:
export interface Chunk{
_id?: string
name: string
entities: GameEntity[]
position: Vector2
size: Vector2
}
@Index({ name: 1 })
@Collection('chunks')
export class Chunk extends Instance<Interfaces.Chunk, Chunk> implements Interfaces.Chunk{
@ObjectID _id: string = ''
@Property(String) name: string = ''
@Property(GameEntity) entities: Interfaces.GameEntity[]
@Property(Vector2) position: Vector2 = new Vector2()
@Property(Vector2) size: Vector2 = new Vector2()
}
Now I want to have some unit test for Chunk
and for this I have to make Chunk instance. From Iridium docs
Iridium models are created with a reference to their Core (which provides the database connection) and an InstanceType which is composed of a constructor function as well as a number of static properties providing configuration information for the instance.
So I'm trying something like this
var storage = kernel.default.getNamed<Interfaces.Storage>('IService', 'Storage');
var chunk = new Model<Interfaces.Chunk, Chunk>(storage, Chunk);
and then got error
Argument of type 'Storage' is not assignable to parameter of type 'Core'.
Property 'mongoConnectAsyc' is missing in type 'Storage'.
My storage declaration is simple as this
export class Storage extends Core implements Iterfaces.Storage{
Accounts: Model<Iterfaces.Account, Account> = new Model<Iterfaces.Account, Account>(this, Account);
Players: Model<Iterfaces.Player, Player> = new Model<Iterfaces.Player, Player>(this, Player);
Chunks: Model<Iterfaces.Chunk, Chunk> = new Model<Iterfaces.Chunk, Chunk>(this, Chunk);
init(){
}
}
why am I getting that error and what am I doing wrong?
https://github.com/mongodb/node-mongodb-native/blob/2.2/lib/server.js#LC77
I want to update a single document with
this.model.update(_id, item);
However I receive from MongoDB
multi update only works with $ operators
I even receive the same error when I call
this.model.update(_id, item, { multi: false });
How would I update a single document? When the id is given why is Iridium using the multi update mode?
Thank's for your work, regards,
Christian
Say I have the following code:
var iridium = require('iridium');
var database = new iridium({
database: 'demo'
});
database.register('User', new iridium.Model(database, 'user', {
firstname: String,
lastname: String
}));
database.connect(function (err, db) {
if (err) throw err;
db.User.create({
firstname: 'Billy',
lastname: 'Bob'
}, function (err, user) {
if (err) throw err;
console.log(user);
});
});
I would like to have logged
{
"firstname": "Billy",
"lastname": "Bob"
}
What is the easiest way to achive this?
What I do see is this:
{
"domain":null,
"_events":{},
"_maxListeners":10,
"__state":{
"model":{
"domain":null,
"_events":{},
"_maxListeners":10
},
"original":{
"firstname":"Billy",
"lastname":"Bob",
"id":"52d42300cb5902827267e69e"
},
"modified":{
"firstname":"Billy",
"lastname":"Bob",
"id":"52d42300cb5902827267e69e"
}
},
"id":"52d42300cb5902827267e69e"
}
Hey @spartan563,
Have you considered switching to any-promise instead of Bluebird?
http://sierrasoftworks.github.io/Iridium/classes/cursor.html documentation is missing.
npm https://www.npmjs.com/package/ormjs
this is code https://github.com/uMaxmaxmaximus/ui-js/tree/master/server/lib/orm
I think this is epic =) It is very very very very very elegant API. What do you think about it?
Actually, ArangoDB a graph-oriented database, so that in the future, I will describe these relationships using the edges of the graph, for optimization.
And add drivers platform for another databases, like Mongo e.t.c.
I was looking at orms to support postgres database and nothing seems good enough for me so I thought as iridium already has a really good model layer wouldn't it be easy to add support for SQL databases as only the serialization and row fetching part has to be implemented. Is is possible to add that feature or should a new ORM specifically be created for this purpose.
At the moment deployment requires us to comment out the first line in _references.d.ts
to ensure that we don't break projects which include the definition files for the same libraries. It would be very nice to have this done automatically as part of the npm publish
step - possibly as a prepublish
and postpublish
step in package.json
.
find
returns a Cursor
which is not included in your exported typings (iridium.d.ts
).
TypeScript 1.8.10
head in index.ts
/// <reference path="../typings/node/node.d.ts" />
/// <reference path="../typings/lib.es6/lib.es6.d.ts" />
/// <reference path="../typings/socket.io/socket.io.d.ts" />
/// <reference path="../typings/mongodb/mongodb.d.ts" />
/// <reference path="../typings/lodash/lodash.d.ts" />
/// <reference path="../typings/bluebird/bluebird.d.ts" />
tsconfig.json
{
"compilerOptions": {
"experimentalAsyncFunctions": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"moduleResolution": "node",
"module": "commonjs",
"sourceMap": true,
"target": "ES6",
"pretty": true
},
"externalTranspiler": "babel",
"files": [
"./server/index.ts"
],
"exclude": [
"node_modules"
]
}
I noticed that Iridium ships the .ts files with the npm package, not just d.ts files. Is this intended?
By default typescript compiler picks up those .ts files if not properly excluded which may lead to unexpected behaviour.
I see that only the nModified or result.n is being returned on update, here
Is there a way I can get the WriteResult object itself on update? Would like to use the nUpserted property
Way to specify unique indexes in IndexSpecification?
Is is possible for you to switch to using native promises instead of bluebird since node version 4 has promises inbuilt?
Since this is breaking my typechecking like this?
Type 'Bluebird<App>' is not assignable to type 'Promise<App>'.
index.js - ModelHelpers is not included.
I have this interface:
interface IBar {
foo?: boolean;
}
and in my model, this property schema:
...
@Property({
bar: Boolean
})
foo: IBar;
...
How can I make foo
to not be required and not get this error message:
Expected foo.bar to be a defined non-null value but got undefined instead
Should detail what is necessary to get a development environment set up as well as the best practices for making changes to the library.
So far it basically entails
npm install -g gulp
git clone [email protected]/SierraSoftworks/Iridium.git
cd Iridium
npm install
gulp
at which point you'll have a terminal open which builds and runs tests whenever you make changes. You can then fire up your favourite editor (currently I'm using VS Code) and start hacking away.
Pull requests are automatically built and tested on Travis-CI and we use CodeClimate and Coveralls for coverage checking - maximum allowable decrease in coverage from a pull request is 1% (changing number of lines - but you'll need to make sure all your code is thoroughly tested).
The current changelog is somewhat out of date - lacking information on the changes between 4.x and 5.x - either start from scratch for the 5.x branch or include that information.
Also, start updating the changelog whenever we make changes to the library (possibly as part of an automated step whenever we run gulp version
similar to the way Aurelia does it).
Although the code itself is relatively straightforward, there is a lot of stuff going on in Model. Much of the helpers and handlers have been refactored into their own files, but it might be worth investigating moving each method into its own file to help further simplify maintenance in future.
I believe hooks should be able to return promises. Otherwise they become useless sometimes.
Correct me if I'm wrong, but I think there's no way to access Core (and therefore any Model) from hooks.
If I want to use the instance db
that I create by calling new Core(...)
I'd have a circular dependency as models must be defined before Core
. (I have them in separate files)
My suggested solution is to pass core as the last argument to all hooks. Like this:
interface Hooks<TDocument, TInstance, TCore> {
onCreating? (document: TDocument, core: TCore)
}
I'm getting this errors why trying to compile my project that uses iridium:
/home/set/www/avalon/server/node_modules/iridium/dist/lib/BSON.d.ts(3,44): error TS1110: Type expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Configuration.d.ts(1,1): error TS1084: Invalid 'reference' directive syntax.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Core.d.ts(1,1): error TS1084: Invalid 'reference' directive syntax.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Core.d.ts(40,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Core.d.ts(40,21): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Core.d.ts(40,29): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Core.d.ts(46,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Core.d.ts(46,22): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Core.d.ts(46,38): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Core.d.ts(52,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Core.d.ts(52,24): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Core.d.ts(52,33): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Core.d.ts(57,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Core.d.ts(57,17): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Cursor.d.ts(1,1): error TS1084: Invalid 'reference' directive syntax.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/General.d.ts(23,6): error TS1138: Parameter declaration expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/General.d.ts(23,48): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/General.d.ts(23,49): error TS1131: Property or signature expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Hooks.d.ts(1,1): error TS1084: Invalid 'reference' directive syntax.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Instance.d.ts(1,1): error TS1084: Invalid 'reference' directive syntax.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Instance.d.ts(46,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Instance.d.ts(46,22): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Instance.d.ts(159,75): error TS1110: Type expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Instance.d.ts(168,52): error TS1110: Type expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/InstanceInterface.d.ts(1,1): error TS1084: Invalid 'reference' directive syntax.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(1,1): error TS1084: Invalid 'reference' directive syntax.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(61,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(61,21): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(61,57): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(67,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(67,22): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(67,59): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(75,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(75,19): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(75,48): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(87,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(87,20): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(94,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(94,18): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(104,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(104,24): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(104,33): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(120,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(120,27): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(127,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(127,19): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(132,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(132,22): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(132,39): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(132,94): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(139,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(139,24): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(146,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(146,24): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(146,32): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(146,42): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(151,14): error TS1005: '=' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(151,21): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(151,23): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(157,11): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(157,41): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(163,20): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(164,21): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(165,29): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(165,59): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(172,20): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(173,21): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(174,36): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(175,14): error TS1005: ']' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(175,22): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(175,23): error TS1136: Property assignment expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(175,31): error TS1005: ':' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(176,7): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(176,37): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(182,18): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(182,47): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(182,48): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(182,69): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(189,11): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(189,30): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(189,59): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(189,60): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(189,81): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(196,19): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(197,21): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(198,30): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(198,59): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(198,60): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(198,81): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(206,11): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(206,28): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(206,66): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(206,95): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(206,96): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(206,117): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(214,19): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(215,21): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(216,28): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(216,66): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(216,95): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(216,96): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(216,117): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(222,22): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(222,51): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(222,52): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(222,80): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(229,15): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(229,34): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(229,63): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(229,64): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(229,92): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(236,23): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(237,21): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(238,30): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(238,59): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(238,60): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(238,88): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(246,15): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(246,32): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(246,70): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(246,99): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(246,100): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(246,128): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(254,23): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(255,21): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(256,28): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(256,66): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(256,95): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(256,96): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(256,124): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(263,19): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(263,41): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(263,70): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(263,71): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(263,92): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(271,19): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(271,39): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(271,78): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(271,107): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(271,108): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(271,129): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(278,19): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(278,43): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(278,74): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(278,75): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(278,98): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(286,19): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(286,41): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(286,80): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(286,111): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(286,112): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(286,135): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(293,19): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(293,41): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(293,70): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(293,71): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(293,92): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(301,19): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(301,39): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(301,78): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(301,107): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(301,108): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(301,129): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(308,19): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(308,43): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(308,74): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(308,75): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(308,98): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(316,19): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(316,41): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(316,80): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(316,111): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(316,112): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(316,135): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(323,22): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(324,21): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(325,37): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(325,57): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(325,83): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(325,84): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(325,102): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(333,22): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(334,21): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(335,37): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(335,55): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(335,94): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(335,120): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(335,121): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(335,139): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(341,20): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(341,46): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(341,47): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(341,65): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(348,21): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(349,21): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(350,30): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(350,56): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(350,57): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(350,75): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(356,21): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(356,47): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(356,48): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(356,66): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(363,22): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(364,21): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(365,36): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(365,62): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(365,63): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(365,81): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(373,22): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(374,21): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(375,37): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(375,76): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(375,102): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(375,103): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(375,121): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(376,26): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(376,56): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(376,71): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(383,30): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(383,67): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(383,93): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(383,94): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(383,112): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(391,30): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(391,65): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(391,98): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(391,124): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(391,125): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(391,143): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(397,28): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(397,56): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(397,57): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(397,77): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(404,19): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(404,38): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(404,65): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(404,66): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(404,85): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(411,20): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(411,57): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(411,84): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(411,85): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(411,104): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(417,26): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(417,53): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(417,54): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(417,73): error TS1005: '(' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/Model.d.ts(418,1): error TS1128: Declaration or statement expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/ModelCache.d.ts(1,1): error TS1084: Invalid 'reference' directive syntax.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/ModelCache.d.ts(13,43): error TS1110: Type expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/ModelCache.d.ts(13,48): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/ModelCache.d.ts(14,21): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/ModelCache.d.ts(14,27): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/ModelCache.d.ts(14,33): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/ModelCache.d.ts(15,1): error TS1128: Declaration or statement expected.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/ModelHandlers.d.ts(1,1): error TS1084: Invalid 'reference' directive syntax.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/caches/MemoryCache.d.ts(1,1): error TS1084: Invalid 'reference' directive syntax.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/caches/NoOpCache.d.ts(1,1): error TS1084: Invalid 'reference' directive syntax.
/home/set/www/avalon/server/node_modules/iridium/dist/lib/middleware/Express.d.ts(1,1): error TS1084: Invalid 'reference' directive syntax.
/home/set/www/avalon/server/node_modules/skmatc/index.d.ts(49,47): error TS1005: ')' expected.
/home/set/www/avalon/server/node_modules/skmatc/index.d.ts(52,16): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/skmatc/index.d.ts(52,25): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/skmatc/index.d.ts(53,14): error TS1005: ',' expected.
/home/set/www/avalon/server/node_modules/skmatc/index.d.ts(53,33): error TS1109: Expression expected.
/home/set/www/avalon/server/node_modules/skmatc/index.d.ts(53,42): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/skmatc/index.d.ts(54,3): error TS1128: Declaration or statement expected.
/home/set/www/avalon/server/node_modules/skmatc/index.d.ts(54,22): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/skmatc/index.d.ts(54,33): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/skmatc/index.d.ts(54,41): error TS1005: ';' expected.
/home/set/www/avalon/server/node_modules/skmatc/index.d.ts(54,43): error TS1128: Declaration or statement expected.
my set up is:
iridium: ^7.0.0-alpha.15
node: 6.2.1
tsc: 1.8.10
Hi,
awesome that you are using the new @types scope typings. It makes using iridium a breeze without having to postinstall typings dependencies. 👍
Here are some additional thoughts regarding the fairly new @types scope:
0.0.x
notation for all @types scoped packages that are below 0.1.0
as ^
will cause unpredictable behaviour in my experience for the below 0.1.0
version range.Regards
Phil
Is there a way to push a sub-document or set or edit?
Similar to onCreating
, onSaving
, etc. I believe there should be onCreated
, onSaved
, etc. hooks.
Hi, I just wondering how can I do upsert with additional atomic operations such as:
collection.findOneAndUpdate(
{ user_id: user_id},
{ $inc: { amount: value } }, // do $inc when upsert
{
returnOriginal: false,
upsert: true
}
thanks!
How to install Iridium when using Typescript?
Help should be provided in the Readme
Hi,
sorry to bother but I am struggling to find out how to use some mongodb native data type like GeoJSON, Polygon etc... I did not find out in the wiki.
It will be great to have some examples or maybe it is not possible?
Greatings
Hello,
I am currently running node version v4.4.7
and if I run the app with iridium I get either
.../node_modules/iridium/dist/lib/Model.js:205
get(...args) {
^^^
SyntaxError: Unexpected token ...
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
or if I run with --harmony
flag:
.../node_modules/iridium/dist/lib/Instance.js:28
constructor(model, document, isNew = true, isPartial = false) {
So basically the rest parameter works with only if I enable harmony features, the second one does not work at all. Should I update my node.js to later versions (I kind of prefer having LTS here but can update)? Or is there a version that compiles into ES5 perhaps?
RangeError: Maximum call stack size exceeded
at isDate (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:18:29)
at calculateElement (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:77:42)
at calculateObjectSize (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:37:22)
at calculateElement (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:120:77)
at calculateObjectSize (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:37:22)
at calculateElement (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:120:77)
at calculateObjectSize (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:37:22)
at calculateElement (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:120:77)
at calculateObjectSize (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:37:22)
at calculateElement (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:120:77)
at calculateObjectSize (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:37:22)
at calculateElement (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:120:77)
at calculateObjectSize (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:37:22)
at calculateElement (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:120:77)
at calculateObjectSize (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:37:22)
at calculateElement (C:\localhost\ui-js\node_modules\bson\lib\bson\parser\calculate_size.js:120:77)
if i write model.add(data) and data has recoursive props, i get error
After I create an instance of some model I can't read it's properties directly in instance, they are in acc.document
. But wen I do Model.findOne
in it's callback I got a TInstance
object with all properties accessible directly in this object and also in TInstance.document
:
var acc = new AccountInstance(authModule.storage.Accounts, {
login: 'testUser'
});
console.log(acc.login); // undefined
console.log(acc.document.login); // 'testUser'
authModule.storage.Accounts.findOne().then((acc)=>{
console.log(acc.login); // 'testUser'
console.log(acc.document.login); // 'testUser'
done();
});
Is this a bug or am I missing something? Is it possible to always have all properties in TInstance's
root?
Is there a way, to define create models without an active DB connection?
Something like how mongoose does?
The documentation for the latest version of Iridium (v5.x) is terribly sparse compared to the documentation which was available for 4.x and earlier. Ideally it should be rewritten to the same standard but it would be even nicer if we could get an automated documentation generation tool going which pulled the information out of the code (which has most of the public API documented rather significantly).
See the nice-docs branch for attempts at getting that to work...
MongoDB's driver includes support for multiple redundant hosts should one go down. It would be nice if Iridium included support for this.
A backwards compatible API could support receiving an array of existing configuration objects when instantiating an Iridium Core.
var iridium = require('iridium');
var database = new iridium({
host: ['host1', 'host2', 'host3'],
database: 'demo'
});
If connect is called multiple times prior to completing then the corresponding number of database connections will be opened, the last to open winning out as the current connection.
This should change to ensure that only one connection may be opened at a time, subsequent requests to connect
returning a promise for the first connection.
I have User Instance class:
class User extends Instance {
@Property(true)
name:string
@Property([User])
friends:User[]
}
when i add user to friend list to another user, and try to save:
firstUser.friends.push(newUser)
firstUser.save() //error
I get recursion error:
P.S. of course firstUser !== newUser and they have different ids
_original:
{ _id: 5672568cf23db0741194b0a5,
email: '[email protected]',
username: 'test',
users: [ [Object] ] },
_modified:
{ _id: { _bsontype: 'ObjectID', id: 'VrV?ò=°t\u0011?°¥' },
email: '[email protected]',
username: 'test',
users: [ [Object] ] }
Why don't I get the '5672568cf23db0741194b0a5' as a MongoDB.ObjectID type in _modified, this effects "toJSON()" as well, I don't get the ObjectID as type ObjectID ("5672568cf23db0741194b0a5")
I write Iridium alternative, and I realized that something =)
In the Iridium present ideological error:
ORM is:
class User extends Model {
this.name // document field
sayName(){ alert(this.name) } // model method
statiс insert(){} // collection method
statiс update(){} // collection method
}
and
let user = await User.add({name:ololo})
user.sayName()
No need class UserS
just a User
=)
transforms:
class User {
// from db document
constructor(document){
this.name = document.name
this.date = new Date(document.date)
}
// to db document (call before save model in db)
toDocument(){
return {name: this.name, date: this.date.toString()}
}
}
at least I do this ^ _ ^
Thus, javascript OOP, transparently reflected in the database.
What do you think about this?
I am not sure if this is a support question. Do you monitor Stackoverflow for future support requests?
What I want is to store an optional JSON in a document. The structure of the JSON is unknown.
@Property(String)
public field: string;
did not work since the data is optional. I received a
Expected field to be a defined non-null value but got undefined instead
The next thing I tried was
@Property({ asType: String, required: false })
public field: String;
However I still receive the error message above.
So I have two questions:
Kind regards, Christian
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.