Fork me on GitHub

2019-04-02: Node.js 11.13.0(once), WebAssembly System Interface(WASI)

Translator: U-Yeong Ju Edit on GitHub See Revisions

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 프로젝트고 공개 됐습니다.

현재 wasi-core라고 칭하는 파일이나 네트워크 등의 기본적인 기능의 표준화를 시작으로 다른 기능에 대한 표준화도 추후 확장할 계획인 것 같습니다.
아키텍쳐에 관한 자세한 정보와 구현에 대해서는 아래 저장소를 참고하시길 바랍니다.


헤드라인


Node v11.13.0 (Current) | Node.js

nodejs.org/en/blog/release/v11.13.0/

node.js ReleaseNote

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 ReleaseNote

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 debug Tools browser Extension ReleaseNote

vue-devtools 5.0.0이 릴리스됐습니다.
라우팅 탭, 퍼포먼스 탭, 설정 탭이 추가됐습니다.
props나 vuex의 state를 편집할 수 있도록 개선됐습니다.


아티클


Vue.observable & TypeScript로 빠르게 안심할 수 있는 상태 관리를 손에 넣다 - Qiita(일본어)

qiita.com/mugi_uno/items/cb48e5d3178891f94fa7

Vue article TypeScript

Vue 2.6에 추가된 Vue.observable에 관한 글입니다.


Expo CLI and SDK web support beta – Exposition

blog.expo.io/expo-cli-and-sdk-web-support-beta-d0c588221375

React article JavaScript

Expo에서 react-native-web를 기반으로 브라우저 환경을 지원합니다. 따라서 platformsweb이 추가됐습니다.
현재 몇개의 expo 모듈도 web을 지원하고 있습니다.


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 article

브라우저 이외의 환경에서 WebAssembly를 시행하기 위한 표준을 제정하는 WASI를 설명하는 글입니다.
각 플랫폼에서 동작하는 포터블한 바이너이와 프로그램 단위의 샌드박스 보안을 원칙으로 디자인하고 있습니다.
CloudABI의 Capability-based security를 기반으로 한 보안 모델을 갖고 있습니다.


Introducing experimental integrity policies to Node.js | Snyk

snyk.io/blog/introducing-experimental-integrity-policies-to-node-js/

node.js article security

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

ECMAScript proposal article

2019년 3월 TC39 미팅에서 변경된 ECMAScript Proposal Stage가 정리돼 있습니다.
String.prototype.matchAll가 Stage 4로 변경됐습니다.


Understanding Event Emitters | CSS-Tricks

css-tricks.com/understanding-event-emitters/

JavaScript article

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 article testing

JavaScript 테스트와 관련한 내용을 정리한 글입니다.
테스트의 종류, 도구, 프레임워크 등이 소개돼 있습니다.


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


bluebill1049/react-hook-form: 📋 React hook for form validation without the hassle

github.com/bluebill1049/react-hook-form

React library

폼을 React Hooks로 다룰 수 있는 라이브러리입니다.


ilearnio/module-alias: Register aliases of directories and custom module paths in Node

github.com/ilearnio/module-alias

node.js library

webpack의 alias와 같이 불러올 모듈을 맵핑할 수 있는 Node.js 라이브러리입니다.
Module._resolveFilename을 덮어쓰는 방식으로 구현돼 있습니다.


Raathigesh/majestic: ⚡ Zero config GUI for Jest

github.com/Raathigesh/majestic/

JavaScript testing GUI Tools

Jest의 GUI 도구입니다.


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