@typeheim/fire-legion
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

NPM Version Build Status Package License Discord

DDD framework for Firebase applications that includes ORMOnFire and FireAuth libraries.

Getting Started

Install root package that adds all of the latest FireLegion packages to dependencies

yarn add @typeheim/fire-legion
//or
npm -i @typeheim/fire-legion

ORMOnFire

ORMOnFire is a powerful Firestore ORM.

import {
    Agregate,
    Entity,
    Collection,
    CollectionRef,
    ID,
    Field
} from '@typeheim/orm-on-fire'

@Agregate()
export class User {
    @ID() id: string

    @Field() firstName: string

    @Field() lastName: string

    @Field() status: string

    @CollectionRef(UserFile) files: Collection<UserFile>
}

@Entity({ collection: 'user-files' })
export class UserFile {
    @ID() id: string

    @Field() name: string
}

export const UsersCollection = Collection.of(User)

//.......

// with promise-like interface
let markus = await UsersCollection.one('markus').get()

// with Rx interface
UsersCollection.one('tom').get().subscribe((tom: User) => {
    tom.files.forEach((file: UserFile) => {
        // some cool stuff
    })
}) 

Read more...

FireAuth

FireAuth is Firebase auth library based on Rx principles.

import { FireAuth, FireAuthSession, AuthProvidersList } from '@typeheim/fire-auth'

// through provider
FireAuth.throughProvider(AuthProvidersList.Google).signInWithPopup()

// using email/password flow
FireAuth.signIn(new PasswordAuth('email', 'password'))

// getting user object
FireAuthSession.userStream.subscribe(user => /*do your magick*/)

// gedding auth status
FireAuthSession.isLoggedInStream.subscribe(isLoggedIn => /*do your magick*/)

// gedding access token
FireAuthSession.accessTokenStream.subscribe(token => /*do your magick*/)

Read more...

Package Sidebar

Install

npm i @typeheim/fire-legion

Weekly Downloads

30

Version

0.1.0

License

MIT

Unpacked Size

10.3 kB

Total Files

8

Last publish

Collaborators

  • prowwid