egg_plug_stu 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -0
- package/app/models/player.js +14 -0
- package/app/models/player.ts +14 -0
- package/app.js +33 -0
- package/config/config.default.js +32 -0
- package/config/config.default.ts +38 -0
- package/index.d.ts +16 -0
- package/package.json +65 -0
package/README.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# tegg app
|
|
2
|
+
|
|
3
|
+
[Hacker News](https://news.ycombinator.com/) showcase using [tegg](https://github.com/eggjs/tegg)
|
|
4
|
+
|
|
5
|
+
## QuickStart
|
|
6
|
+
|
|
7
|
+
### Development
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm i
|
|
11
|
+
npm run dev
|
|
12
|
+
open http://localhost:7001/
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Don't tsc compile at development mode, if you had run `tsc` then you need to `npm run clean` before `npm run dev`.
|
|
16
|
+
|
|
17
|
+
### Deploy
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm run tsc
|
|
21
|
+
npm start
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Npm Scripts
|
|
25
|
+
|
|
26
|
+
- Use `npm run lint` to check code style
|
|
27
|
+
- Use `npm test` to run unit test
|
|
28
|
+
- se `npm run clean` to clean compiled js at development mode once
|
|
29
|
+
|
|
30
|
+
### Requirement
|
|
31
|
+
|
|
32
|
+
- Node.js >= 18.x
|
|
33
|
+
- Typescript >= 5.x
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const mongoose_1 = require("mongoose");
|
|
4
|
+
function initUserModel(app) {
|
|
5
|
+
const playerSchema = new mongoose_1.Schema({
|
|
6
|
+
name: String,
|
|
7
|
+
age: Number,
|
|
8
|
+
hobbies: [String],
|
|
9
|
+
team_id: { type: mongoose_1.Schema.Types.ObjectId, ref: 'Team' }
|
|
10
|
+
}, { collection: 'player' });
|
|
11
|
+
return app.mongoose.model('Player', playerSchema);
|
|
12
|
+
}
|
|
13
|
+
exports.default = initUserModel;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGxheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsdUNBQWtDO0FBRWxDLFNBQVMsYUFBYSxDQUFDLEdBQWdCO0lBQ25DLE1BQU0sWUFBWSxHQUFHLElBQUksaUJBQU0sQ0FBQztRQUMxQixJQUFJLEVBQUUsTUFBTTtRQUNaLEdBQUcsRUFBRSxNQUFNO1FBQ1gsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2pCLE9BQU8sRUFBRSxFQUFDLElBQUksRUFBRSxpQkFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBQztLQUN0RCxFQUFDLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7SUFDNUIsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUVELGtCQUFlLGFBQWEsQ0FBQSJ9
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Application } from 'egg'
|
|
2
|
+
import { Schema } from 'mongoose';
|
|
3
|
+
|
|
4
|
+
function initUserModel(app: Application) {
|
|
5
|
+
const playerSchema = new Schema({
|
|
6
|
+
name: String,
|
|
7
|
+
age: Number,
|
|
8
|
+
hobbies: [String],
|
|
9
|
+
team_id: {type: Schema.Types.ObjectId, ref: 'Team'}
|
|
10
|
+
},{collection: 'player'});
|
|
11
|
+
return app.mongoose.model('Player', playerSchema);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default initUserModel
|
package/app.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const assert_1 = __importDefault(require("assert"));
|
|
7
|
+
const mongoose_1 = require("mongoose");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
class AppBoot {
|
|
10
|
+
app;
|
|
11
|
+
constructor(app) {
|
|
12
|
+
this.app = app;
|
|
13
|
+
const { url } = this.app.config.mongoose;
|
|
14
|
+
(0, assert_1.default)(url, 'mongoose url is required no config');
|
|
15
|
+
const db = (0, mongoose_1.createConnection)(url);
|
|
16
|
+
db.on('error', (err) => {
|
|
17
|
+
console.error('MongoDB connection error:', err);
|
|
18
|
+
});
|
|
19
|
+
db.on('connected', () => {
|
|
20
|
+
console.log('MongoDB connected:', url);
|
|
21
|
+
});
|
|
22
|
+
db.on('disconnected', () => {
|
|
23
|
+
console.log('MongoDB disconnected:', url);
|
|
24
|
+
});
|
|
25
|
+
app.mongoose = db;
|
|
26
|
+
}
|
|
27
|
+
async willReady() {
|
|
28
|
+
const dir = (0, path_1.join)(this.app.baseDir, 'app/models');
|
|
29
|
+
this.app.loader.loadToApp(dir, 'models');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.default = AppBoot;
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esb0RBQTJCO0FBQzNCLHVDQUEyQztBQUMzQywrQkFBMkI7QUFFM0IsTUFBcUIsT0FBTztJQUNQLEdBQUcsQ0FBYTtJQUVqQyxZQUFZLEdBQWdCO1FBQ3hCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO1FBQ2QsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQTtRQUN4QyxJQUFBLGdCQUFNLEVBQUMsR0FBRyxFQUFFLG9DQUFvQyxDQUFDLENBQUE7UUFDakQsTUFBTSxFQUFFLEdBQUcsSUFBQSwyQkFBZ0IsRUFBQyxHQUFHLENBQUMsQ0FBQTtRQUNoQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUU7WUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtZQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7SUFDckIsQ0FBQztJQUNELEtBQUssQ0FBQyxTQUFTO1FBQ1gsTUFBTyxHQUFHLEdBQUcsSUFBQSxXQUFJLEVBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0NBQ0o7QUF2QkQsMEJBdUJDIn0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = (appInfo) => {
|
|
4
|
+
const config = {};
|
|
5
|
+
// override config from framework / plugin
|
|
6
|
+
// use for cookie sign key, should change to your own and keep security
|
|
7
|
+
config.keys = appInfo.name + '_1778398865366_8925';
|
|
8
|
+
// add your egg config in here
|
|
9
|
+
config.middleware = [];
|
|
10
|
+
// change multipart mode to file
|
|
11
|
+
// @see https://github.com/eggjs/multipart/blob/master/src/config/config.default.ts#L104
|
|
12
|
+
config.multipart = {
|
|
13
|
+
mode: 'file',
|
|
14
|
+
};
|
|
15
|
+
config.mongoose = {
|
|
16
|
+
url: 'mongodb://localhost:27017/user'
|
|
17
|
+
};
|
|
18
|
+
// add your special config in here
|
|
19
|
+
// Usage: `app.config.bizConfig.sourceUrl`
|
|
20
|
+
const bizConfig = {
|
|
21
|
+
sourceUrl: `https://github.com/eggjs/examples/tree/master/${appInfo.name}`,
|
|
22
|
+
};
|
|
23
|
+
// the return config will combines to EggAppConfig
|
|
24
|
+
return {
|
|
25
|
+
...config,
|
|
26
|
+
bizConfig,
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
exports.egg_plug_stu = {
|
|
30
|
+
url: ''
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb25maWcuZGVmYXVsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGtCQUFlLENBQUMsT0FBbUIsRUFBRSxFQUFFO0lBQ3JDLE1BQU0sTUFBTSxHQUFHLEVBQWdDLENBQUM7SUFFaEQsMENBQTBDO0lBQzFDLHVFQUF1RTtJQUN2RSxNQUFNLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUM7SUFFbkQsOEJBQThCO0lBQzlCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBRXZCLGdDQUFnQztJQUNoQyx3RkFBd0Y7SUFDeEYsTUFBTSxDQUFDLFNBQVMsR0FBRztRQUNqQixJQUFJLEVBQUUsTUFBTTtLQUNiLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2pCLEdBQUcsRUFBRSxnQ0FBZ0M7S0FDdEMsQ0FBQTtJQUVELGtDQUFrQztJQUNsQywwQ0FBMEM7SUFDMUMsTUFBTSxTQUFTLEdBQUc7UUFDaEIsU0FBUyxFQUFFLGlEQUFpRCxPQUFPLENBQUMsSUFBSSxFQUFFO0tBQzNFLENBQUM7SUFFRixrREFBa0Q7SUFDbEQsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULFNBQVM7S0FDVixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsT0FBTyxDQUFDLFlBQVksR0FBRztJQUNyQixHQUFHLEVBQUUsRUFBRTtDQUNSLENBQUEifQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { EggAppConfig, EggAppInfo, PowerPartial } from 'egg';
|
|
2
|
+
|
|
3
|
+
export default (appInfo: EggAppInfo) => {
|
|
4
|
+
const config = {} as PowerPartial<EggAppConfig>;
|
|
5
|
+
|
|
6
|
+
// override config from framework / plugin
|
|
7
|
+
// use for cookie sign key, should change to your own and keep security
|
|
8
|
+
config.keys = appInfo.name + '_1778398865366_8925';
|
|
9
|
+
|
|
10
|
+
// add your egg config in here
|
|
11
|
+
config.middleware = [];
|
|
12
|
+
|
|
13
|
+
// change multipart mode to file
|
|
14
|
+
// @see https://github.com/eggjs/multipart/blob/master/src/config/config.default.ts#L104
|
|
15
|
+
config.multipart = {
|
|
16
|
+
mode: 'file',
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
config.mongoose = {
|
|
20
|
+
url: 'mongodb://localhost:27017/user'
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// add your special config in here
|
|
24
|
+
// Usage: `app.config.bizConfig.sourceUrl`
|
|
25
|
+
const bizConfig = {
|
|
26
|
+
sourceUrl: `https://github.com/eggjs/examples/tree/master/${appInfo.name}`,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// the return config will combines to EggAppConfig
|
|
30
|
+
return {
|
|
31
|
+
...config,
|
|
32
|
+
bizConfig,
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.egg_plug_stu = {
|
|
37
|
+
url: ''
|
|
38
|
+
}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import 'egg'
|
|
2
|
+
import { Connection, Model } from 'mongoose'
|
|
3
|
+
|
|
4
|
+
declare module 'egg' {
|
|
5
|
+
type MongooseModels = { [key: string]: Model<any> };
|
|
6
|
+
interface Application {
|
|
7
|
+
mongoose: Connection
|
|
8
|
+
models: MongooseModels
|
|
9
|
+
}
|
|
10
|
+
interface EggAppConfig {
|
|
11
|
+
mongoose: {
|
|
12
|
+
url?: string
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
package/package.json
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "egg_plug_stu",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "egg_plugin_test",
|
|
5
|
+
"private": false,
|
|
6
|
+
"eggPlugin": {
|
|
7
|
+
"name": "egg_plug_stu"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"app.js",
|
|
11
|
+
"index.d.ts",
|
|
12
|
+
"config",
|
|
13
|
+
"app"
|
|
14
|
+
],
|
|
15
|
+
"egg": {
|
|
16
|
+
"typescript": true
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"start": "eggctl start --daemon --title=egg-server-egg_plug_stu",
|
|
20
|
+
"stop": "eggctl stop --title=egg-server-egg_plug_stu",
|
|
21
|
+
"dev": "egg-bin dev",
|
|
22
|
+
"test:local": "egg-bin test",
|
|
23
|
+
"pretest": "npm run clean && npm run lint -- --fix",
|
|
24
|
+
"test": "egg-bin test",
|
|
25
|
+
"preci": "npm run clean && npm run lint",
|
|
26
|
+
"ci": "egg-bin cov",
|
|
27
|
+
"postci": "npm run prepublishOnly && npm start && npm stop && npm run clean",
|
|
28
|
+
"lint": "eslint . --ext .ts --cache",
|
|
29
|
+
"tsc": "tsc",
|
|
30
|
+
"clean": "tsc -b --clean",
|
|
31
|
+
"prepublishOnly": "npm run clean && npm run tsc"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"mongoose": "^9.6.2"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@eggjs/scripts": "^4.0.0",
|
|
38
|
+
"@eggjs/tegg": "^3.5.2",
|
|
39
|
+
"@eggjs/tegg-aop-plugin": "^3.5.2",
|
|
40
|
+
"@eggjs/tegg-config": "^3.5.2",
|
|
41
|
+
"@eggjs/tegg-controller-plugin": "^3.5.2",
|
|
42
|
+
"@eggjs/tegg-eventbus-plugin": "^3.5.2",
|
|
43
|
+
"@eggjs/tegg-plugin": "^3.5.2",
|
|
44
|
+
"@eggjs/tegg-schedule-plugin": "^3.5.2",
|
|
45
|
+
"@eggjs/tracer": "^3.0.0",
|
|
46
|
+
"egg": "^4.0.0",
|
|
47
|
+
"@eggjs/bin": "7",
|
|
48
|
+
"@eggjs/mock": "6",
|
|
49
|
+
"@eggjs/tsconfig": "1",
|
|
50
|
+
"@types/mocha": "10",
|
|
51
|
+
"@types/node": "22",
|
|
52
|
+
"eslint": "8",
|
|
53
|
+
"eslint-config-egg": "14",
|
|
54
|
+
"typescript": "5"
|
|
55
|
+
},
|
|
56
|
+
"engines": {
|
|
57
|
+
"node": ">=20.18.1"
|
|
58
|
+
},
|
|
59
|
+
"repository": {
|
|
60
|
+
"type": "git",
|
|
61
|
+
"url": ""
|
|
62
|
+
},
|
|
63
|
+
"author": "xiaoshenghhh",
|
|
64
|
+
"license": "MIT"
|
|
65
|
+
}
|