Fork me on GitHub

2022-09-29: TypeScript 4.9 Beta, workerd(Cloudflare Workers runtime), Web Almanac 2022

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #611 - TypeScript 4.9 beta가 릴리스 됐다.

타입 변환 없이 타입 일치 여부 체크할 수 있는 satisfies 연산자 추가, in 연산자 구문 내 타입 추론 영역 축소, == NaN을 컴파일 에러로 변경하는 등이 갱신이 이뤄졌다.

satisfies 연산자는 아래 글에서 자세히 설명하고 있으니 참고한다.

또, --watch에서의 파일 감시 시스템 기본값을 useFsEvents(파일 시스템 이벤트)로 변경, exports 파일의 typeVersions 우선도를 조정했다.


Cloudflare Workers의 runtime인 workerd가 오픈소스로 공개됐다.

이와 함게 Miniflare 3.0.0가 알파 릴리스 됐으며 자바스크립트로 구현됐던 부분도 workerd를 다루는 방식으로 변경됐다.

이에 따라 로컬 개발 시와 실제 동작이 달랐던 경우가 크게 줄어들 것으로 기대된다.


HTTP Archive 데이터를 기반으로 웹 현황을 정리한 보고서 Web Almanac의 2022년 버전이 공개됐다.

HTML / CSS / JS 뿐 아니라 접근성 / 보안 / 서드파티 등 폭넓은 데이터를 다루고 있는 보고서다.

2021년 버전은 일본어로도 번역돼 있으니 관심있는 분은 함께 읽어보면 좋을 것 같다.



헤드라인


September 22nd 2022 Security Releases | Node.js

nodejs.org/en/blog/vulnerability/september-2022-security-releases/

node.js ReleaseNote security

Node.js의 보안 수정 버전 v14.20.1 (LTS), v16.17.1 (LTS), v18.9.1 (Current)가 각각 릴리스 됐다.
--inspect에 의한 DNS rebinding, HTTP Request Smuggling, WebCrypto의 Weak randomness 문제가 수정됐다.


Announcing TypeScript 4.9 Beta - TypeScript

devblogs.microsoft.com/typescript/announcing-typescript-4-9-beta/

TypeScript ReleaseNote

TypeScript 4.9 beta가 릴리스 됐다.

  • 타입 캐스트 없이 타입의 일치 여부를 체크할 수 있는 satisfies 연산자 추가
  • in 연산자 구문 내 타입 추론 영역 축소
  • == NaN을 컴파일 에러로 변경
  • --watch 시의 파일 감시 방식의 기본 값을 useFsEvents(파일 시스템 이벤트)으로 변경
  • exports 필드의 typeVersions 우선도 수정

  • Typescript’s new ‘satisfies’ operator | by Cefn Hoile | Aug, 2022 | Medium


Introducing workerd: the Open Source Workers runtime

blog.cloudflare.com/workerd-open-source-workers-runtime/

cloudflare ReleaseNote C++

Cloudflare Workers의 JavaScript / WebAssembly runtime 인 workerd가 공개 됐다.
Miniflare에서 자바스크립트로 구현 돼 있던 부분을 workerd를 다루는 방식으로 변경한 버전도 공개 됐다.
workerd 자체는 Sandbox가 아니지만 SSRF 방지를 위한 Binding과 Fetch 구조 등을 제공한다.


Release Add support for engines.node and Volta · actions/setup-node

github.com/actions/setup-node/releases/tag/v3.5.0

Actions node.js ReleaseNote Github

GitHub Actions의 setup-node 3.5.0 릴리스.
package.jsonengines.node와 Volta에서 지정한 Node.js 버전을 인식한다.


Release Notes for Safari Technology Preview 154 | WebKit

webkit.org/blog/13207/release-notes-for-safari-technology-preview-154/

safari serverless

Safari Technology Preview 154 릴리스.
CSS의 :dir 활성화, InputEvent.isComposing 지원, Scroll To Text Fragment 활성화 등.


Release v0.5.0 · facebook/lexical

github.com/facebook/lexical/releases/tag/v0.5.0

JavaScript React ReleaseNote

lexical v0.5.0 릴리스.
Notion과 같은 Draggable Blocks 지원, LexicalTablePlugin 안정환, Shadow Root에 대응.
일부 API는 비호환 변경 사항도 포함돼 있으니 확인한다.


아티클


Next.js Layouts RFC in 5 minutes – Vercel

vercel.com/blog/next-js-layouts-rfc-in-5-minutes

Next.js article

Next.js의 Layouts RFC를 설명(소개)하는 글.


The Anatomy of an Isolate Cloud

deno.com/blog/anatomy-isolate-cloud

deno V8 article

Deno Deploy의 Isolation 접근법 소개.
V8 프로세스가 독립적으로 동작, Runner가 요청에 대해 부팅 중인 프로세스(혹은 프로세스)를 기동한다.
기본적으로는 V8 Sandbox를 의존하고 있으며 fs나 net 접근에 제한을 둔다.


Introducing Ezno

kaleidawave.github.io/posts/introducing-ezno/

Rust TypeScript article opinion

Rust로 구현하고 있는 TypeScript 호환 타입 체커와 컴파일러 Ezno를 소개하는 글.


슬라이드, 영상


Zod Tutorial | Total TypeScript

www.totaltypescript.com/tutorials/zod

TypeScript tutorial video

TypeScript 기반의 스키마 검증 라이브러리 zod를 소개하는 튜토리얼 동영상.
각각의 연습 문제를 직접 풀어보면서 진행할 수 있도록 준비 돼 있다.


SPA 보안 초입문 | 독스웰(일본어)

www.docswell.com/s/ockeghem/K2PPNK-phpconf2022

JavaScript browser XSS SQL security slide

SPA에서 잘 발생하는 보안 문제를 정리한 슬라이드 자료.
클라이언트 사이드에서만 검증하는 인가 제어 미비, 임의의 HTML의 렌더링을 허용하여 발생하는 XSS, CSRF 등에 대해서 이야기한다.


소프트웨어, 도구, 라이브러리


gioboa/vite-module-federation: Module Federation with Vite now is possible

github.com/gioboa/vite-module-federation

vite plugin

Module Federation을 하는 Vite Plugin.


Japa - A simple yet powerful testing framework for Node.js

japa.dev/docs

JavaScript node.js testing library

Node.js 용 테스트 프레임워크.
node 명령어로 테스트를 실행할 수 있다.
기본적인 테스트 기능에 더해 파라메터라이즈 테스트와 테스트에 대한 태그를 지정하고 필터링 할 수 있는 기능 제공.
또, 플러그인 구조를 지원하며 실패한 테스트 만 재실행 하거나 타입스크립트의 타입 검사 등을 할 수 있는 플러그인을 지원한다


도서


The 2022 Web Almanac

almanac.httparchive.org/en/2022/

web book browser JavaScript CSS HTML

Web Almanac의 2022년 버전이 공개됐다.
HTTP Archive의 데이터를 기반으로 웹 현황(status)을 정리한 보고서.
HTML / CSS / JS를 시작으로 접근성 / 보안 / 서드 파티 등 폭넓은 데이터를 보여준다.


Shell scripting with Node.js

exploringjs.com/nodejs-shell-scripting/

node.js book ShellScript

Node.js에서 shell scripting을 다루는 방법을 기술한 도서


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