JSer.info #627 - Flow v0.197.0가 릴리스 됐다.
Flow v0.197.0에서 Local Type Inference라는 기능이 opt-in으로 도입됐다.
Flow는 강력한 타입 추론 엔진을 제공했으나 현재는 Type-First한 아키텍처로 전환하고 있다.
따라서 이전과는 다르게 명시적으로 타입을 지정해야 하는 경우가 늘어나지만 안전성이나 버그는 줄어들게 된다.
- Clarity on Flow’s Direction and Open Source Engagement | by Vladan Djeric | Flow | Medium
- Types-First: A Scalable New Architecture for Flow | by Panagiotis Vekris | Flow | Medium
Local Type Inference도 이러한 아키텍처 변경과 관련된 내용으로 보인다.
Safe Data Fetching in Modern JavaScript에서는 Fetch API를 안전하게 사용하고자 할 경우에 고려해야만 하는 내용이 정리돼 있다.
Fetch API에서는 4xx 계열 에러가 발생해도 결과 Promise가 Reject 되지 않는다는 특징을 토대로 어떻게 다뤄야 안전한지 이야기한다.
Axios 처럼 에러 핸들링하기, JSON을 POST할 때 빠지기 쉬운 실수, Fetch 랩퍼 등에 대해서 다루고 있다.
JSer.info를 시작한지 12년이 지났다 🎉
To support JSer.info
- 😘 Recommend JSer.info to your friends!
- ❤️ Support @azu on GitHub Sponsors/JSer.info Sponsors
- 🐦 Follow @jser_info on X(Twitter)
헤드라인
rimraf/CHANGELOG.md at main · isaacs/rimraf
github.com/isaacs/rimraf/blob/main/CHANGELOG.md#v40
rimraf 4.0 릴리스.
glob 지원 삭제, Promise를 반환하도록 변경, Node 14 미만 지원 종료, TypeScript로 재작성.
또, CJS와 ESM을 모두 지원하며 Windows에서의 성능이 개선됐다.
Release v0.17.0 · evanw/esbuild
github.com/evanw/esbuild/releases/tag/v0.17.0
esbuild v0.17.0 릴리스.
incremental build 관련 처리를 context
API로 이동.
watch
와 serve
를 동시에 사용할 수 있도록 개선.
또, Server Send Event를 사용한 Live Reload 지원, 개발 서버가 HTTPS에 대응.
Release v0.197.0 · facebook/flow
github.com/facebook/flow/releases/tag/v0.197.0
Flow v0.197.0 릴리스.
Local Type Inference를 opt-in으로 이용할 수 있도록 변경.
moon v0.22 - New pipeline, hashing, and caching, with Turborepo migration | moon
monorepo 관리 도구 moon 0.22 릴리스.
파이프라인 병렬성을 제어할 수 있도록 개선.
프로젝트 그래프 캐시와 의존 모듈 설치 오류 개선.
Turborepo로 부터의 마이그레이션 명령 추가.
Firefox 109.0, See All New Features, Updates and Fixes
www.mozilla.org/en-US/firefox/109.0/releasenotes/
Firefox 109 릴리스.
확장 기능에서 Manifest V3 지원, scrolled
이벤트 지원 등.
아티클
Safe Data Fetching in Modern JavaScript
www.builder.io/blog/safe-data-fetching
Fetch API를 주제로 한 글.
Fetch API의 에러 바운딩, Axios 처럼 에러 핸들링하기, JSON을 POST 할 때의 빠지기 쉬운 실수, Fetch 랩퍼 등에 대해서 다루고 있다.
`*.d.ts` 파일을 커밋하기 전에 알았으면 하는 네 가지(일본어)
zenn.dev/qnighy/articles/9a6a0041f2a1aa
타입스크립트의 .d.ts
를 소스 코드에 포함할 필요가 없는 경우를 정리.
또, 포함할 경우에 tsconfig의 typeRoot
나 types
를 사용하지 않고 코드에서 import 하는 방법 및 includes
를 사용하는 방법 소개.
소프트웨어, 도구, 라이브러리
giusepperaso/structura.js: A very fast and lightweight Typescript library to create immutable states with a mutable syntax
github.com/GiuseppeRaso/structura.js
Immer와 비슷한 Immutable 처리 API를 제공하는 라이브러리.
Object.freeze 대신 TypeScript 타입으로 표현하는 것으로 오버헤드를 줄인다.
LyraSearch/lyra: 🌌 Fast, in-memory, typo-tolerant, full-text search engine written in TypeScript.
TypeScript로 작성한 전문 검색 엔진.
azu/eslint-cjs-to-esm: ESLint wrapper for migration from CJS to ESM.
github.com/azu/eslint-cjs-to-esm
CommonJS에서 ESM으로 변환할 수 있도록 도와주는 보조 도구.
ESLint를 래핑하고, CJS와 ESM 관계를 분석하는 도구를 빌트인하고 있다.
import하고 있는 경로에 .js
를 추가하거나 require
/ exports
등 CJS에서만 사용할 수 있는 기능을 금지하는 등의 기능을 제공한다.
tsmodule/tsmodule: TypeScript to ES Module loader and compiler.
TypeScript에서 ESM 기반 패키지를 개발하기 위한 툴 킷.
shuding/react-wrap-balancer: Simple React Component That Makes Titles More Readable
github.com/shuding/react-wrap-balancer
가독성을 해치지 않으면서 타이틀 문자열을 개행하는 리액트 컴포넌트
azu/tsconfig-to-dual-package: Node.js dual package tool that add package.json to tsconfig's `outDir`
github.com/azu/tsconfig-to-dual-package
TypeScript에서 Dual package(CJS, ESM)를 작성하는데 도움을 주는 도구.
tsc
의 빌드 결과가 생성되는 디렉터리 내에 CJS와 ESM을 지원하는 pacakge.json
을 추가하는 방식으로 Dual package를 생성한다.
도서
개정 3 판 JavaScript 본격 입문 ~ 모던 스타일로 기초부터 현장 응용까지 : 서적 안내 | 기술평론사(일본어)
gihyo.jp/book/2023/978-4-297-13288-0
2023년 2월 13일 출간 예정인 자바스크립트 입문서