generated from tailored/router-template
	Initial commit
This commit is contained in:
		
							
								
								
									
										14
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | node_modules | ||||||
|  |  | ||||||
|  | dist | ||||||
|  |  | ||||||
|  | app.config.json5 | ||||||
|  |  | ||||||
|  | apps.config.json | ||||||
|  |  | ||||||
|  | deploy.tar.gz | ||||||
|  | cache-file | ||||||
|  |  | ||||||
|  | /apps | ||||||
|  |  | ||||||
|  | logs | ||||||
							
								
								
									
										2
									
								
								.npmrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.npmrc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | //npm.xiongxiao.me/:_authToken=${ME_NPM_TOKEN} | ||||||
|  | //registry.npmjs.org/:_authToken=${NPM_TOKEN} | ||||||
							
								
								
									
										13
									
								
								app.config.json5.example
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								app.config.json5.example
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | { | ||||||
|  |   port: 3000, | ||||||
|  |   postgres: { | ||||||
|  |     username: 'postgres', | ||||||
|  |     host: 'localhost', | ||||||
|  |     database: 'postgres', | ||||||
|  |     password: 'postgres', | ||||||
|  |     port: 5432, | ||||||
|  |   }, | ||||||
|  |   tableName: { | ||||||
|  |     table: 'name', | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										70
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | |||||||
|  | { | ||||||
|  |   "name": "demo-app", | ||||||
|  |   "version": "0.0.1", | ||||||
|  |   "description": "", | ||||||
|  |   "main": "index.js", | ||||||
|  |   "app": { | ||||||
|  |     "key": "demo-app", | ||||||
|  |     "entry": "dist/app.mjs", | ||||||
|  |     "type": "system-app", | ||||||
|  |     "files": [ | ||||||
|  |       "dist" | ||||||
|  |     ] | ||||||
|  |   }, | ||||||
|  |   "scripts": { | ||||||
|  |     "watch": "rollup -c rollup.config.mjs -w", | ||||||
|  |     "dev": "cross-env NODE_ENV=development nodemon --delay 2.5 -e js,cjs,mjs --exec node dist/app.mjs", | ||||||
|  |     "test": "tsx  test/**/*.ts", | ||||||
|  |     "dev:watch": "cross-env NODE_ENV=development concurrently -n \"Watch,Dev\" -c \"green,blue\" \"npm run watch\" \"sleep 1 && npm run dev\" ", | ||||||
|  |     "clean": "rm -rf dist", | ||||||
|  |     "prepub": "envision switch root", | ||||||
|  |     "pub": "npm run build && envision pack -p -u" | ||||||
|  |   }, | ||||||
|  |   "keywords": [], | ||||||
|  |   "author": "abearxiong <xiongxiao@xiongxiao.me>", | ||||||
|  |   "license": "MIT", | ||||||
|  |   "type": "module", | ||||||
|  |   "types": "types/index.d.ts", | ||||||
|  |   "files": [ | ||||||
|  |     "types", | ||||||
|  |     "dist", | ||||||
|  |     "src" | ||||||
|  |   ], | ||||||
|  |   "dependencies": { | ||||||
|  |     "@kevisual/code-center-module": "0.0.11-alpha.1", | ||||||
|  |     "@kevisual/mark": "0.0.6", | ||||||
|  |     "@kevisual/router": "0.0.8-alpha.3", | ||||||
|  |     "cookie": "^1.0.2", | ||||||
|  |     "dayjs": "^1.11.13", | ||||||
|  |     "formidable": "^3.5.2", | ||||||
|  |     "json5": "^2.2.3", | ||||||
|  |     "lodash-es": "^4.17.21" | ||||||
|  |   }, | ||||||
|  |   "devDependencies": { | ||||||
|  |     "@kevisual/types": "^0.0.6", | ||||||
|  |     "@kevisual/use-config": "^1.0.9", | ||||||
|  |     "@rollup/plugin-alias": "^5.1.1", | ||||||
|  |     "@rollup/plugin-commonjs": "^28.0.2", | ||||||
|  |     "@rollup/plugin-json": "^6.1.0", | ||||||
|  |     "@rollup/plugin-node-resolve": "^16.0.0", | ||||||
|  |     "@rollup/plugin-replace": "^6.0.2", | ||||||
|  |     "@rollup/plugin-typescript": "^12.1.2", | ||||||
|  |     "@types/crypto-js": "^4.2.2", | ||||||
|  |     "@types/formidable": "^3.4.5", | ||||||
|  |     "@types/lodash-es": "^4.17.12", | ||||||
|  |     "@types/node": "^22.13.8", | ||||||
|  |     "concurrently": "^9.1.2", | ||||||
|  |     "cross-env": "^7.0.3", | ||||||
|  |     "nodemon": "^3.1.9", | ||||||
|  |     "pm2": "^5.4.3", | ||||||
|  |     "rimraf": "^6.0.1", | ||||||
|  |     "rollup": "^4.34.9", | ||||||
|  |     "rollup-plugin-copy": "^3.5.0", | ||||||
|  |     "rollup-plugin-dts": "^6.1.1", | ||||||
|  |     "rollup-plugin-esbuild": "^6.2.1", | ||||||
|  |     "tape": "^5.9.0", | ||||||
|  |     "tsx": "^4.19.3", | ||||||
|  |     "typescript": "^5.8.2" | ||||||
|  |   }, | ||||||
|  |   "pnpm": {} | ||||||
|  | } | ||||||
							
								
								
									
										4439
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										4439
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										75
									
								
								rollup.config.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								rollup.config.mjs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | |||||||
|  | import resolve from '@rollup/plugin-node-resolve'; | ||||||
|  | import commonjs from '@rollup/plugin-commonjs'; | ||||||
|  | import json from '@rollup/plugin-json'; | ||||||
|  | import path from 'path'; | ||||||
|  | import esbuild from 'rollup-plugin-esbuild'; | ||||||
|  | import alias from '@rollup/plugin-alias'; | ||||||
|  | import replace from '@rollup/plugin-replace'; | ||||||
|  | import pkgs from './package.json' with {type: 'json'}; | ||||||
|  |  | ||||||
|  | const isDev = process.env.NODE_ENV === 'development'; | ||||||
|  | const input = isDev ? './src/dev.ts' : './src/index.ts'; | ||||||
|  | /** | ||||||
|  |  * @type {import('rollup').RollupOptions} | ||||||
|  |  */ | ||||||
|  | const config = { | ||||||
|  |   input, | ||||||
|  |   output: { | ||||||
|  |     dir: './dist', | ||||||
|  |     entryFileNames: 'app.mjs', | ||||||
|  |     chunkFileNames: '[name]-[hash].mjs', | ||||||
|  |     format: 'esm', | ||||||
|  |   }, | ||||||
|  |   plugins: [ | ||||||
|  |     replace({ | ||||||
|  |       preventAssignment: true, // 防止意外赋值 | ||||||
|  |       DEV_SERVER: JSON.stringify(isDev), // 替换 process.env.NODE_ENV | ||||||
|  |       VERSION: JSON.stringify(pkgs.version), | ||||||
|  |     }), | ||||||
|  |     alias({ | ||||||
|  |       // only esbuild needs to be configured | ||||||
|  |       entries: [ | ||||||
|  |         { find: '@', replacement: path.resolve('src') }, // 配置 @ 为 src 目录 | ||||||
|  |         { find: 'http', replacement: 'node:http' }, | ||||||
|  |         { find: 'https', replacement: 'node:https' }, | ||||||
|  |         { find: 'fs', replacement: 'node:fs' }, | ||||||
|  |         { find: 'path', replacement: 'node:path' }, | ||||||
|  |         { find: 'crypto', replacement: 'node:crypto' }, | ||||||
|  |         { find: 'zlib', replacement: 'node:zlib' }, | ||||||
|  |         { find: 'stream', replacement: 'node:stream' }, | ||||||
|  |         { find: 'net', replacement: 'node:net' }, | ||||||
|  |         { find: 'tty', replacement: 'node:tty' }, | ||||||
|  |         { find: 'tls', replacement: 'node:tls' }, | ||||||
|  |         { find: 'buffer', replacement: 'node:buffer' }, | ||||||
|  |         { find: 'timers', replacement: 'node:timers' }, | ||||||
|  |         // { find: 'string_decoder', replacement: 'node:string_decoder' }, | ||||||
|  |         { find: 'dns', replacement: 'node:dns' }, | ||||||
|  |         { find: 'domain', replacement: 'node:domain' }, | ||||||
|  |         { find: 'os', replacement: 'node:os' }, | ||||||
|  |         { find: 'events', replacement: 'node:events' }, | ||||||
|  |         { find: 'url', replacement: 'node:url' }, | ||||||
|  |         { find: 'assert', replacement: 'node:assert' }, | ||||||
|  |         { find: 'util', replacement: 'node:util' }, | ||||||
|  |       ], | ||||||
|  |     }), | ||||||
|  |     resolve({ | ||||||
|  |       preferBuiltins: true, // 强制优先使用内置模块 | ||||||
|  |     }), | ||||||
|  |     commonjs(), | ||||||
|  |     esbuild({ | ||||||
|  |       target: 'node22', // | ||||||
|  |       minify: false, // 启用代码压缩 | ||||||
|  |       tsconfig: 'tsconfig.json', | ||||||
|  |     }), | ||||||
|  |     json(), | ||||||
|  |   ], | ||||||
|  |   external: [ | ||||||
|  |     /@kevisual\/router(\/.*)?/, //, // 路由 | ||||||
|  |     /@kevisual\/use-config(\/.*)?/, // | ||||||
|  |  | ||||||
|  |     // 'sequelize', // 数据库 orm | ||||||
|  |     // 'ioredis', // redis | ||||||
|  |     // 'pg', // pg | ||||||
|  |   ], | ||||||
|  | }; | ||||||
|  | export default config; | ||||||
							
								
								
									
										8
									
								
								src/app.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/app.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | import { App } from '@kevisual/router'; | ||||||
|  | import { useContextKey } from '@kevisual/use-config/context'; | ||||||
|  |  | ||||||
|  | const init = () => { | ||||||
|  |   return new App(); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | export const app = useContextKey('app', init); | ||||||
							
								
								
									
										16
									
								
								src/demo-route.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/demo-route.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | import { app } from './app.ts'; | ||||||
|  | import { useConfig } from '@kevisual/use-config'; | ||||||
|  |  | ||||||
|  | app | ||||||
|  |   .route({ | ||||||
|  |     path: 'demo', | ||||||
|  |     key: 'demo', | ||||||
|  |   }) | ||||||
|  |   .define(async (ctx) => { | ||||||
|  |     ctx.body = '123'; | ||||||
|  |   }) | ||||||
|  |   .addTo(app); | ||||||
|  |  | ||||||
|  | const config = useConfig(); | ||||||
|  |  | ||||||
|  | console.log('run demo: http://localhost:' + config.port + '/api/router?path=demo&key=demo'); | ||||||
							
								
								
									
										8
									
								
								src/dev.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/dev.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | import { useConfig } from '@kevisual/use-config'; | ||||||
|  | import { app } from './index.ts'; | ||||||
|  |  | ||||||
|  | const config = useConfig(); | ||||||
|  |  | ||||||
|  | app.listen(config.port, () => { | ||||||
|  |   console.log(`server is running at http://localhost:${config.port}`); | ||||||
|  | }); | ||||||
							
								
								
									
										4
									
								
								src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/index.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | import { app } from './app.ts'; | ||||||
|  | import './demo-route.ts'; | ||||||
|  |  | ||||||
|  | export { app }; | ||||||
							
								
								
									
										9
									
								
								src/modules/mark.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/modules/mark.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | import { Mark, markModelInit } from '@kevisual/mark'; | ||||||
|  |  | ||||||
|  | export { Mark, markModelInit }; | ||||||
|  |  | ||||||
|  | export const init = () => { | ||||||
|  |   markModelInit({ | ||||||
|  |     tableName: '', | ||||||
|  |   }); | ||||||
|  | }; | ||||||
							
								
								
									
										1
									
								
								src/modules/sequelize.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/modules/sequelize.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | export { sequelize } from '@kevisual/code-center-module'; | ||||||
							
								
								
									
										9
									
								
								src/modules/user.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/modules/user.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | import { sequelize, User, UserInit, Org, OrgInit } from '@kevisual/code-center-module'; | ||||||
|  |  | ||||||
|  | export { sequelize, User, UserInit, Org, OrgInit }; | ||||||
|  |  | ||||||
|  | export const init = () => { | ||||||
|  |   UserInit(); | ||||||
|  |   OrgInit(); | ||||||
|  | }; | ||||||
|  | init(); | ||||||
							
								
								
									
										33
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | |||||||
|  | { | ||||||
|  |   "compilerOptions": { | ||||||
|  |     "module": "nodenext", | ||||||
|  |     "target": "esnext", | ||||||
|  |     "noImplicitAny": false, | ||||||
|  |     "outDir": "./dist", | ||||||
|  |     "sourceMap": false, | ||||||
|  |     "allowJs": true, | ||||||
|  |     "newLine": "LF", | ||||||
|  |     "baseUrl": "./", | ||||||
|  |     "typeRoots": [ | ||||||
|  |       "node_modules/@types", | ||||||
|  |       "node_modules/@kevisual/types" | ||||||
|  |     ], | ||||||
|  |     "declaration": true, | ||||||
|  |     "noEmit": false, | ||||||
|  |     "allowImportingTsExtensions": true, | ||||||
|  |     "emitDeclarationOnly": true, | ||||||
|  |     "moduleResolution": "NodeNext", | ||||||
|  |     "experimentalDecorators": true, | ||||||
|  |     "emitDecoratorMetadata": true, | ||||||
|  |     "esModuleInterop": true, | ||||||
|  |     "paths": { | ||||||
|  |       "@/*": [ | ||||||
|  |         "src/*" | ||||||
|  |       ] | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   "include": [ | ||||||
|  |     "src/**/*.ts", | ||||||
|  |   ], | ||||||
|  |   "exclude": [], | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 kevisual
					kevisual