0.0.68 • Published 1 year ago

@easegram/framework v0.0.68

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

@easegram/framework

Get Start

Install

npm install @easegram/framework --save

Setup App

import {AppEvents, Application} from "@easegram/framework"

const main = async () => {
    const app = new Application({
        name: "test-app",
        modulePaths: ["dist/"]
    })

    app.events.on(AppEvents.Init, ()=>{
        console.log(`app init.`)
    })
    
    app.events.on(AppEvents.Ready, ()=>{
        console.log(`app ready.`)
    })
    
    app.events.on(AppEvents.Quit, ()=>{
        console.log(`app quit.`)
    })
    
    app.events.on(AppEvents.Tick, (delta: number)=>{
        console.log(`app running: ${app.time}`)
    })

    await app.run()
}

main();

IoC

  • Define a IoC object
import { IocDefine } from "@easegram/framework";

@IocDefine() // Define a object named 'A'.
@IocDefine('Instance-A') // Define a object named 'Instance-A'.
export class A {
    
}

//...
{
    const a = app.container.get('A')
    const instance = app.container.ge('Instance-A');
}
  • IoC object and field injections.
import { IocDefine, IocInject } from "@easegram/framework";


@IocDefine() // Define a object named 'A'.
@IocDefine('Instance-A') // Define a object named 'Instance-A'.
export class A {

}

@IocDefine() // Define a object named 'B'.
export class B {
    @IocInject() // Inject value with the object 'A'.
    private a: A;
    
    @IocInject('Instance-A') // Inject value with the object 'Instance-A'.
    private instanceA: A;

    start() {
        console.log(this.a);
        console.log(this.instanceA);
    }
}

Http Service

import {AppEvents, Application, IocDefine} from "@easegram/framework"
import {HttpService, HttpServiceOptions, HttpGet} from "@easegram/framework";

/**
 * Define a http route handler class
 * */
@IocDefine
class Hello {

    // Define a route handler
    // It is equivalent to: koa.router.get('/hello', http.handler(hello))
    @HttpGet('/hello')
    async hello({name}) {
        return `hello ${name}`
    }
    
}

// In main function
app.events.on(AppEvents.Ready, () => {
    // Install HttpService with args
    app.install('http', HttpService, {
        args: {
            name: 'http',
            host: '0.0.0.0',
            port: 80,
            log: true,
            cors: true,
            proxy: false
        },
        routes: [Hello]
    });

    // Construct and Get HttpService instance
    app.get<HttpService>('http');
})

For Developers

Build

npm run build

Publish

npm run publish

License

MIT License

0.0.68

1 year ago

0.0.65

1 year ago

0.0.66

1 year ago

0.0.67

1 year ago

0.0.63

1 year ago

0.0.64

1 year ago

0.0.62

1 year ago

0.0.60

1 year ago

0.0.61

1 year ago

0.0.59

1 year ago

0.0.57

1 year ago

0.0.58

1 year ago

0.0.56

2 years ago

0.0.55

2 years ago

0.0.54

2 years ago

0.0.53

2 years ago

0.0.52

2 years ago

0.0.51

2 years ago

0.0.50

2 years ago

0.0.49

2 years ago

0.0.48

2 years ago

0.0.47

2 years ago

0.0.46

2 years ago

0.0.45

2 years ago

0.0.44

2 years ago

0.0.43

2 years ago

0.0.42

2 years ago

0.0.41

2 years ago

0.0.40

2 years ago

0.0.39

2 years ago

0.0.38

2 years ago

0.0.37

2 years ago

0.0.36

2 years ago

0.0.35

2 years ago

0.0.34

2 years ago

0.0.33

2 years ago

0.0.32

2 years ago

0.0.31

2 years ago

0.0.30

2 years ago

0.0.29

2 years ago

0.0.28

2 years ago

0.0.27

2 years ago

0.0.26

2 years ago

0.0.25

2 years ago

0.0.24

2 years ago

0.0.23

2 years ago

0.0.22

2 years ago

0.0.21

2 years ago

0.0.20

2 years ago

0.0.19

2 years ago

0.0.18

2 years ago

0.0.17

2 years ago

0.0.16

2 years ago

0.0.14

2 years ago

0.0.13

2 years ago

0.0.12

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago