Fork me on GitHub

2023-01-18: Flow v0.197.0(Local Type Inference), Fetch API 에러 핸들링

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #627 - Flow v0.197.0가 릴리스 됐다.

Flow v0.197.0에서 Local Type Inference라는 기능이 opt-in으로 도입됐다.

Flow는 강력한 타입 추론 엔진을 제공했으나 현재는 Type-First한 아키텍처로 전환하고 있다.
따라서 이전과는 다르게 명시적으로 타입을 지정해야 하는 경우가 늘어나지만 안전성이나 버그는 줄어들게 된다.

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


헤드라인


rimraf/CHANGELOG.md at main · isaacs/rimraf

github.com/isaacs/rimraf/blob/main/CHANGELOG.md#v40

node.js library ReleaseNote

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

JavaScript Tools ReleaseNote

esbuild v0.17.0 릴리스.
incremental build 관련 처리를 context API로 이동.
watchserve를 동시에 사용할 수 있도록 개선.
또, Server Send Event를 사용한 Live Reload 지원, 개발 서버가 HTTPS에 대응.


Release v0.197.0 · facebook/flow

github.com/facebook/flow/releases/tag/v0.197.0

flowtype ReleaseNote

Flow v0.197.0 릴리스.
Local Type Inference를 opt-in으로 이용할 수 있도록 변경.


moon v0.22 - New pipeline, hashing, and caching, with Turborepo migration | moon

moonrepo.dev/blog/v0.22

monorepo Tools ReleaseNote

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 ReleaseNote

Firefox 109 릴리스.
확장 기능에서 Manifest V3 지원, scrolled 이벤트 지원 등.


아티클


Safe Data Fetching in Modern JavaScript

www.builder.io/blog/safe-data-fetching

JavaScript Fetch article

Fetch API를 주제로 한 글.
Fetch API의 에러 바운딩, Axios 처럼 에러 핸들링하기, JSON을 POST 할 때의 빠지기 쉬운 실수, Fetch 랩퍼 등에 대해서 다루고 있다.


`*.d.ts` 파일을 커밋하기 전에 알았으면 하는 네 가지(일본어)

zenn.dev/qnighy/articles/9a6a0041f2a1aa

TypeScript article

타입스크립트의 .d.ts를 소스 코드에 포함할 필요가 없는 경우를 정리.
또, 포함할 경우에 tsconfig의 typeRoottypes를 사용하지 않고 코드에서 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

JavaScript library

Immer와 비슷한 Immutable 처리 API를 제공하는 라이브러리.
Object.freeze 대신 TypeScript 타입으로 표현하는 것으로 오버헤드를 줄인다.


LyraSearch/lyra: 🌌 Fast, in-memory, typo-tolerant, full-text search engine written in TypeScript.

github.com/LyraSearch/lyra

TypeScript search library

TypeScript로 작성한 전문 검색 엔진.


azu/eslint-cjs-to-esm: ESLint wrapper for migration from CJS to ESM.

github.com/azu/eslint-cjs-to-esm

node.js JavaScript ECMAScript CommonJS Tools ESLint

CommonJS에서 ESM으로 변환할 수 있도록 도와주는 보조 도구.
ESLint를 래핑하고, CJS와 ESM 관계를 분석하는 도구를 빌트인하고 있다.
import하고 있는 경로에 .js를 추가하거나 require / exports 등 CJS에서만 사용할 수 있는 기능을 금지하는 등의 기능을 제공한다.


tsmodule/tsmodule: TypeScript to ES Module loader and compiler.

github.com/tsmodule/tsmodule

TypeScript ECMAScript Tools

TypeScript에서 ESM 기반 패키지를 개발하기 위한 툴 킷.


shuding/react-wrap-balancer: Simple React Component That Makes Titles More Readable

github.com/shuding/react-wrap-balancer

JavaScript React CSS library english

가독성을 해치지 않으면서 타이틀 문자열을 개행하는 리액트 컴포넌트


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 library node.js

TypeScript에서 Dual package(CJS, ESM)를 작성하는데 도움을 주는 도구.
tsc의 빌드 결과가 생성되는 디렉터리 내에 CJS와 ESM을 지원하는 pacakge.json을 추가하는 방식으로 Dual package를 생성한다.


도서


개정 3 판 JavaScript 본격 입문 ~ 모던 스타일로 기초부터 현장 응용까지 : 서적 안내 | 기술평론사(일본어)

gihyo.jp/book/2023/978-4-297-13288-0

JavaScript book

2023년 2월 13일 출간 예정인 자바스크립트 입문서


Pull Request to this article
JSer.info Slackに参加する