diff --git a/docs/.gitignore b/docs/.gitignore index 7df88fdf9e8..072eb4cac60 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -3,6 +3,7 @@ api .vitepress/cache .vitepress/dist public/api.json +public/reference-sidebar.json # Yarn .pnp.* @@ -13,4 +14,3 @@ public/api.json !.yarn/cache !.yarn/sdks !.yarn/versions - diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 867340ca81a..86efede72dc 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -1,14 +1,15 @@ import {apiAnchor} from "@tsed/vitepress-theme/markdown/api-anchor/api-anchor.js"; import {defineConfig} from "vitepress"; import pkg from "../../package.json"; -import {getSidebar} from "./api.js"; +import referenceSidebar from "../public/reference-sidebar.json" +import team from "../team.json" // https://vitepress.dev/reference/site-config export default defineConfig({ title: "Ts.ED", lastUpdated: true, - + description: "Ts.ED is a modern Node.js framework built with TypeScript. It offers a flexible structure with a fast learning curve, specifically designed to improve the developer experience. Ts.ED provides numerous decorators and guidelines to make your code more readable and less error-prone. It supports various platforms and tools, including Node.js/Bun.js, Express.js/Koa.js, CLI, and serverless architectures (e.g., AWS).", sitemap: { hostname: "https://tsed.io" }, @@ -33,6 +34,7 @@ export default defineConfig({ logo: "/tsed.svg", siteTitle: false, apiUrl: "/api.json", + team, apiRedirectUrl: "", repo: "tsedio/tsed", githubProxyUrl: "https://api.tsed.io/rest/github/tsedio/tsed", @@ -560,8 +562,7 @@ export default defineConfig({ ].sort((a, b) => a.text.localeCompare(b.text)) } ], - - "/api/": getSidebar() + "/api/": referenceSidebar }, socialLinks: [ {icon: "github", link: "https://github.com/tsedio/tsed"}, diff --git a/docs/.vitepress/api.ts b/docs/.vitepress/scripts/api-summary.js similarity index 85% rename from docs/.vitepress/api.ts rename to docs/.vitepress/scripts/api-summary.js index 23699c5b236..0a198bbe116 100644 --- a/docs/.vitepress/api.ts +++ b/docs/.vitepress/scripts/api-summary.js @@ -1,5 +1,6 @@ import {mapApiReferences} from "@tsed/vitepress-theme/composables/api/mappers/mapApiReferences.js"; -import api from "../public/api.json"; +import api from "../../public/api.json" with { type: "json" }; +import {writeFile} from "node:fs/promises"; const IS_CORES = /core|@tsed\/di|hooks|schema$|\/exceptions$|engines|json-mapper|open-spec/; const IS_PLATFORM = /platform/; @@ -31,7 +32,7 @@ export function getSidebar() { platformModules.push(item); } else if (IS_ORM.test(module)) { ormModules.push(item); - }else { + } else { thirdParties.push(item); } }); @@ -56,3 +57,5 @@ export function getSidebar() { ]; } + +await writeFile(import.meta.dirname + "/../../public/reference-sidebar.json", JSON.stringify(getSidebar(), null, 2)); diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index c7f17922b83..ec02c623bb2 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -1,15 +1,15 @@ // https://vitepress.dev/guide/custom-theme import {DefaultTheme} from "@tsed/vitepress-theme"; -import type {Theme} from "vitepress"; -import {h} from "vue"; import HomeBanner from "@tsed/vitepress-theme/organisms/home/HomeBanner.vue"; -import HomePartners from "@tsed/vitepress-theme/organisms/home/HomePartners.vue"; import HomeBody from "@tsed/vitepress-theme/organisms/home/HomeBody.vue"; import HomeTabsTerminal from "@tsed/vitepress-theme/organisms/home/terminal/HomeTabsTerminal.vue"; +import HomeTabTerminalBun from "@tsed/vitepress-theme/organisms/home/terminal/HomeTabTerminalBun.vue"; import HomeTabTerminalNpm from "@tsed/vitepress-theme/organisms/home/terminal/HomeTabTerminalNpm.vue"; -import HomeTabTerminalYarn from "@tsed/vitepress-theme/organisms/home/terminal/HomeTabTerminalYarn.vue"; import HomeTabTerminalPnpm from "@tsed/vitepress-theme/organisms/home/terminal/HomeTabTerminalPnpm.vue"; -import HomeTabTerminalBun from "@tsed/vitepress-theme/organisms/home/terminal/HomeTabTerminalBun.vue"; +import HomeTabTerminalYarn from "@tsed/vitepress-theme/organisms/home/terminal/HomeTabTerminalYarn.vue"; +import HomeBeforeFeatures from "@tsed/vitepress-theme/organisms/home/HomeBeforeFeatures.vue"; +import type {Theme} from "vitepress"; +import {h} from "vue"; import "./style.css"; export default { @@ -26,7 +26,7 @@ export default { bun: () => h(HomeTabTerminalBun) }) }), - "home-features-before": () => h(HomePartners), + "home-features-before": () => h(HomeBeforeFeatures), "home-features-after": () => h(HomeBody) }); } diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css index f00ef8b1960..fd8b9049a5f 100644 --- a/docs/.vitepress/theme/style.css +++ b/docs/.vitepress/theme/style.css @@ -3,3 +3,7 @@ padding-right: 0; } + +.box a { + color: var(--vp-c-brand-1); +} diff --git a/docs/api.md b/docs/api.md index 6acd11e620b..aad5a15c0c9 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1,11 +1,13 @@ --- layout: page sidebar: false -meta: - - name: description - content: Api Reference of Ts.ED. Use decorator to build your model and map data. - - name: keywords - content: api reference model decorators ts.ed express typescript node.js javascript jsonschema json mapper serialization deserialization +head: + - - meta + - name: description + content: Api Reference of Ts.ED. Use decorator to build your model and map data. + - - meta + - name: keywords + content: api reference model decorators ts.ed express typescript node.js javascript jsonschema json mapper serialization deserialization --- - - -
Team members
- - -
diff --git a/docs/introduction/create-your-first-controller.md b/docs/introduction/create-your-first-controller.md index 242f0c4d13e..f1d79859ab4 100644 --- a/docs/introduction/create-your-first-controller.md +++ b/docs/introduction/create-your-first-controller.md @@ -2,11 +2,13 @@ next: text: Controllers link: /docs/controllers -meta: - - name: description - content: Create your first controller. Ts.ED is built on top of Express and uses TypeScript language. - - name: keywords - content: controller getting started ts.ed express typescript node.js javascript decorators mvc class models +head: + - - meta + - name: description + content: Create your first controller. Ts.ED is built on top of Express and uses TypeScript language. + - - meta + - name: keywords + content: controller getting started ts.ed express typescript node.js javascript decorators mvc class models --- # Create your first controller diff --git a/docs/introduction/getting-started.md b/docs/introduction/getting-started.md index bb8e7f116d2..9db526937dc 100644 --- a/docs/introduction/getting-started.md +++ b/docs/introduction/getting-started.md @@ -141,7 +141,7 @@ If none of previous solutions are satisfying maybe you are in these cases: Now you can follow one of these links to develop your new application: -[//]: # "- [Create your first controller](/getting-started/create-your-first-controller.md)" -[//]: # "- [Change server configuration](/docs/configuration.md)" -[//]: # "- [Load configuration from files](/docs/configuration.md)" -[//]: # "- [What is the Platform API](/docs/platform-api.md)" +- [Create your first controller](/introduction/create-your-first-controller.md) +- [Change server configuration](/docs/configuration/index.md) +- [Load configuration from files](/docs/configuration/index.md) +- [What is the Platform API](/docs/platform-api.md) diff --git a/docs/introduction/migrate-from-v7.md b/docs/introduction/migrate-from-v7.md index e23c1ccdf92..c5b5bd594cc 100644 --- a/docs/introduction/migrate-from-v7.md +++ b/docs/introduction/migrate-from-v7.md @@ -1,9 +1,11 @@ --- -meta: - - name: description - content: Migrate Ts.ED application from v7 to v8. Ts.ED is built on top of Express and uses TypeScript language. - - name: keywords - content: migration getting started ts.ed express typescript node.js javascript decorators mvc class models +head: + - - meta + - name: description + content: Migrate Ts.ED application from v7 to v8. Ts.ED is built on top of Express and uses TypeScript language. + - - meta + - name: keywords + content: migration getting started ts.ed express typescript node.js javascript decorators mvc class models --- # Migrate from v7 to v8 diff --git a/docs/package.json b/docs/package.json index 30c2f733dc8..bf1f6337b5a 100644 --- a/docs/package.json +++ b/docs/package.json @@ -3,12 +3,13 @@ "version": "8.0.4", "type": "module", "scripts": { - "docs:dev": "vitepress dev .", - "docs:build": "vitepress build .", - "docs:preview": "vitepress preview ." + "docs:dev": "yarn build:api:summary && vitepress dev .", + "docs:build": "yarn build:api:summary && vitepress build .", + "docs:preview": "vitepress preview .", + "build:api:summary": "node ./.vitepress/scripts/api-summary.js" }, "dependencies": { - "@tsed/vitepress-theme": "1.4.0", + "@tsed/vitepress-theme": "1.5.1", "@vueuse/core": "10.11.0", "axios": "1.7.7", "lodash": "4.17.21", diff --git a/docs/plugins/index.md b/docs/plugins/index.md index 836ef6669d7..216b9332eb9 100644 --- a/docs/plugins/index.md +++ b/docs/plugins/index.md @@ -1,10 +1,12 @@ --- layout: page -meta: - - name: description - content: Discover our list of plugins to extends your Ts.ED project. Created by the Ts.ED team and community. - - name: keywords - content: Ts.ED nodejs express typescript javascript es6 decorators mvc model ioc service model middleware socket.io swagger typeorm mongoose ajv +head: + - - meta + - name: description + content: Discover our list of plugins to extends your Ts.ED project. Created by the Ts.ED team and community. + - - meta + - name: keywords + content: Ts.ED nodejs express typescript javascript es6 decorators mvc model ioc service model middleware socket.io swagger typeorm mongoose ajv --- diff --git a/docs/yarn.lock b/docs/yarn.lock index eee3f50e73b..0214a24281a 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -734,7 +734,7 @@ __metadata: version: 0.0.0-use.local resolution: "@tsed/docs-new@workspace:." dependencies: - "@tsed/vitepress-theme": "npm:1.4.0" + "@tsed/vitepress-theme": "npm:1.5.1" "@vueuse/core": "npm:10.11.0" autoprefixer: "npm:^10.4.19" axios: "npm:1.7.7" @@ -746,14 +746,14 @@ __metadata: languageName: unknown linkType: soft -"@tsed/vitepress-theme@npm:1.4.0": - version: 1.4.0 - resolution: "@tsed/vitepress-theme@npm:1.4.0" +"@tsed/vitepress-theme@npm:1.5.1": + version: 1.5.1 + resolution: "@tsed/vitepress-theme@npm:1.5.1" dependencies: "@vueuse/core": "npm:10.11.0" axios: "npm:1.7.7" lucide-vue-next: "npm:^0.436.0" - checksum: 10/4b42f36e7513ae6c85ef6433d269f0d48510a4d3c0d1a1a51bfdfd254716039cd9a405140b479f1025b95335003c1f75ad5ec819648627e9294599102cdf93ac + checksum: 10/9ab612c81c3d4d1999bbdf21043808837c035c99749e6741bef80f8656e689494cc15272e64b834d99eef2c5580b95f598eec7a8a19636683db8c40482d8818d languageName: node linkType: hard diff --git a/readme.md b/readme.md index f49eb6a53b7..a475423abd3 100644 --- a/readme.md +++ b/readme.md @@ -28,12 +28,15 @@
-> A Node.js and TypeScript Framework on top of Express. It provides a lot of decorators and guidelines to write your code. - ## What it is -Ts.ED is a Node.js and TypeScript Framework on top of Express/Koa.js. Ts.ED is a framework on top of Express/Koa to write your application with TypeScript (or ES6). -It provides a lot of decorators and guideline to make your code more readable and less error-prone. +Ts.ED is a modern Node.js framework built with TypeScript. It offers a flexible structure with a fast learning curve, specifically designed to improve the developer experience. Ts.ED provides numerous decorators and guidelines to make your code more readable and less error-prone. It supports various platforms and tools, including Node.js/Bun.js, Express.js/Koa.js, CLI, and serverless architectures (e.g., AWS). + +- Multi-platform: Easily build your server-side application using Express.js, Koa.js, CLI, or serverless platforms (e.g., AWS). It supports both Node.js and Bun.js runtimes. Learn more here. +- Configuration: Stop wasting time on configuration—your application comes preconfigured for a fast start! Try our CLI. +- Decorators: Use a wide range of decorators to structure your code, define routes, and implement methods with ease. Learn more here. +- Class-based: Define classes as Controllers, Models, Providers (DI), Pipes, and more, with JSON Schema and OpenAPI at the core of the framework. +- Testing: Testing is not optional—it's essential! Ts.ED includes built-in features to make testing your code simple and efficient. Learn more here. ## Features diff --git a/team.json b/team.json index 93ccf6ad412..73321a9440f 100644 --- a/team.json +++ b/team.json @@ -91,8 +91,8 @@ "country": "Germany", "city": "Cologne", "role": "Contributor" - } - { + }, + { "title": "Xavier Jamito", "job": "Developer", "src": "https://avatars.githubusercontent.com/u/17645632?v=4",