თანამედროვე პროგრამირებაში API-ის სპეციფიკაციების, რეალიზაციისა და ტესტების სინქრონიზაცია ხშირად სერიოზულ გამოწვევას წარმოადგენს. დეველოპერებს უწევთ სხვადასხვა ფაილის მუდმივი განახლება, რაც შეცდომების ალბათობას ზრდის. TriadJS სწორედ ამ პრობლემის გადასაჭრელად შეიქმნა.
TriadJS არის TypeScript-ზე ორიენტირებული API ფრეიმვორკი, რომელიც ეფუძნება პრინციპს: „ერთი ჭეშმარიტების წყარო“. ეს ნიშნავს, რომ თქვენ ერთხელ წერთ კოდს, ხოლო ფრეიმვორკი ავტომატურად უზრუნველყოფს ყველა საჭირო არტეფაქტის გენერირებას.
პლატფორმა გთავაზობთ რანთაიმ ვალიდაციას, სტატიკურ ტიპებს და OpenAPI 3.1-ის მხარდაჭერას HTTP ენდპოინტებისთვის. გარდა ამისა, ის ავტომატურად ქმნის AsyncAPI 3.0 დოკუმენტაციას WebSocket არხებისთვის, რაც მნიშვნელოვნად ამარტივებს დეველოპერების ყოველდღიურ მუშაობას.
TriadJS-ის ერთ-ერთი ყველაზე ძლიერი მხარე ტესტირების ავტომატიზაციაა. სისტემა ქმნის როგორც შესრულებად BDD სცენარებს, ისე „adversarial“ ტესტებს, რომლებიც თქვენი სქემის შეზღუდვებიდან გამომდინარე, ავტომატურად ამოწმებენ სისტემის მდგრადობას.
| Package | Purpose |
|---|---|
| @triadjs/core | Schema DSL, endpoint(), channel(), scenario(), scenario.auto(), createRouter() |
| @triadjs/openapi | Router → OpenAPI 3.1 (YAML/JSON) |
| @triadjs/asyncapi | Router → AsyncAPI 3.0 (YAML/JSON) |
| @triadjs/gherkin | Behaviors → .feature files |
| @triadjs/test-runner | In-process BDD runner + schema-derived auto-scenario generation |
| @triadjs/fastify | Fastify HTTP + WebSocket adapter |
| @triadjs/express | Express HTTP adapter |
| @triadjs/hono | Hono adapter (Node, Deno, Bun, Cloudflare Workers) |
| @triadjs/lambda | AWS Lambda adapter (API Gateway v1/v2, ALB, Function URL) |
| @triadjs/drizzle | Triad schemas → Drizzle tables + SQL migrations (SQLite, Postgres, MySQL) |
| @triadjs/tanstack-query | Router → typed React Query hooks |
| @triadjs/solid-query | Router → typed Solid Query hooks |
| @triadjs/vue-query | Router → typed Vue Query composables |
| @triadjs/svelte-query | Router → typed Svelte Query store factories |
| @triadjs/channel-client | Router → typed WebSocket clients (vanilla TS, React, Solid, Vue, Svelte) |
| @triadjs/forms | Router → form validators (react-hook-form, @tanstack/form) |
| @triadjs/jwt | requireJWT BeforeHandler factory wrapping jose |
| @triadjs/otel | OpenTelemetry tracing (opt-in router wrapper) |
| @triadjs/metrics | Prometheus metrics (opt-in router wrapper) |
| @triadjs/logging | Structured logging with AsyncLocalStorage (opt-in router wrapper) |
| @triadjs/security-headers | Security headers middleware (Fastify, Express, Hono) |
| @triadjs/cli | triad test, triad fuzz, triad docs, triad new, triad mock, triad db, triad validate, triad frontend |
ფრეიმვორკი განსაკუთრებით ეფექტურია AI ასისტენტებთან მუშაობისას. ვინაიდან მთელი API-ის ლოგიკა ერთ ადგილასაა თავმოყრილი, ხელოვნური ინტელექტის მოდელებს შეუძლიათ სრულად გაიაზრონ პროექტის სტრუქტურა ზედმეტი კონტექსტური ინფორმაციის გარეშე.
პროექტი მხარს უჭერს სხვადასხვა ტექნოლოგიურ სტეკს. დეველოპერებს შეუძლიათ აირჩიონ სასურველი ადაპტერი, როგორიცაა Fastify, Express ან Hono, ასევე ORM-ის ტიპი — Drizzle, Prisma ან Kysely. ეს მოქნილობა საშუალებას აძლევს გუნდებს, დანერგონ TriadJS უკვე არსებულ პროექტებშიც.
ამჟამად TriadJS არის pre-1.0 სტადიაში და აქტიურ განვითარებას გადის. მიუხედავად ამისა, ის უკვე მოიცავს 21 პაკეტს და დეტალურ დოკუმენტაციას. შემქმნელები გვირჩევენ ვერსიების ფიქსირებას, რადგან API-ის სტრუქტურა შესაძლოა საბოლოო რელიზამდე შეიცვალოს.
პროექტის მიზანია დეველოპერების პროდუქტიულობის გაზრდა კოდის დუბლირების შემცირების გზით. TriadJS-ით თქვენ არ გჭირდებათ ხელით დაწერილი OpenAPI YAML ფაილები ან ცალკეული Zod სქემები, რომლებიც დროთა განმავლობაში კოდს ჩამორჩებიან.
TriadJS-ის გუნდი აქტიურად მუშაობს ფუნქციონალის გაფართოებაზე. ამ ეტაპზე უკვე დანერგილია ისეთი მნიშვნელოვანი ფუნქციები, როგორიცაა OpenTelemetry მხარდაჭერა, ავტორიზაციის მექანიზმები და ფრონტენდ ჰუკების გენერაცია React-ის, Vue-ს, Solid-ისა და Svelte-ისთვის.
საბოლოო ჯამში, TriadJS ცვლის მიდგომას API-ის დიზაინის მიმართ. ერთი სქემის ცვლილება ავტომატურად აისახება ყველა დამოკიდებულ კომპონენტზე, რაც სისტემას უფრო საიმედოსა და ადვილად შესანარჩუნებელს ხდის.
| Need | Typical stack | Triad |
|---|---|---|
| Runtime validation | Zod / Yup | t.model() |
| Static types | z.infer | t.infer |
| OpenAPI | zod-to-openapi + hand edits | triad docs |
| BDD tests | Cucumber + step defs + fixtures | scenario().when().then() |
| Boundary/fuzz tests | Schemathesis (external, Python) | scenario.auto() (built-in, zero-config) |
| Frontend hooks | hand-written fetch wrappers | triad frontend generate |
| WebSocket clients | hand-written WS wrappers | triad frontend generate --target channel-client-react |
| WebSocket docs | hand-written AsyncAPI | triad docs |
| DB schema | Drizzle (separate definitions) | triad db generate |
| Breaking-change detection | manual OpenAPI diff | triad docs check |
თუ თქვენ ეძებთ გზას, როგორ გაამარტივოთ API-ის განვითარების პროცესი და გააუმჯობესოთ კოდის ხარისხი, TriadJS შეიძლება გახდეს თქვენი შემდეგი არჩევანი.


დისკუსია
0 კომენტარი
ჯერ კომენტარი არ არის — იყავი პირველი.