Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gerard2perez/vault-orm
https://github.com/gerard2perez/vault-orm
Last synced: 16 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/gerard2perez/vault-orm
- Owner: gerard2perez
- License: mit
- Created: 2018-10-15T23:51:57.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-04-22T23:19:29.000Z (over 5 years ago)
- Last Synced: 2024-04-26T02:04:31.081Z (8 months ago)
- Language: TypeScript
- Size: 243 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Vault ORM
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fgerard2p%2Fnode-mce.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fgerard2p%2Fnode-mce?ref=badge_shield)[![Build Status](https://img.shields.io/travis/gerard2p/vault-orm/master.svg?style=flat-square)](https://travis-ci.org/gerard2p/vault-orm)[![Dependency Status](https://david-dm.org/gerard2p/vault-orm.svg?style=flat-square)](https://david-dm.org/gerard2p/vault-orm)![PRs Welcome](https://img.shields.io/badge/PRs%20🔀-Welcome-brightgreen.svg?style=flat-square)
[![Code Climate](https://codeclimate.com/github/gerard2p/vault-orm/badges/gpa.svg?style=flat-square)](https://codeclimate.com/github/gerard2p/vault-orm?style=flat-square) [![Test Coverage](https://codeclimate.com/github/gerard2p/vault-orm/badges/coverage.svg?style=flat-square)](https://codeclimate.com/github/gerard2p/vault-orm/coverage) [![Issue Count](https://codeclimate.com/github/gerard2p/vault-orm/badges/issue_count.svg?style=flat-square)](https://codeclimate.com/github/gerard2p/vault-orm)
![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square)[![TypeScript](https://badges.frapsoft.com/typescript/code/typescript.png?v=101&style=flat-square)](https://github.com/ellerbrock/typescript-badges/)
# Installation
```sh
npm install @gerard2p/vault-orm
```## About
Vault ORM is part of the Kane framework and evolution of Koaton. but rigth now it's only for private usage; but you can use vault-orm# Models
This sample shows how to create a model
```typescript
// database/posts.ts
import { Model } from '@gerard2p/vault-orm/adapters/mongo';
import { Related, List, Property, HasMany, HasOne, BelongsTo } from '@gerard2p/vault-orm/types';
import { User } from './user';
import { Comment } from './comment';
export class Post extends Model {
@Property title:string
@Property description:string
@BelongsTo(o=>User, 'myOwnerKey') user:Related
@HasMany(o=>Comment, 'commentRelationKey') comments: List
}
```
Vault ORM will auto detect the types from typescript and aditionaly it has some tpes to manage relations.# Database
```typescript
import { Collection, VaultORM, collection, RelationMode } from '@gerard2p/vault-orm/adapters/mongo';
import { Rigth } from './rigth';
import { Rol } from './rol';
import { User } from './user';
import { Post } from './post';
import { Comment } from './comment';VaultORM.RelationsMode = RelationMode.id;
class TestContext extends VaultORM {
@collection(Rigth) rigths: Collection
@collection(Rol) rols: Collection
@collection(User) users: Collection
@collection(Post) posts: Collection
@collection(Comment) comments: Collection
}
const Context = new TestContext({
database: 'test_vault_orm',
port: 27017,
host: 'localhost'
}, {
poolSize: 2
});
export { Context, Context as TestContext };```
The export at the end of the line is required when using Kaen Framework.
> You can wait for the databse to initialize using the ready() promise that is available ```await TestContext.ready(); ```