Debian tarqatmalari uchun takrorlanadigan paketlar talabi kuchaymoqda
Debian hamjamiyati takrorlanadigan paketlar (reproducible builds)ni majburiy qilishni ko'rib chiqmoqda – bu xavfsizlik, ishonchlilik va sifatni oshiradi.

Web‑dasturlashda ma'lumotlar bazasiga murojaat qilish eng ko'p uchraydigan vazifalardan biridir. Ko'pincha SQL so'rovlarini yozganda, natijalar va parametrlar turlari haqida aniq ma'lumotga ega bo'lmaslik xatoliklar va SQL injection kabi xavflarga olib keladi. pg-typesafe bu muammolarni hal qilishga qaratilgan yangi vosita bo'lib, PostgreSQL so'rovlarini TypeScriptda to'liq tiplangan shaklda yaratishga imkon beradi.
Ushbu paket pg kutubxonasining standart funksiyalariga qo'shimcha kod yozishni talab qilmaydi. Faqatgina .sql so'rovi doimiy (ya'ni, string literal) bo'lsa, pg‑typesafe avtomatik ravishda TypeScript tiplarini yaratadi. Natijada quyidagi kod misolida ko'rinib turibdiki, rows o'zgaruvchisi { id: number; name: string; last_modified: Date }[] tipiga ega bo'ladi:
const { rows } = client.query(
"select id, name, last_modified from tbl where id = $1",
[42]
);
Bu yerda $1 parametrining number bo'lishi majburiy, shuning uchun noto'g'ri turdagi ma'lumot uzatilsagina, kompilyatsiya bosqichida xato chiqadi.
npm i -D pg-typesafe – paketni dev‑dependency sifatida o'rnatish.npm exec pg-typesafe -- --connectionString postgres://postgres:example@localhost. Bu buyruq src/defs.gen.ts faylini yaratadi, unda barcha tiplar saqlanadi.import type { TypesafePool } from "./defs.gen.ts"; export const pool = new Pool() as TypesafePool;.Endi har bir query chaqirig'i pg‑typesafe tomonidan tahlil qilinadi va kerakli tiplar avtomatik yangilanadi.
PostgreSQL BIGINT qiymatlari JavaScript number turida aniq ifodalanmaydi, shuning uchun pg‑typesafe standart holatda ularni string sifatida qaytaradi. Node.js 10+ versiyalarida bigint turi qo‘llab‑quvvatlanadi, shuning uchun quyidagi kod bilan tipni o‘zgartirish mumkin:
import { types } from "pg";
types.setTypeParser(20, val => BigInt(val));
pg‑typesafe konfiguratsiyasida transformParameter va transformField funksiyalarini qayta belgilash orqali bigint tipini avtomatik tanishtirish mumkin.
JSONB ustunlari uchun ham maxsus tiplar yaratish oson. Masalan, hello_data interfeysini jsonb_columns.ts faylida belgilab, pg‑typesafe konfiguratsiyasida ustun nomiga mos keluvchi tipni import qilish orqali, ma'lumotlar strukturasi aniq ko‘rinadi.
pg‑typesafe asosan quyidagi holatlarda foydalidir:
Shuningdek, pg‑typed, kysely, Zapatos kabi boshqa tip‑xavfsiz PostgreSQL kutubxonalari bilan solishtirganda, pg‑typesafe minimal sintaksis bilan ishlaydi, ya'ni pgning asl API sini o‘zgartirmasdan foydalanish mumkin.
pg‑typesafe – bu TypeScript dasturchilari uchun PostgreSQL so‘rovlarini 100 % tiplangan qilishni soddalashtiruvchi vosita. U pgning standart funksiyalariga qo‘shimcha kod kiritmaydi, lekin kompilatsiya bosqichida tiplarni yaratadi, bu esa xatoliklarni erta bosqichda aniqlash va kodni yanada barqaror qilishga yordam beradi. Agar siz Node.jsda PostgreSQL bilan ishlayotgan bo‘lsangiz, pg‑typesafe’ni sinab ko‘rish orqali loyiha xavfsizligini va ishlab chiqish tezligini sezilarli darajada oshirishingiz mumkin.