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 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
+ }