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をサポートしている