Init Project...
This commit is contained in:
		
							
								
								
									
										4
									
								
								packages/cc-server-core/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								packages/cc-server-core/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
/node_modules
 | 
			
		||||
/dist
 | 
			
		||||
/package-lock.json
 | 
			
		||||
/yarn.lock
 | 
			
		||||
							
								
								
									
										11
									
								
								packages/cc-server-core/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								packages/cc-server-core/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
# `cc-server-core`
 | 
			
		||||
 | 
			
		||||
> TODO: description
 | 
			
		||||
 | 
			
		||||
## Usage
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
const ccServerCore = require('cc-server-core');
 | 
			
		||||
 | 
			
		||||
// TODO: DEMONSTRATE API
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										29
									
								
								packages/cc-server-core/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								packages/cc-server-core/package.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
{
 | 
			
		||||
    "name": "cc-server-core",
 | 
			
		||||
    "version": "0.0.1",
 | 
			
		||||
    "description": "> TODO: description",
 | 
			
		||||
    "author": "MiaoWoo <admin@yumc.pw>",
 | 
			
		||||
    "homepage": "https://faas.yumc.pw",
 | 
			
		||||
    "license": "ISC",
 | 
			
		||||
    "main": "dist/index.js",
 | 
			
		||||
    "publishConfig": {
 | 
			
		||||
        "registry": "https://repo.yumc.pw/repository/npm-hosted/"
 | 
			
		||||
    },
 | 
			
		||||
    "scripts": {
 | 
			
		||||
        "dev": "npx ts-node src/index.ts",
 | 
			
		||||
        "test": "echo \"Error: run tests from root\" && exit 1"
 | 
			
		||||
    },
 | 
			
		||||
    "dependencies": {
 | 
			
		||||
        "body-parser": "^1.19.0",
 | 
			
		||||
        "cc-server-db-mongo": "^0.0.1",
 | 
			
		||||
        "cc-server-ioc": "^0.0.1",
 | 
			
		||||
        "inversify": "^5.0.1",
 | 
			
		||||
        "inversify-express-utils": "^6.3.2",
 | 
			
		||||
        "reflect-metadata": "^0.1.13",
 | 
			
		||||
        "typescript": "^3.5.1"
 | 
			
		||||
    },
 | 
			
		||||
    "devDependencies": {
 | 
			
		||||
        "@types/body-parser": "^1.17.0",
 | 
			
		||||
        "ts-node": "^8.2.0"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								packages/cc-server-core/src/function/handle.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								packages/cc-server-core/src/function/handle.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
import {
 | 
			
		||||
    controller, httpGet, httpPost, httpPut, httpDelete
 | 
			
		||||
} from 'inversify-express-utils';
 | 
			
		||||
import { inject } from 'inversify';
 | 
			
		||||
import { MongoDBClient } from 'cc-server-db-mongo'
 | 
			
		||||
 | 
			
		||||
@controller('/')
 | 
			
		||||
export class UserController {
 | 
			
		||||
    constructor(
 | 
			
		||||
        @inject(MongoDBClient) private MongoDBClient: MongoDBClient
 | 
			
		||||
    ) { }
 | 
			
		||||
 | 
			
		||||
    @httpGet('/')
 | 
			
		||||
    public async getUsers(): Promise<any[]> {
 | 
			
		||||
        return []
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @httpPost('/')
 | 
			
		||||
    public async newUser(): Promise<any> {
 | 
			
		||||
        return {}
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								packages/cc-server-core/src/function/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								packages/cc-server-core/src/function/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
{
 | 
			
		||||
    "compilerOptions": {
 | 
			
		||||
        "outDir": "dist",
 | 
			
		||||
        "sourceRoot": "src",
 | 
			
		||||
        "module": "commonjs",
 | 
			
		||||
        "target": "es5",
 | 
			
		||||
        "lib": [
 | 
			
		||||
            "es6",
 | 
			
		||||
            "dom"
 | 
			
		||||
        ],
 | 
			
		||||
        "noImplicitAny": false,
 | 
			
		||||
        "sourceMap": false,
 | 
			
		||||
        "emitDecoratorMetadata": true,
 | 
			
		||||
        "experimentalDecorators": true,
 | 
			
		||||
        "moduleResolution": "node",
 | 
			
		||||
        "noUnusedLocals": true
 | 
			
		||||
    },
 | 
			
		||||
    "compileOnSave": false,
 | 
			
		||||
    "exclude": [
 | 
			
		||||
        "node_modules"
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								packages/cc-server-core/src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								packages/cc-server-core/src/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
import 'reflect-metadata';
 | 
			
		||||
import { InversifyExpressServer } from 'inversify-express-utils';
 | 
			
		||||
import { Container } from 'inversify';
 | 
			
		||||
import * as bodyParser from 'body-parser';
 | 
			
		||||
import './function/handle';
 | 
			
		||||
import { METADATA_KEY } from 'cc-server-ioc';
 | 
			
		||||
 | 
			
		||||
// load everything needed to the Container
 | 
			
		||||
let container = new Container();
 | 
			
		||||
Reflect.defineMetadata(METADATA_KEY.container, container, Reflect)
 | 
			
		||||
 | 
			
		||||
// auto load service
 | 
			
		||||
let services: Function[] = Reflect.getMetadata(METADATA_KEY.service, Reflect);
 | 
			
		||||
for (const service of services) {
 | 
			
		||||
    service()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// start the server
 | 
			
		||||
let server = new InversifyExpressServer(container);
 | 
			
		||||
 | 
			
		||||
server.setConfig((app) => {
 | 
			
		||||
    app.use(bodyParser.urlencoded({
 | 
			
		||||
        extended: true
 | 
			
		||||
    }));
 | 
			
		||||
    app.use(bodyParser.json());
 | 
			
		||||
    app.use(bodyParser.raw())
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
let serverInstance = server.build();
 | 
			
		||||
serverInstance.listen(80);
 | 
			
		||||
 | 
			
		||||
console.log('Server started on port 80 :)');
 | 
			
		||||
							
								
								
									
										7
									
								
								packages/cc-server-core/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								packages/cc-server-core/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
{
 | 
			
		||||
    "extends": "../../tsconfig.json",
 | 
			
		||||
    "compilerOptions": {
 | 
			
		||||
        "baseUrl": "src",
 | 
			
		||||
        "outDir": "dist"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user