This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Kernel from './kernel'; | |
import * as ServiceBuilder from './service'; | |
(async () => { | |
const kernel = new Kernel(ServiceBuilder); | |
await kernel.boot(); | |
await kernel.container.get('db').save('product', {}, {id: 1, name: 'ssssscar'}); | |
})(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export default class Container { | |
constructor(builder) { | |
this.services = new Map(); | |
if (builder !== undefined) { | |
Object.keys(builder).forEach(name => this.register(name, builder[name])); | |
} | |
} | |
/** | |
* Register a service |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Container from './container'; | |
export default class Kernel { | |
constructor(builder) { | |
this.container = new Container(builder); | |
} | |
/** | |
* Boot the kernel, load all services | |
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import {MongoClient} from 'mongodb'; | |
import UserController from './controller/user-controller'; | |
import UserService from './service/user-service' | |
import MongoDriver from './service/db-service'; | |
import Config from './service/config-service'; | |
export const config = { | |
constructor: () => new Config(process.env), | |
tags: ['boot'] | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// We can also use async/await which is a Syntactic Sugar For Promises | |
var addC = function (a, b) { | |
return new Promise((resolve, reject) => { | |
setTimeout (() => { | |
resolve(a + b); | |
}, 0); | |
}); | |
}; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Async using promise | |
var addB = function (a, b) { | |
return new Promise((resolve, reject) => { | |
setTimeout (() => { | |
resolve(a + b); | |
}, 0); | |
}); | |
}; | |
// How to use it :D |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Async using call back | |
var addA = function (a, b, cb) { | |
setTimeout (() => { | |
cb(a + b); | |
}, 0); | |
}; | |
// How to use it :D | |
addA(2, 3, (result) => { | |
console.log(result) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// :) | |
// Let say you can perform these 3 actions in parallel, then you can run them | |
// all at once and aggregate the result which is good | |
var p1 = addB(2, 3) | |
var p2 = addB(2, 3) | |
var p3 = addB(2, 3) | |
Promise.all([p1, p2, p3]).then(([r1, r2, r3]) => { | |
console.log(r1, r2, r3) | |
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import "github.com/aws/aws-lambda-go/lambda" | |
type Event struct { | |
Payload string `json:"payload"` | |
} | |
func HandleRequest(e Event) (Event, error) { | |
return Event{"Hello World"}, nil |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"Comment": "A step function to test some lambda functions in Go", | |
"StartAt": "Step1", | |
"States": { | |
"Step1": { | |
"Type": "Task", | |
"Resource": "arn:aws:lambda:ap-southeast-2:xyz:function:lambda-f1", | |
"Next": "Step2" | |
}, | |
"Step2": { |
NewerOlder