タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

TypeScriptとToolsとarticleに関するefclのブックマーク (6)

  • ソースコードを解析して社内向けUIライブラリの使用状況を自動で集計する

    デザインエンジニアの安田(@_yuheiy)です。 この記事では、社内向けに提供しているライブラリの使用状況を把握すべく作成した、プロダクト全体のソースコードを解析して、提供しているモジュールおよびそれを使用しているプロダクトごとに個別に自動集計する仕組みとその実装方法について解説します。 ライブラリ開発の問題と使用状況の解析 弊社では、KARTEのプロダクト群全体のデザインシステムである「Sour」を開発しています。その一環として、React製のUIライブラリ「sour-react」を作成し、社内向けのnpmパッケージとして提供しています。現在、sour-reactはKARTEのいくつものプロダクトにおいて採用されており、UI開発に欠かせないものになるほど浸透しています。 作成したライブラリが広く使われるようになるのは喜ばしくもありますが、一方、それに伴って新たな問題が生じることもありま

    ソースコードを解析して社内向けUIライブラリの使用状況を自動で集計する
    efcl
    efcl 2024/08/06
    デザインシステムのUIコンポーネントがどのプロダクトで利用されているかを集計するGitHub Actionsで動くスクリプトについて。 実際にデザインシステムが提供してるUIを利用している回数や場所などの使用状況を可視化する
  • packelyze - お前の TypeScript はもっと小さくなる

    TypeScriptの型定義ファイルから積極的な圧縮を行うための @mizchi/optools をリリースした。まだ実験中だが、結構動くはず。使う場合は自己責任で。 追記: optools を packelyze に rename した。これは optools という CLI 名が ImageMagick の提供するコマンドとぶつかったため。 試行錯誤の過程は https://zenn.dev/mizchi/scraps/1bdf01f5efb147 にある。 このライブラリは、自分の所属する Plaid の業務時間中に作成した。 想定ユーザー ライブラリ作者 ビルドサイズ厳しいフロントエンド開発者(サードパーティスクリプト等。自分が業務で作った理由がここ) リスクとってでもビルドサイズを縮めたいフロントエンド作者 動機 世の中な TypeScript で書かれたコードは、その型情報を使

    packelyze - お前の TypeScript はもっと小さくなる
    efcl
    efcl 2023/05/26
    TypeScriptの型情報とterserの`mangle.properties.reserved`オプションを使ったminify
  • eslint-cjs-to-esm: CJSをESMへとマイグレーションするツールを書いた

    最近、色々なライブラリをCommonJS(CJS)からECMAScript Module(ESM)へとマイグレーションしています。 その際に、ESMでは__dirnameやrequireなどCommonJS特有の機能は使えなくなっています。 また、TypeScriptやBabelなど多くのツールはCJSではimport時に拡張子はなくても大丈夫ですが、ESMの場合はimport時に拡張子が必要になります。 import url from "node:url"; - import { mdEscape } from "./mdEscape"; + import { mdEscape } from "./mdEscape.js"; // ESMでは相対パスに拡張子は省略できない + const __filename = url.fileURLToPath(import.meta.url); /

    eslint-cjs-to-esm: CJSをESMへとマイグレーションするツールを書いた
    efcl
    efcl 2023/01/19
    CommonJSからECMAScript Moduleへとコードを変換するツールについて。 ESLintをラップして、ESMでは使えない構文のチェックと自動修正をする
  • NestJS製GraphQLサーバの起動が遅かったので調査した話 - もうずっといなかぐらし

    こんにちは、かたいなかです。 最近、NestJS製のGraphQLサーバでのSchemaからのTypescriptファイルの生成が遅い問題を調査する機会がありました。 今回の記事では、ツールの使い方等の自分への備忘録を兼ねて、どのように問題に取り組んだかを記事にして紹介します。 TL;DR 高速化するならまずは計測から。計測によるボトルネック特定が最優先。 フレームグラフが遅い処理を特定するのに超便利。Node.jsなら0xがフレームグラフ生成に便利。 @nestjs/graphqlGraphQLのスキーマからTypescriptのファイルを生成する処理が速くなった。 経緯 最近関わった案件では、BFFとしてNestJS製のGraphQLサーバをスキーマファーストで使用していました。GraphQLによるスキーマファーストな開発の恩恵は日々感じているものの、サーバの起動時や再コンパイルの

    NestJS製GraphQLサーバの起動が遅かったので調査した話 - もうずっといなかぐらし
    efcl
    efcl 2022/07/13
    GraphQLのスキーマからTypeScriptのファイルを生成するツールのボトルネックを調べて修正した話。 `0x`を使ったボトルネック分析、`ts-morph`でのTypeScript ASTの変換のパフォーマンス問題の修正についてなど
  • TypeScriptの型定義からバリデーションコードを生成するツールを書いた

    create-validator-tsというTypeScriptの型定義からJSON Schemaを使ったバリデーションコードを生成するツールを書きました。 モチベーション expressなどでAPIを書くときに、Request/Responseが意図したものかどうかをバリデーションする必要があります。 特にreq.queryなどはStringが入ると予想しますが、オブジェクトが入ってくることもあります。 これは、expressの内部で使っているqsというURLクエリのパーサが、オブジェクトや配列へ展開する機能を持っているためです。 expressを使ってるサイトは ?q=text があるときに req.query.q には オブジェクトが入る可能性をちゃんと考慮しないといけない。 ?q[a]=text で req.query.q ; // { a: "text" } になる — azu

    TypeScriptの型定義からバリデーションコードを生成するツールを書いた
    efcl
    efcl 2021/03/26
    TypeScriptの型定義からAjvとJSON Schemaを使ったバリデーションコードを生成するツールについて。 また、リクエストをバリデーションせずにMongoなどのNoSQLのクエリにわたすと発生するNoSQL Injectionについて
  • TSLint in 2019

    Palantir is the creator and primary maintainer of TSLint, the standard linter for the TypeScript programming language. As the TypeScript community is working toward a unified developer experience across the TypeScript and JavaScript languages, we are committed to support the convergence of TSLint and ESLint; in this blog post we explain the Why and How of our efforts. TSLint and ESLint todayToday,

    TSLint in 2019
    efcl
    efcl 2019/02/26
    TSLintの今後について。 今後TSLintは非推奨となり、TSLintからESLintへの移行パスを整備していくという話
  • 1