From 7759aa3188cbb33937046288c7f02e1014288d49 Mon Sep 17 00:00:00 2001 From: Suyi Date: Thu, 4 Jan 2024 01:09:17 +0800 Subject: [PATCH] feat: add webapp artusx-web --- common/config/rush/pnpm-lock.yaml | 273 ++++++++++++++++++ packages/apps/artusx-web/package.json | 28 ++ packages/apps/artusx-web/src/bootstrap.ts | 12 + .../artusx-web/src/config/config.default.ts | 5 + packages/apps/artusx-web/src/config/plugin.ts | 8 + .../apps/artusx-web/src/controller/home.ts | 11 + packages/apps/artusx-web/tsconfig.json | 11 + packages/libs/application/package.json | 2 +- .../plugins/application-http/package.json | 3 +- packages/plugins/application-http/src/app.ts | 0 .../plugins/application-http/src/index.ts | 3 + .../plugins/application-http/src/lifecycle.ts | 7 +- rush.json | 5 + 13 files changed, 364 insertions(+), 4 deletions(-) create mode 100644 packages/apps/artusx-web/package.json create mode 100644 packages/apps/artusx-web/src/bootstrap.ts create mode 100644 packages/apps/artusx-web/src/config/config.default.ts create mode 100644 packages/apps/artusx-web/src/config/plugin.ts create mode 100644 packages/apps/artusx-web/src/controller/home.ts create mode 100644 packages/apps/artusx-web/tsconfig.json delete mode 100644 packages/plugins/application-http/src/app.ts create mode 100644 packages/plugins/application-http/src/index.ts diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index ce4fc874..1f1ffbf7 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -5,6 +5,31 @@ importers: .: specifiers: {} + ../../packages/apps/artusx-web: + specifiers: + '@artus/core': ~2.2.0 + '@artus/tsconfig': ~1.0.1 + '@artusx/core': workspace:* + '@artusx/plugin-application-http': workspace:* + '@artusx/run': workspace:* + '@types/node': ~20.10.6 + nodemon: ~3.0.2 + ts-node: ~10.9.2 + tslib: ~2.6.2 + typescript: ~5.3.3 + dependencies: + '@artus/core': 2.2.0 + '@artusx/core': link:../../libs/framework + '@artusx/plugin-application-http': link:../../plugins/application-http + '@artusx/run': link:../../libs/application + nodemon: 3.0.2 + tslib: 2.6.2 + typescript: 5.3.3 + devDependencies: + '@artus/tsconfig': 1.0.1_@types+node@20.10.6 + '@types/node': 20.10.6 + ts-node: 10.9.2_guidcuijextr5nuigknvoilupu + ../../packages/libs/application: specifiers: '@artus/core': ^1.0.3 @@ -153,6 +178,17 @@ packages: reflect-metadata: 0.1.14 dev: false + /@artus/core/2.2.0: + resolution: {integrity: sha512-qWqNWBAfuhcrzIBMfpZ61/Tp9T4YfZ2m5jflS1dqc7b+QsgJGxsoJ89NrjZnkvCucl0BnbyNczuwV5mlUgwGsQ==} + peerDependencies: + reflect-metadata: ^0.1.13 + dependencies: + '@artus/injection': 0.5.2 + deepmerge: 4.3.1 + minimatch: 5.1.6 + tslib: 2.6.2 + dev: false + /@artus/injection/0.5.2: resolution: {integrity: sha512-rWjXd2Th+Q3PmmoLsjT3Fh5TyIXb6Ee/heyAI7U8/PmPXfG+rXvLVOSYHm414fIzDkoUHSE5HoMMLpvGK/RUrg==} dev: false @@ -174,6 +210,17 @@ packages: '@types/node': 18.19.4 dev: true + /@artus/tsconfig/1.0.1_@types+node@20.10.6: + resolution: {integrity: sha512-IxBvvg6I7+3do+CCxZq/LSvZiMFRwVFwUVkJWEunVGXtggq9Q0cnlrdJnnjnnbAlIgmH1knRc4z/atItnHjDEg==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@types/node': 20.10.6 + dev: true + /@cspotcode/source-map-support/0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -353,6 +400,12 @@ packages: dependencies: undici-types: 5.26.5 + /@types/node/20.10.6: + resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} + dependencies: + undici-types: 5.26.5 + dev: true + /@types/qs/6.9.11: resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} dev: true @@ -380,6 +433,10 @@ packages: resolution: {integrity: sha512-q0JomTsJ2I5Mv7dhHhQLGjMvX0JJm5dyZ1DXQySIUzU1UlwzB8bt+R6+LODUbz0UDIOvEzGc28tk27gBJw2N8Q==} dev: false + /abbrev/1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + dev: false + /accepts/1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -399,6 +456,14 @@ packages: hasBin: true dev: true + /anymatch/3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: false + /arg/4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true @@ -407,6 +472,11 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: false + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: false + /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -420,6 +490,13 @@ packages: balanced-match: 1.0.2 dev: false + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: false + /cache-content-type/1.0.1: resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} engines: {node: '>= 6.0.0'} @@ -428,6 +505,21 @@ packages: ylru: 1.3.2 dev: false + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: false + /cluster-key-slot/1.1.2: resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} engines: {node: '>=0.10.0'} @@ -478,6 +570,19 @@ packages: ms: 2.1.2 dev: false + /debug/4.3.4_supports-color@5.5.0: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + supports-color: 5.5.0 + dev: false + /deep-equal/1.0.1: resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} dev: false @@ -533,6 +638,13 @@ packages: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} dev: false + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: false + /fresh/0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -542,12 +654,27 @@ packages: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: false + /fsevents/2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: false + optional: true + /generate-function/2.3.1: resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} dependencies: is-property: 1.0.2 dev: false + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: false + /glob/7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} dependencies: @@ -559,6 +686,11 @@ packages: path-is-absolute: 1.0.1 dev: false + /has-flag/3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: false + /has-symbols/1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} @@ -608,6 +740,10 @@ packages: safer-buffer: 2.1.2 dev: false + /ignore-by-default/1.0.1: + resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + dev: false + /inflection/1.13.4: resolution: {integrity: sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==} engines: {'0': node >= 0.4.0} @@ -641,6 +777,18 @@ packages: - supports-color dev: false + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: false + + /is-extglob/2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: false + /is-generator-function/1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} @@ -648,6 +796,18 @@ packages: has-tostringtag: 1.0.0 dev: false + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: false + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: false + /is-property/1.0.2: resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} dev: false @@ -814,6 +974,35 @@ packages: engines: {node: '>= 0.6'} dev: false + /nodemon/3.0.2: + resolution: {integrity: sha512-9qIN2LNTrEzpOPBaWHTm4Asy1LxXLSickZStAQ4IZe7zsoIpD/A7LWxhZV3t4Zu352uBcqVnRsDXSMR2Sc3lTA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + chokidar: 3.5.3 + debug: 4.3.4_supports-color@5.5.0 + ignore-by-default: 1.0.1 + minimatch: 3.1.2 + pstree.remy: 1.1.8 + semver: 7.5.4 + simple-update-notifier: 2.0.0 + supports-color: 5.5.0 + touch: 3.1.0 + undefsafe: 2.0.5 + dev: false + + /nopt/1.0.10: + resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: false + + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: false + /on-finished/2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -849,6 +1038,22 @@ packages: resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} dev: false + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: false + + /pstree.remy/1.1.8: + resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + dev: false + + /readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: false + /redis-errors/1.2.0: resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} engines: {node: '>=4'} @@ -966,6 +1171,13 @@ packages: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: false + /simple-update-notifier/2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: false + /sqlstring/2.3.3: resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} engines: {node: '>= 0.6'} @@ -985,6 +1197,20 @@ packages: engines: {node: '>= 0.8'} dev: false + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: false + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: false + /toidentifier/1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -994,6 +1220,44 @@ packages: resolution: {integrity: sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg==} dev: false + /touch/3.1.0: + resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==} + hasBin: true + dependencies: + nopt: 1.0.10 + dev: false + + /ts-node/10.9.2_guidcuijextr5nuigknvoilupu: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.10.6 + acorn: 8.11.3 + acorn-walk: 8.3.1 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.3.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + /ts-node/10.9.2_rjts7x5ipcoasow4czzl2kffka: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -1047,6 +1311,15 @@ packages: hasBin: true dev: true + /typescript/5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + + /undefsafe/2.0.5: + resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + dev: false + /undici-types/5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} diff --git a/packages/apps/artusx-web/package.json b/packages/apps/artusx-web/package.json new file mode 100644 index 00000000..a0a4fc5a --- /dev/null +++ b/packages/apps/artusx-web/package.json @@ -0,0 +1,28 @@ +{ + "name": "artusx-web", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "dev": "npx nodemon src/bootstrap.ts", + "build": "" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "nodemon": "~3.0.2", + "@artus/core": "~2.2.0", + "@artusx/core": "workspace:*", + "@artusx/run": "workspace:*", + "@artusx/plugin-application-http": "workspace:*", + "tslib": "~2.6.2", + "typescript": "~5.3.3" + }, + "devDependencies": { + "nodemon": "~3.0.2", + "ts-node": "~10.9.2", + "@types/node": "~20.10.6", + "@artus/tsconfig": "~1.0.1" + } +} diff --git a/packages/apps/artusx-web/src/bootstrap.ts b/packages/apps/artusx-web/src/bootstrap.ts new file mode 100644 index 00000000..1a12cb7c --- /dev/null +++ b/packages/apps/artusx-web/src/bootstrap.ts @@ -0,0 +1,12 @@ +import path from 'path'; +import { Application } from '@artusx/run'; + +(async () => { + const app = await Application.start({ + root: path.resolve(__dirname), + name: 'app', + configDir: 'config' + }); + + console.log(app.config); +})(); diff --git a/packages/apps/artusx-web/src/config/config.default.ts b/packages/apps/artusx-web/src/config/config.default.ts new file mode 100644 index 00000000..d472da1f --- /dev/null +++ b/packages/apps/artusx-web/src/config/config.default.ts @@ -0,0 +1,5 @@ +export default { + framework: { + package: '@artusx/core' + } +}; diff --git a/packages/apps/artusx-web/src/config/plugin.ts b/packages/apps/artusx-web/src/config/plugin.ts new file mode 100644 index 00000000..28bce407 --- /dev/null +++ b/packages/apps/artusx-web/src/config/plugin.ts @@ -0,0 +1,8 @@ +export default { + redis: { + enable: false + }, + sequelize: { + enable: false + } +}; diff --git a/packages/apps/artusx-web/src/controller/home.ts b/packages/apps/artusx-web/src/controller/home.ts new file mode 100644 index 00000000..c744e5c4 --- /dev/null +++ b/packages/apps/artusx-web/src/controller/home.ts @@ -0,0 +1,11 @@ +import { GET, HTTPController } from '@artusx/plugin-application-http'; + +import { HTTPContext } from '@artusx/plugin-application-http'; + +@HTTPController() +export default class HomeController { + @GET('/') + async home(ctx: HTTPContext) { + ctx.body = 'Hello World'; + } +} diff --git a/packages/apps/artusx-web/tsconfig.json b/packages/apps/artusx-web/tsconfig.json new file mode 100644 index 00000000..926b83e4 --- /dev/null +++ b/packages/apps/artusx-web/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "@artus/tsconfig", + "compilerOptions": { + "baseUrl": ".", + "strictNullChecks": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "outDir": "dist" + }, + "include": ["src/**/*.ts", "src/**/*.json"] +} diff --git a/packages/libs/application/package.json b/packages/libs/application/package.json index 5342d52c..19e0d9bf 100644 --- a/packages/libs/application/package.json +++ b/packages/libs/application/package.json @@ -2,7 +2,7 @@ "name": "@artusx/run", "version": "1.0.1-dev.11", "description": "core application for artusx", - "main": "dist/Application.js", + "main": "dist/application.js", "files": [ "dist" ], diff --git a/packages/plugins/application-http/package.json b/packages/plugins/application-http/package.json index 9dc49266..28c6418c 100644 --- a/packages/plugins/application-http/package.json +++ b/packages/plugins/application-http/package.json @@ -2,7 +2,8 @@ "name": "@artusx/plugin-application-http", "version": "1.0.1-dev.11", "description": "application-http plugin for artusx", - "main": "dist/app.js", + "main": "dist/index.js", + "types": "dist/index.d.ts", "files": [ "dist" ], diff --git a/packages/plugins/application-http/src/app.ts b/packages/plugins/application-http/src/app.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/plugins/application-http/src/index.ts b/packages/plugins/application-http/src/index.ts new file mode 100644 index 00000000..472a54fe --- /dev/null +++ b/packages/plugins/application-http/src/index.ts @@ -0,0 +1,3 @@ +export * from './lifecycle'; +export * from './decorator'; +export * from './types'; diff --git a/packages/plugins/application-http/src/lifecycle.ts b/packages/plugins/application-http/src/lifecycle.ts index a190d37e..039e97f6 100644 --- a/packages/plugins/application-http/src/lifecycle.ts +++ b/packages/plugins/application-http/src/lifecycle.ts @@ -40,6 +40,10 @@ export default class ApplicationHttpLifecycle implements ApplicationLifecycle { return this.app.container; } + get logger() { + return this.app.logger; + } + private registerRoute( controllerMetadata: ControllerMetadata, routeMetadataList: RouteMetadata[], @@ -121,8 +125,7 @@ export default class ApplicationHttpLifecycle implements ApplicationLifecycle { app.use(this.router.routes()); app.listen(port, () => { - // this.logger.info(`Server listening on: http://localhost:${port}`); - console.log(`Server listening on: http://localhost:${port}`); + this.logger.info(`Server listening on: http://localhost:${port}`); }); } } diff --git a/rush.json b/rush.json index 532c30e5..e3f89dae 100644 --- a/rush.json +++ b/rush.json @@ -375,6 +375,11 @@ "tags": ["artus-app"], "shouldPublish": true, "versionPolicyName": "public-library" + }, + { + "packageName": "artusx-web", + "projectFolder": "packages/apps/artusx-web", + "tags": ["webapp"] } // { // /**