Tag: javascript
31 รายการ
Blog

Node.js ออกแพตช์ความปลอดภัยตุลาคม: อัปเป็น 26.12.1, 24.22.1 หรือ 22.23.4
Node.js ปิดช่องโหว่ 10 รายการ ระดับ high 4 ตัว รวม Brotli decoder ที่อาจถูกใช้รันโค้ด และการหลบเช็กใบรับรอง TLS สรุปรุ่นที่ต้องอัปและสิ่งที่ควรเช็กวันนี้

ช่องโหว่ SlugFest: แค่จดชื่อ repo เก่า ก็ปล่อยอัปเดตแทนแพ็กเกจ npm กว่า 1,500 ตัวได้
SlugFest ทำให้คนที่มาจองชื่อคลังโค้ดเก่ามีทางปล่อยอัปเดตแทนแพ็กเกจ npm ได้โดยไม่ขโมยรหัสผ่าน อ่านแล้วรู้ว่ากระทบเว็บที่คุณใช้ยังไง จุดที่ GitHub กับ Bloom พูดไม่ตรงกัน และแต่ละกลุ่มควรเช็กอะไร
Bun.inspect.custom: ทำ log อ่านง่ายโดยไม่เผลอพ่น secret
กำหนด representation ของ object ด้วย Bun.inspect.custom พร้อมทดสอบ redaction และเตือนว่าไม่ใช่ security boundary

Cloudflare ซื้อ Deno แต่ผู้ใช้ต้องเริ่มวางแผนย้าย
ทีม Deno ไป Cloudflare แต่ runtime และ Deno Deploy มีเวลาสนับสนุนเหลือจำกัด เช็กผลกระทบต่อแอปร้านค้า งานรับจ้าง และงบย้ายระบบก่อนถึงกำหนด
Bun.TOML.stringify: เขียน config โดยแยก data ออกจาก template
ใช้ TOML.stringify สร้าง config ที่ parse กลับได้ ตรวจ round-trip และหลีกเลี่ยงการต่อข้อความที่ escape ผิด

ThaiCERT เตือน tensorlake ฝังหนอนขโมยสิทธิ์ ลบแพ็กเกจอย่างเดียวไม่จบ
แพ็กเกจที่ทีมพัฒนาไว้ใจอาจขโมยสิทธิ์ไปเผยแพร่มัลแวร์ต่อ อ่านผลกระทบต่อคนใช้แอปและลำดับรับมือที่ต้องกำจัดตัวเฝ้าโทเคนก่อนเพิกถอนสิทธิ์
Bun.JSONL.parseChunk: อ่าน JSONL ทีละก้อนโดยไม่ทำ record ขาด
ใช้ parseChunk กับ read/done/error เพื่อเก็บ remainder ระหว่าง chunk พร้อมจำกัด buffer และหยุดเมื่อเจอ JSON เสีย
Bun.main: แยกไฟล์ที่ถูกรันตรงจากไฟล์ที่ถูก import
ใช้ Bun.main เทียบ import.meta.path เพื่อป้องกัน side effect ตอนทดสอบและ reuse module
Bun.randomUUIDv7: สร้าง UUID ที่เรียงตามเวลาได้โดยไม่ทำเป็น timestamp
ใช้ Bun.randomUUIDv7 สร้าง identifier แบบ time-ordered พร้อมทดสอบรูปแบบ ลำดับ และอธิบายข้อจำกัดด้าน privacy กับ distributed ordering
Bun.color: แปลง design token หลายรูปแบบโดยไม่เขียน parser สีเอง
ใช้ Bun.color แปลง HEX, RGB และ named color เป็นรูปแบบมาตรฐาน พร้อม validation ก่อนส่งค่าไป CLI หรือ renderer
Bun.fileURLToPath: แปลง file URL เป็นพาธโดยไม่พังช่องว่างและอักขระ escape
ใช้ Bun.fileURLToPath แทนการอ่าน pathname ตรง ๆ เมื่อต้องเปิดไฟล์ข้างโมดูลอย่างข้ามแพลตฟอร์ม
Bun.nanoseconds: จับเวลาช่วงสั้นด้วยนาฬิกา monotonic
วัด elapsed time ของโค้ดด้วย Bun.nanoseconds โดยไม่สับสนกับเวลาปฏิทิน พร้อมตัวอย่างที่รันจริง
Bun.deepEquals: เทียบ config ซ้อนชั้นโดยรู้ว่า strict ต่างตรงไหน
ใช้ Bun.deepEquals ตรวจ snapshot ของ object พร้อมขอบเขต sparse array, undefined และ instance
Bun.semver: เช็กช่วงเวอร์ชันก่อนเปิด Feature โดยไม่ดึง Package เพิ่ม
ใช้ Bun.semver.satisfies และ order ตรวจ compatibility ของ plugin/runtime พร้อมระวัง prerelease และการใช้เวอร์ชันเป็น safety boundary
Bun.Glob: สแกนไฟล์ตาม pattern โดยตั้งขอบเขต symlink ให้ชัด
ใช้ Bun.Glob จับคู่และสแกนไฟล์ พร้อมค่า dot, followSymlinks และ onlyFiles ที่ต้องเลือกก่อนแตะ repository จริง
React 19.3 ทำ View Transitions และ Fragment Refs เป็น Stable: อัปเกรดแบบไม่ทำ motion พัง
สรุป React 19.3 จากประกาศทางการ พร้อมลำดับทดลอง ViewTransition, Fragment refs, Trusted Types และข้อจำกัดบน DOM
Node.js 26.8.2 อัปเดต OpenSSL, Undici และ npm: Patch ที่ควร Canary ก่อนขยับ Current
อ่าน release note Node.js 26.8.2 แบบใช้งานจริง แยก runtime dependency, private API deprecation และแผนตรวจ TLS/HTTP ก่อน rollout
Turbopack แบ่ง JavaScript Chunk อย่างไร: ปรับโหลดหน้าโดยไม่ไล่แตก Bundle แบบเดาสุ่ม
สรุปแนวคิด chunking จากทีม Next.js พร้อมวิธีวัด shared code, navigation cost และขอบเขตของ experimental controls
Bun.inspect.table: ได้ตารางอ่านง่ายเป็น string ก่อนส่งเข้า log หรือ snapshot
ต่างจาก console.table ตรงที่คืนค่า string ทำให้จัดเก็บ ส่งต่อ และเทสต์ output ได้ตรงๆ
Bun Terminal: แยกอายุ PTY ออกจาก subprocess ให้ถูก
ใช้ Bun.spawn กับ pseudo-terminal อย่างมี lifecycle ชัดเจน รอ proc.exited ปิด terminal และรับมือความต่างข้ามแพลตฟอร์ม
Bun 1.4.2 แก้ AsyncLocalStorage กัก context ไว้นานเกินงาน
แพตช์ regression ที่ค่าระดับ request ยังถูกอ้างถึงโดย timer และ promise พร้อม smoke test ก่อน rollout

Bun 1.4: รันไทม์ที่เขียนใหม่จาก Zig เป็น Rust
สรุปจากบล็อกทางการ Bun v1.4 ว่ามีการ rewrite เป็น Rust พร้อมไฮไลต์เรื่องความเข้ากันได้กับ Node และประสิทธิภาพ

Node.js 24.20.0 LTS: package maps กับ permission.drop ในสาย Krypton
สรุปไฮไลต์ SEMVER-MINOR ของ Node.js 24.20.0 ที่ออก 26 ส.ค. 2026 ทั้ง package maps, permission.drop, --permission-audit และ stream/iter
Bun 1.4 รันหลาย Script พร้อมกัน: ใช้ --parallel โดยยังอ่าน Log รู้เรื่อง
จัดงาน build และ lint ที่เป็นอิสระให้รันพร้อมกันด้วย bun run --parallel พร้อมขอบเขตที่ควรกลับไปใช้ sequential

Bun 1.4 บน Vercel Functions: เปิดใช้เองผ่าน bunVersion
สรุป changelog ของ Vercel วันที่ 20 ส.ค. 2026 ว่า Functions รองรับ Bun 1.4 แล้ว แต่ต้อง opt-in
Bun 1.4 อ่าน CPU Profile เป็น Markdown: หา Hot Function ก่อนเดา
ใช้ --cpu-prof-md สร้างรายงาน Markdown จากโปรแกรม TypeScript และอ่านสัดส่วน CPU เพื่อหา bottleneck อย่างมีหลักฐาน
Workshop Bun 1.4 Cron: นัดงาน 9 โมงกรุงเทพฯ โดยไม่ฝากไว้กับ OS
ใช้ Bun.cron.parse ตรวจตารางเวลาและ timezone แบบ deterministic ก่อนย้ายงานเข้า Bun.cron
Workshop Bun 1.4 Image: ทำ Thumbnail WebP โดยไม่เพิ่ม Native Dependency
ลงมือใช้ Bun.Image อ่าน metadata จำกัดขนาดภาพ ย่อแบบรักษาสัดส่วน และตรวจผล WebP จริงในสคริปต์เดียว
Node.js 26.8: เปิดไฟล์ซิปในตัวรันไทม์ และ REPL ที่เริ่มมีสีตามไวยากรณ์
สรุป Node.js 26.8.0 สาย Current ที่ออก 26 สิงหาคม 2026 จุดที่คนใช้งานทั่วไปสัมผัสได้คือไลบรารีซิปในตัว MIMEType.parse ที่ไม่โยนข้อผิดพลาด และไฮไลต์ใน REPL

Bun 1.4 มี Markdown Parser ในตัว: เร็วและสะดวก แต่ยังต้องตั้งด่านความปลอดภัย
รู้จัก Bun.markdown ทั้ง html render และ react ผ่านมุมใช้งานจริง พร้อมตัวอย่างรันทดสอบด้วย Bun 1.4 และเหตุผลที่ห้ามส่ง HTML จากผู้ใช้เข้าเว็บตรง ๆ
คู่มือติดตั้ง React Native ฉบับเข้าใจง่าย
เรียนรู้วิธีติดตั้ง React Native สำหรับพัฒนา Mobile App ทั้ง iOS และ Android แบบละเอียด ตั้งแต่ตั้งค่า environment จนถึง build ครั้งแรก