Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

feature: /json-to-jsdoc

オープン
#1 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
css, html, javascript
領域
frontend

調査の方向性

ファイル、テスト、エントリポイントは指定されていません。まずスタンドアロンツールのJavaScript変換コードとHTMLのtextarea UIを見つけ、次に実装を、要求された中間型、enumの処理、アルファベット順の並べ替え、CSS変数と比較します。完了とは、列挙されたJSONおよびenumの例が意図したJSDoc出力を生成することです。

索引モデルが issue の本文から書いたものです。

説明

good first issue hacktoberfest

The Big Idea

I'd like to host a standalone online tool like https://transform.tools/json-to-jsdoc, but that will break down intermediary types, and also handle enums.

  • JavaScript conversion function (no frameworks or libraries)
    • JSON.stringify(input, null, 2) to prettify JSON
    • Traverses JSON to produce JSDoc
    • Checkbox for "treat arrays as enums"
    • Order types alphabetically
    • "" is type String
    • "a|b|c" creates a typedef MyTypeStatusEnum ?
  • HTML Textareas
    • CSS with variables (see MVP.css)

Example Output: JSON

/** @typedef {object} json
 * @property {object} about
 * @property {string} about.legalBusinessName
 * @property {string} about.website
 * @property {string} about.industry
 * @property {string} about.countryOfOperation
 * @property {string} about.description
 * @property {string} about.operations
 */

should instead be

/** 
 * @typedef MyType
 * @prop {MyTypeAbout} about
 */

/**
  * @typedef MyTypeAbout
  * @prop {String} legalBusinessName
  * @prop {String} website
  * @prop {String} industry
  * @prop {String} countryOfOperation
  * @prop {String} description
  * @prop {String} operations
  */

Example Output: Enums

Maybe any props that are all caps and assigned an array could be considered enums?

/**
 * @typedef {"IsPep"|"IsNotPep"} PepOption
 */
Mercury.POLITICALLY_EXPOSED_OPTIONS = ["IsPep", "IsNotPep"];
主要言語
JavaScript
スター
0
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。