JSer.info #516 - Service WorkerライブラリであるWorkbox 6.0.0がリリースされました。
workbox-webpack-pluginのwebpack 5の対応が含まれています。
大きめな変更としてworkbox-strategiesのStrategy/Pluginの仕組みの変更がされています。
カスタムStrategyを作る場合はStrategyというbase classを継承して書くようになり、これに合わせてライフサイクルメソッドなどが追加されています。
またWorkboxのレシピをライブラリとして利用できるworkbox-recipesパッケージが追加されています。
その他には、WorkboxのskipWaitingはDeprecatedとなり、Service Workerのself.skipWaiting()を使うのを推奨するようになるといった変更も含まれています。
Typescript-TDD/ts-auto-mockは、TypeScriptの型定義から実行時にモックデータを作成するツールです。
TypeScriptの型はRuntimeには残らないため、TypeScriptのコンパイラをラップしたttypescriptやts-patchなどを経由して実行する必要があります。
- Plugin Support for Custom Transformers · Issue #14419 · microsoft/TypeScript
- cevek/ttypescript: Over TypeScript tool to use custom transformers in the tsconfig.json
- nonara/ts-patch: Patch typescript to support custom transformers in tsconfig.json
また、同じ仕組みを使ったJasmineやJest向けのライブラリ/設定も用意されています。
TypeScriptToLuaは、TypeScriptのコードをLuaに変換するツールキットです。
TypeScriptで書いたコードをLuaに変換することで、Luaでの開発が必要な場合にもTypeScriptの型や関連するJavaScriptのエコシステムを利用できるようにすることが目的です。
既存のLuaコードとの連携は、TypeScriptの型定義ファイルをインターフェースとして利用することで解決しています。
- Lua Types
- LuaのStarndard Libraryの型定義
 
仕組みとしては、TypeScriptのASTからLua ASTに変換し、このLua ASTからLuaのコードを生成しています。
また、Array.prototype.concatといったJavaScriptのビルドインオブジェクトをSelf Hostで実装しています。
Playgroundで試してみると分かりますが、[1].concat(2)のようなコードを変換すると__TS__ArrayConcatのようなLua向けのpolyfillに差し替えされてからLuaのコードに変換されていることが分かります。
また、PluginsなどもTypeScriptで書けるようになっているようです。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Release v5.0.0 · typicode/husky
github.com/typicode/husky/releases/tag/v5.0.0
git hook管理ツールのhusky 5.0.0リリース。npm install husky@nextでインストールできる。
ライセンスをMITからLicense Zero Parity + MITに変更。
Git 2.9+のcore.hooksPathを使ったGit Hookの仕組みに変更、インストール時に自動でHook有効化はせずに明示的にhusky installで有効化するように変更など
Storybook 6.1
storybook.js.org/blog/storybook-6-1/
Storybook 6.1リリース。
ビルドパフォーマンスの改善、Asynchronous loadersの追加、React 17の対応、Angular 11の対応など
Node v12.20.0 (LTS) | Node.js
nodejs.org/en/blog/release/v12.20.0/
Node.js 12.20.0リリース。
Node.js 14からのbackportが中心。
fs.FSWatcherにref()とunref()を追加、http.Agentにschedulingオプションの追加、package.jsonでexports patternsのサポートなど
Release 3.8.0 - 2020.11.26 · zloirock/core-js
github.com/zloirock/core-js/releases/tag/v3.8.0
core-js 3.8.0リリース。
Array#at、Number.range、Array.filterOut、Array#uniqueByの追加など
Release Workbox v6.0.0 · GoogleChrome/workbox
github.com/GoogleChrome/workbox/releases/tag/v6.0.0
Workbox 6.0.0リリース。
webpack 5の対応、Strategy/Pluginの仕組みの変更、workbox-recipesパッケージの追加など。
WorkboxのskipWaitingはDeprecatedとなり、Service Workerのself.skipWaiting()を使うのを推奨するようになるなど
アーティクル
How To Secure Node.js Applications with a Content Security Policy | DigitalOcean
Node.jsアプリでのCSP実装についてのチュートリアル記事。
CSPの設定方法、フォントや画像などの埋め込み許可の例、Nonceの設定、CSP Reporting APIとレポートの受け取り方法についてなど
サイト、サービス、ドキュメント
Operator Lookup - Search JavaScript operators
www.joshwcomeau.com/operator-lookup/
JavaScriptの演算子の意味を検索できるサイト
funbox/harold: Compares frontend project bundles
プロジェクトのフロントエンド周りのファイルサイズなどのスナップショットを取り、スナップショット同士を比較できるツール。
プロジェクトのファイルサイズやビルド時間の変化などを計測できる
ソフトウェア、ツール、ライブラリ関係
Typescript-TDD/ts-auto-mock: Typescript transformer to unlock automatic mock creation for interfaces and classes
github.com/Typescript-TDD/ts-auto-mock
TypeScriptの型定義から自動的にモックをつくるTypeScript Plugin。
ttypescriptとts-patchを経由したTypeSriptのtransformとして動作する
optoolco/tonic: A Low Profile Component Framework. Stable, Minimal, Auditable, and Build-Tool-Free.
Web Componentsフレームワーク。
コンポーネントの作成、htmlメソッドでのJSXライクなテンプレート、Proposでの値渡し、State、ライフサイクルイベントをもつ。
ビルドせずに使える。
Package Phobia
npmパッケージの依存を含めたインスールサイズ、パッケージのみのサイズを取得できるウェブサービス
lukeed/uvu: uvu is an extremely fast and lightweight test runner for Node.js and the browser
実行速度を目的にしたテストフレームワーク。
テストファイル自体が実行でき、Native ES Modulesのサポート、ブラウザでも動作する。
testとsuiteメソッド、uvu/assertモジュールを持っている
FormidableLabs/urql: The highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow.
github.com/FormidableLabs/urql
GraphQLクライアントライブラリ。
GraphQLへのリクエスト、キャッシュ、Reactなどのライブラリに対応している。
Exchangesという拡張の仕組みやデバッグ用の開発者ツールを持っている
panva/jose: Universal "JSON Web Almost Everything" - JWA, JWS, JWE, JWT, JWK with no dependencies
UniversalなJWA, JWS, JWE, JWT, JWKの実装ライブラリ。
ブラウザではWeb Cryptography APIを利用している。
TypeScriptToLua
TypeScriptで書いてLuaのコードを出力するツール。
既存Luaコードに対しては型定義ファイルで対応し、TypeScriptを使った型安全とIDEサポートを得た状態でLuaのコードを生成できる。
talentlessguy/tinyhttp: ⚡ 0-legacy, tiny & fast web framework as a replacement of Express
github.com/talentlessguy/tinyhttp
express-likeなAPIを持つNode.jsウェブフレームワーク。
express middlewareとの互換性を持ち、async functionをサポートしている
 
    
    
