თანამედროვე პროგრამირებაში API-ის სპეციფიკაციების, რეალიზაციისა და ტესტების სინქრონიზაცია ხშირად სერიოზულ გამოწვევას წარმოადგენს. დეველოპერებს უწევთ სხვადასხვა ფაილის მუდმივი განახლება, რაც შეცდომების ალბათობას ზრდის. TriadJS სწორედ ამ პრობლემის გადასაჭრელად შეიქმნა.


TriadJS არის TypeScript-ზე ორიენტირებული API ფრეიმვორკი, რომელიც ეფუძნება პრინციპს: „ერთი ჭეშმარიტების წყარო“. ეს ნიშნავს, რომ თქვენ ერთხელ წერთ კოდს, ხოლო ფრეიმვორკი ავტომატურად უზრუნველყოფს ყველა საჭირო არტეფაქტის გენერირებას.

პლატფორმა გთავაზობთ რანთაიმ ვალიდაციას, სტატიკურ ტიპებს და OpenAPI 3.1-ის მხარდაჭერას HTTP ენდპოინტებისთვის. გარდა ამისა, ის ავტომატურად ქმნის AsyncAPI 3.0 დოკუმენტაციას WebSocket არხებისთვის, რაც მნიშვნელოვნად ამარტივებს დეველოპერების ყოველდღიურ მუშაობას.


TriadJS-ის ერთ-ერთი ყველაზე ძლიერი მხარე ტესტირების ავტომატიზაციაა. სისტემა ქმნის როგორც შესრულებად BDD სცენარებს, ისე „adversarial“ ტესტებს, რომლებიც თქვენი სქემის შეზღუდვებიდან გამომდინარე, ავტომატურად ამოწმებენ სისტემის მდგრადობას.


PackagePurpose
@triadjs/coreSchema DSL, endpoint(), channel(), scenario(), scenario.auto(), createRouter()
@triadjs/openapiRouter → OpenAPI 3.1 (YAML/JSON)
@triadjs/asyncapiRouter → AsyncAPI 3.0 (YAML/JSON)
@triadjs/gherkinBehaviors → .feature files
@triadjs/test-runnerIn-process BDD runner + schema-derived auto-scenario generation
@triadjs/fastifyFastify HTTP + WebSocket adapter
@triadjs/expressExpress HTTP adapter
@triadjs/honoHono adapter (Node, Deno, Bun, Cloudflare Workers)
@triadjs/lambdaAWS Lambda adapter (API Gateway v1/v2, ALB, Function URL)
@triadjs/drizzleTriad schemas → Drizzle tables + SQL migrations (SQLite, Postgres, MySQL)
@triadjs/tanstack-queryRouter → typed React Query hooks
@triadjs/solid-queryRouter → typed Solid Query hooks
@triadjs/vue-queryRouter → typed Vue Query composables
@triadjs/svelte-queryRouter → typed Svelte Query store factories
@triadjs/channel-clientRouter → typed WebSocket clients (vanilla TS, React, Solid, Vue, Svelte)
@triadjs/formsRouter → form validators (react-hook-form, @tanstack/form)
@triadjs/jwtrequireJWT BeforeHandler factory wrapping jose
@triadjs/otelOpenTelemetry tracing (opt-in router wrapper)
@triadjs/metricsPrometheus metrics (opt-in router wrapper)
@triadjs/loggingStructured logging with AsyncLocalStorage (opt-in router wrapper)
@triadjs/security-headersSecurity headers middleware (Fastify, Express, Hono)
@triadjs/clitriad 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-ის დიზაინის მიმართ. ერთი სქემის ცვლილება ავტომატურად აისახება ყველა დამოკიდებულ კომპონენტზე, რაც სისტემას უფრო საიმედოსა და ადვილად შესანარჩუნებელს ხდის.

NeedTypical stackTriad
Runtime validationZod / Yupt.model()
Static typesz.infert.infer
OpenAPIzod-to-openapi + hand editstriad docs
BDD testsCucumber + step defs + fixturesscenario().when().then()
Boundary/fuzz testsSchemathesis (external, Python)scenario.auto() (built-in, zero-config)
Frontend hookshand-written fetch wrapperstriad frontend generate
WebSocket clientshand-written WS wrapperstriad frontend generate --target channel-client-react
WebSocket docshand-written AsyncAPItriad docs
DB schemaDrizzle (separate definitions)triad db generate
Breaking-change detectionmanual OpenAPI difftriad docs check

თუ თქვენ ეძებთ გზას, როგორ გაამარტივოთ API-ის განვითარების პროცესი და გააუმჯობესოთ კოდის ხარისხი, TriadJS შეიძლება გახდეს თქვენი შემდეგი არჩევანი.