JSer.info #429 - Node.js 11.13.0이 릴리스됐습니다.
events
모듈에 Promise를 반환하는 once
가 추가됐습니다.
const { once, EventEmitter } = require('events');
async function run() {
const eventEmitter = new EventEmitter();
const [value] = await once(eventEmitter, 'myevent');
}
run();
또, node-heapdump 모듈을 코어에 통합하고 이를 기반으로 v8.heapdump.getHeapdump()
와 v8.heapdump.triggerHeapdump(filename)
를 추가했습니다.
Standardizing WASI: A system interface to run WebAssembly outside the web - Mozilla Hacks - the Web developer blog에는 WebAssembly의 파일 시스템 및 네트워크 등의 접근을 표준화하는 WebAssembly System Interface(WASI)에 관해 작성돼 있습니다.
WASI는 WebAssembly에서 파일이나 네트워크 등에 접근하기 위한 시스템 인터페이스 표준을 제정하는데 목적이 있습니다.
WASI는 각 플랫폼에서도 동작하는 포터블한 바이너리와 프로그램 단위의 샌드박스 보안을 원칙으로 하고 있습니다.
해당 글에는 POSIX에서 부족했던 보안 접근 통제에 관한 접근 방식을 WASI에서는 어떻게 다룰지에 대해서도 작성돼 있습니다.
또, 이와 함께 WASI를 지원하는 WebAssembly compiler(.wasm -> .so)와 Runtime 프로젝트고 공개 됐습니다.
- Announcing Lucet: Fastly’s native WebAssembly compiler and runtime
- CraneStation/wasmtime: Standalone JIT-style runtime for WebAsssembly, using Cranelift
현재 wasi-core
라고 칭하는 파일이나 네트워크 등의 기본적인 기능의 표준화를 시작으로 다른 기능에 대한 표준화도 추후 확장할 계획인 것 같습니다.
아키텍쳐에 관한 자세한 정보와 구현에 대해서는 아래 저장소를 참고하시길 바랍니다.
헤드라인
Node v11.13.0 (Current) | Node.js
nodejs.org/en/blog/release/v11.13.0/
Node.js 11.13.0이 릴리스됐습니다.
events
모듈에 Promise를 반환하는 once
가 추가됐으며 node-heapdump
모듈을 v8.heapdump
API로 코어에 통합했습니다.
또, worker.moveMessagePortToContext
가 추가됐습니다.
Announcing TypeScript 3.4 | TypeScript
devblogs.microsoft.com/typescript/announcing-typescript-3-4/
TypeScript 3.4가 릴리스됐습니다.
빌드 정보를 파일에 저장하고 다음 실행 시 그 정보를 이용해 빌드를 이어갈 수 있는 --incremental
플래그가 추가됐습니다.
readonly 수식자를 배열과 튜블에 정의할 수 있으며 const assertion이 추가됐습니다. 그리고 고차 함수의 타입 추론이 개선됐습니다.
또, globalThis
와 Top-level this
타입을 지웝합니다.
Release v5.0.0 · vuejs/vue-devtools
github.com/vuejs/vue-devtools/releases/tag/v5.0.0
vue-devtools 5.0.0이 릴리스됐습니다.
라우팅 탭, 퍼포먼스 탭, 설정 탭이 추가됐습니다.
props나 vuex의 state를 편집할 수 있도록 개선됐습니다.
아티클
Vue.observable & TypeScript로 빠르게 안심할 수 있는 상태 관리를 손에 넣다 - Qiita(일본어)
qiita.com/mugi_uno/items/cb48e5d3178891f94fa7
Vue 2.6에 추가된 Vue.observable
에 관한 글입니다.
Expo CLI and SDK web support beta – Exposition
blog.expo.io/expo-cli-and-sdk-web-support-beta-d0c588221375
Expo에서 react-native-web를 기반으로 브라우저 환경을 지원합니다. 따라서 platforms
에 web
이 추가됐습니다.
현재 몇개의 expo 모듈도 web을 지원하고 있습니다.
- necolas/react-native-web: React Native for Web
- expo/web-examples: Examples of using Expo in the browser.
- web-examples/FEATURES.md at master · expo/web-examples
Standardizing WASI: A system interface to run WebAssembly outside the web - Mozilla Hacks - the Web developer blog
hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/
브라우저 이외의 환경에서 WebAssembly를 시행하기 위한 표준을 제정하는 WASI를 설명하는 글입니다.
각 플랫폼에서 동작하는 포터블한 바이너이와 프로그램 단위의 샌드박스 보안을 원칙으로 디자인하고 있습니다.
CloudABI의 Capability-based security를 기반으로 한 보안 모델을 갖고 있습니다.
- Announcing Lucet: Fastly’s native WebAssembly compiler and runtime
- WASI
- CraneStation/wasmtime: Standalone JIT-style runtime for WebAsssembly, using Cranelift
- Introducing CloudABI
Introducing experimental integrity policies to Node.js | Snyk
snyk.io/blog/introducing-experimental-integrity-policies-to-node-js/
Node.js 11.8.0에 실험적으로 도입된 Policy 기능을 소개합니다.
웹브라우저의 Subresource Integrity 기능 대부분을 Node.js의 모듈 로드에 대해 사용할 수 있습니다.
ECMAScript proposal updates @ 2019-03 | ECMAScript Daily
ecmascript-daily.github.io/ecmascript/2019/04/01/ecmascript-proposal-updates
2019년 3월 TC39 미팅에서 변경된 ECMAScript Proposal Stage가 정리돼 있습니다.
String.prototype.matchAll
가 Stage 4로 변경됐습니다.
Understanding Event Emitters | CSS-Tricks
css-tricks.com/understanding-event-emitters/
Event Emitter를 구현해 보면서 Event Emitter 원리를 학습할 수 있는 글입니다.
An Overview of JavaScript Testing in 2019 – Welldone Software – Medium
medium.com/welldone-software/an-overview-of-javascript-testing-in-2019-264e19514d0a
JavaScript 테스트와 관련한 내용을 정리한 글입니다.
테스트의 종류, 도구, 프레임워크 등이 소개돼 있습니다.
소프트웨어, 도구, 라이브러리
bluebill1049/react-hook-form: 📋 React hook for form validation without the hassle
github.com/bluebill1049/react-hook-form
폼을 React Hooks로 다룰 수 있는 라이브러리입니다.
ilearnio/module-alias: Register aliases of directories and custom module paths in Node
github.com/ilearnio/module-alias
webpack의 alias와 같이 불러올 모듈을 맵핑할 수 있는 Node.js 라이브러리입니다.
Module._resolveFilename
을 덮어쓰는 방식으로 구현돼 있습니다.
Raathigesh/majestic: ⚡ Zero config GUI for Jest
github.com/Raathigesh/majestic/
Jest의 GUI 도구입니다.