Fork me on GitHub

2022-12-13: Bun 0.3.0, SWR 2.0, Civet(CoffeeScript of TypeScript)

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #622 - Bun 0.3.0이 릴리스 됐다.

고부하 시 메모리 소비량 개선, GC에서의 크래시 수정 등 안정성 향상.
Node.js 호환성 개선 사항으로 child_process 모듈, Error.captureStackTrace() API 등이 추가 됐다.
그 외로, console을 AsyncIterable로 변경, import 하고 있는 모듈을 자동으로 npm에서 설치하도록 변경.
또, Next.js 처럼 라우팅을 파일 시스템 기반으로 수행하는 FileSystemRouter API 추가, expect()의 matchers 추가 등도 함께 이뤄졌다.


React 용 데이터 가져오기 라이브러리 SWR 2.0이 릴리스 됐다.

비호환 변경 사항으로 Fetcher의 인수 변경, 캐시 내부 구조 변경, 빌드 타겟이 ES2018으로 변경 됐다.
새로운 기능으로는 useSWRMutation, optimisticData/populateCache/revalidate/rollbackOnError등 Optimistic UI와 관련된 옵션이 추가 됐으며 SWR DevTools에 기본적으로 대응하도록 됐다.
그 외로는 preload API 추가, 새로운 상태 속성 isLoading 추가, keepPreviousData 옵션 추가, React 18 대응 개선 등이 이뤄졌다.


TypeScript 버전의 CoffeeScript라고 할 수 있는 Civet이 공개 됐다.

CoffeeScript에 ES2015 이후의 사양에 대응하고, 타입 구문을 추가한 구문으로 구성돼 있으며 타입스크립트로 컴파일 할 수 있는 언어다.

$ echo "add := (a: number, b: number) => a + b;" > main.civet
$ npx @danielx/civet < main.civet # TypeScript 코드가 출력 된다.
const add = (a: number, b: number) => a + b;
$ npx @danielx/civet --js < main.civet # JavaScript 코드가 출력 된다.
const add = (a, b) => a + b;

또, CoffeeScript에서의 마이그레이션 경로도 준비 돼 있으며 "civet coffeeCompat" directive prologue를 통해 기능 단위로 호환성을 설정할 수 있다.


To support JSer.info


헤드라인


Bun v0.3.0

bun.sh/blog/bun-v0.3.0

Bun ReleaseNote

Bun 0.3.0 릴리스.
고부하 시 메모리 소비량 개선, GC에서의 크래시 수정 등 안정성 향상.
Node.js 호환성 개선 사항으로 child_process 모듈, Error.captureStackTrace() API 등이 추가 됐다.
그 외로, console을 AsyncIterable으로 변경, import 하고 있는 모듈을 자동으로 npm에서 설치하도록 변경.
또, Next.js 처럼 라우팅을 파일 시스템 기반으로 수행하는 FileSystemRouter API 추가, expect()의 matchers 추가 등도 함께 이뤄졌다.


Ember 4.9 Released

blog.emberjs.com/ember-4-9-released/

Ember ReleaseNote

Ember 4.9 릴리스.
TypeScript 4.9를 지원한다.


Announcing the Tauri Mobile Alpha Release | Tauri Apps

tauri.app/blog/2022/12/09/tauri-mobile-alpha/

JavaScript Rust mobile ReleaseNote

Tauri 2.0.0 alpha 릴리스.
iOS / Android 모바일 애플리케이션 실행을 지원한다.


Announcing SWR 2.0 – SWR

swr.vercel.app/blog/swr-v2

React library ReleaseNote

SWR 2.0 릴리스.
비호환 변경으로 Fetcher의 인수 변경, 캐시 내부 구조 변경, 빌드 타겟을 ES2018으로 변경.
useSWRMutation 추가, Optimistic UI와 관련된 옵션 추가, SWR DevTools에 대응.
preload API 추가, 상태 속성으로 isLoading 추가, keepPreviousData 옵션 추가, React 18 대응 개선 등.


Announcing Rome v11

rome.tools/blog/2022/12/06/rome11/

JavaScript Tools ReleaseNote

Rome v11 릴리스.
TypeScript 4.9 지원, semicolons 옵션 추가, Lint 규칙 및 Lint 그룹 추가 등.


Release v0.16.0 · evanw/esbuild

github.com/evanw/esbuild/releases/tag/v0.16.0

JavaScript Tools ReleaseNote

esbuild v0.16.0 릴리스.
비호환 변경으로 esbuild-<arch>의 패키지를 @esbuild/<arch>로 변경, define 파라메터 밸리데이션 추가.
SVG와 같이 파일을 base64로 할 필요가 없는 경우에는 하지 않도록 개선, 를 자동 이스케이프 하도록 변경, --legal-comments 기본값을 none으로 변경


아티클


Chromium Blog: Introducing passkeys in Chrome

blog.chromium.org/2022/12/introducing-passkeys-in-chrome.html

Chrome security article

Chrome 108에서 Passkeys를 이용할 수 있다.


Interaction to Next Paint (INP)

web.dev/inp/

Chrome browser performance article

Interaction to Next Paint(INP)라는 조작을 통해 응답 시간을 측정하는 성능 지표 소개.
INP가 200ms 보다 크다면 개선이 필요하며 인터렉션으로는 어떠한 것들이 있는지 그리고 First Input Delay(FID)와의 차이점 등을 다루고 있다.
또, 브라우저에서의 측정 방법과 랩 데이터에 대해서도 이야기한다.


Building data-centric apps with a reactive relational database

riffle.systems/essays/prelude/

JavaScript SQLite article

UI의 상태를 브라우저 상의 DB(SQLite)에 모두 보존시켜 앱 개발을 간소화하는 연구.
SQLite를 데이터베이스가 아닌 데이터 스토어로서 이용하는 접근 방식.


Web Performance Calendar » Mobile Performance of Next.js Sites

calendar.perfplanet.com/2022/mobile-performance-of-next-js-sites/

Next.js performance article

Next.js의 쇼케이스에 게시돼 있는 웹 사이트의 모바일 환경을 대상으로 성능을 측정한 글.
측정 결과를 테이블로 정리하고 있으며 성능 측정에 통과한 사이트, 부족한 사이트의 갯수도 공개하고 있다.


사이트, 서비스, 문서


socketsupply/socket: Create networked, native, cross-platform software on mobile and desktop using HTML, CSS, and JavaScript.

github.com/socketsupply/socket

HTML CSS JavaScript software

HTML, CSS, JavaScript를 사용해 모바일 앱, 데스크탑 앱을 작성하는 도구 키트.
WebView 기반의 애플리케이션을 작성할 수 있는 SDK를 제공한다.


zenorocha/react-email: 💌 Build and send emails using React

github.com/zenorocha/react-email

React mail library

메일 콘텐츠를 작성하기 위한 React 컴포넌트와 렌더러


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


elysiajs/elysia: Fast, and friendly Bun web framework

github.com/elysiajs/elysia

Bun library JavaScript

Bun 용 웹 프레임워크.


DanielXMoore/Civet: The CoffeeScript of TypeScript

github.com/DanielXMoore/Civet

CoffeeScript TypeScript Tools program

CoffeeScript에서 TypeScript로 컴파일 할 수 있는 CoffeeScript 컴파일러.
CoffeeScript2와 호환성 있는 구문을 이용하며 ES2015 이후의 사양에 대응하고, 타입 애너테이션을 지원하는데 목적을 두고 만들어졌다.


rafasofizada/pechkin: Pechkin is a modern, asynchronous, flexible and configurable Node.js library for handling file uploads (i.e. multipart/form-data requests), written in TypeScript.

github.com/rafasofizada/pechkin

node.js library

multipart/form-data 등 형식의 파일 업로드를 다루는 Node.js 라이브러리.


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