昔作ったJavaScriptライブラリをAIを使って補完しnpmへ登録した話

ライブラリ制作
スポンサーリンク

はじめに

こんにちは、今日は昔作ったJavaScriptライブラリをAIを使って補完しnpmへ登録しましたので、ちょっとその話をします。

マイライブラリ

元となるJavaScriptライブラリとは2013年あたりに作成を開始したSenkoというライブラリです。この歴史は以下にまとめています。

JScript/HTML5 用自作ライブラリ Senko の紹介
はじめにこんにちはー!なたでです!以前から作っているライブラリを紹介したいと思います。ソースコードを作ってだけだと何のライブラリか分からないですし、ドキュメントとして何かしら残しておくのも大事ですし。たまには、ライブラリの紹介というのも良い...

SenkoというライブラリはJavaScriptとJScriptを共存させた上に無駄に高機能という巨大なため、上の記事に書いてあるように2019年から内部のライブラリを分離していきました。

日本語処理ライブラリ

mojijs
To convert or to analyze the character data of the Japanese.. Latest version: 4.0.0, last published: 2 years ago. Start ...

数値計算処理ライブラリ紹介記事

konpeito
The collection of javascirpt library such as numerical calculation.. Latest version: 6.0.1, last published: 5 years ago....

JScript(WSH向け)ライブラリ紹介記事

Home | senkowsh
JScirpt library for WSH that gathers various functions.

このライブラリ化する作業は非常に大変でして、というのも関数のAPI仕様書が整備されていないことで、TypeScript的な補完が行えず、これらを整備しないとライブラリ化できない問題があり沈静化していました。

それ以降は2023年にも一部ライブラリ化(紹介記事)を行いましたが、これは小型のものであったからできただけであり、実際まだ大型の部分が残されている状態でした。

sprintfライブラリ

ntformat
sprintf function for JavaScript.. Latest version: 1.0.2, last published: a month ago. Start using ntformat in your proje...

色ライブラリ

ntcolor
Library for using color information in JavaScript.. Latest version: 2.0.4, last published: a month ago. Start using ntco...

ファイル読み書きライブラリ(node.js用)

ntfile
Library to read/write files.. Latest version: 1.0.0, last published: 2 years ago. Start using ntfile in your project by ...

そして、2025年AIを駆使して、大型ライブラリを整備してリリースにチャレンジしました。

ターゲットはSenkoJSです。これはSenkoからSenkoWSHとSenkoJSに分離した、JavaScript版のライブラリです。ここに、まだ単独ライブラリとして抽出できていないライブラリが存在します。

GitHub - natade-jp/SenkoJS: The collection of javascirpt library such as GUI, numerical calculation, 3DCG etc.
The collection of javascirpt library such as GUI, numerical calculation, 3DCG etc. - natade-jp/SenkoJS

やったこと

ChatGPT Plusに、プロジェクトという機能がありまして、ファイルをアップロードした後にライブラリ化に関する指示を行えば、人間がやっていた作業が楽になるのではないかと突如思いつきまして、やってみることにしました。

JSDocの補間作業

昔作ったライブラリなのでJSDocのコメントが整備しきれていない問題、そもそもコメントさえもない状態があったためこれらを何とかするために次のような指示を行って補完することができました。

JavaScriptでライブラリを作成しました。このライブラリにはJSDocコメントの記載が足りないため補完してください。各ファイルのソースコードの設計や関数内の作りを確認し、機能と入出力の型を推測して、各関数にJSDocを作成してください。説明文は日本語で解説するようにしてください。

あとは「X.jsのファイルをお願いします。」というとX.jsで作成してくれるので「次はY.jsでお願いします。」と続けることで各種ライブラリのJsDocコメントが補完していく形になりました。AIが作ったコメントを目で確認しつつマージしていけば完成です。やったあ!

デモコードの説明

SenkoJSには、使用例としてデモコードを付けているのですが、このサンプルコードがまたコメントが少なくて分かりにくいのです。これもAIに補完させて作り直させました。

ライブラリの紹介のためにサンプルとしてmain.mjsを作りました。main.mjsに対してライブラリの使い方に焦点を当ててソースコードにコメントを追加してください。

README.mdの作成

なんかもう面倒になって形さえ作ってしまえばいいと思ってREADME.mdもお願いしました。

ライブラリとして公開したいと思います README.md を書いてください

その他

npmに登録する場合、package.jsonに英語で説明を入れたりキーワードを考える必要があるのですが、これも面倒なので作ってもらいました。

npm へライブラリとして公開したいと思います。 package.json の中の description, keywords に記載する内容を考えてください。

他にもライブラリ名を考えてもらったりしました。センスがないので大助かりです。

npm へライブラリとして公開したいと思います。ライブラリ名を考えてください。

その他、色々とJavaScriptのライブラリの進化などがあり、色々聞きつつ、完成。

できたもの

SenkoJS内にあった3DCG以外の大型ライブラリをnpmへ登録することができました。

GUIライブラリ

guiblocks
A lightweight JavaScript UI component library for building web interfaces with modular blocks.. Latest version: 0.1.0, l...

入力ライブラリ(マウス操作など)

Just a moment...

画像処理ライブラリ

Just a moment...

SenkoJSの元コードと各種ライブラリのコードをWinMergeで比較していただければ、AIが作り出した関数名などが確認できます。

おわりに

最後まで読んでいただきありがとうございます。

AIに飲み込まれてしまうかもですが、AIに使わされるのではなく、使う側としてもっといろいろなことが出来ればいいなと思います。

コメント

タイトルとURLをコピーしました