본문으로 건너뛰기

시작하기

설치

# npm
npm install -D @jiji-hoon96/oxdoc

# pnpm
pnpm add -D @jiji-hoon96/oxdoc

# 또는 npx로 직접 실행
npx @jiji-hoon96/oxdoc --help

요구사항

  • Node.js 20 이상
  • TypeScript/JavaScript 프로젝트

기본 사용법

1. API 문서 생성

소스 코드에서 JSDoc/TSDoc 주석을 추출하여 문서를 생성합니다.

# JSON 형식 (기본)
npx @jiji-hoon96/oxdoc generate ./src

# Markdown 형식
npx @jiji-hoon96/oxdoc generate ./src --format markdown

# HTML 형식 (사이드바, 검색, 다크 테마를 갖춘 단일 페이지)
npx @jiji-hoon96/oxdoc generate ./src --format html

# 출력 디렉토리 지정
npx @jiji-hoon96/oxdoc generate ./src --format markdown --output ./api-docs

2. 문서 커버리지 체크

export된 심볼 중 JSDoc이 있는 비율을 측정합니다.

# 커버리지 확인
npx @jiji-hoon96/oxdoc coverage ./src

# 임계값 설정 (CI용 - 미달 시 exit code 1)
npx @jiji-hoon96/oxdoc coverage ./src --threshold 80

# JSON 형식으로 출력
npx @jiji-hoon96/oxdoc coverage ./src --format json

# 비export 심볼도 포함
npx @jiji-hoon96/oxdoc coverage ./src --all

3. Doc Test 실행

@example 블록의 코드가 실제로 동작하는지 검증합니다.

npx @jiji-hoon96/oxdoc doctest ./src

# 첫 실패 시 중단
npx @jiji-hoon96/oxdoc doctest ./src --bail

Doc Test 작성법

// => 패턴으로 기대값을 명시하면 자동으로 assertion이 됩니다:

/**
* 두 숫자를 더합니다.
* @param a - 첫 번째 숫자
* @param b - 두 번째 숫자
* @returns
* @example
* ```ts
* add(1, 2) // => 3
* add(-1, 1) // => 0
* ```
*/
export function add(a: number, b: number): number {
return a + b;
}

지원하는 심볼 종류

종류예시추출 데이터
함수export function foo()시그니처, JSDoc, 오버로드
클래스export class Foo메서드, 프로퍼티, getter/setter, static 멤버
인터페이스export interface IFoo프로퍼티 (JSDoc 포함)
타입 별칭export type Foo = ...시그니처, JSDoc
열거형export enum Foo { A, B }멤버 (값, JSDoc 포함)
변수export const FOO = ...시그니처, JSDoc
네임스페이스export namespace Utilsexport된 자식 심볼
Re-exportexport { X } from './y'출처 모듈 추적
Default Exportexport default functionisDefault 플래그

지원하는 JSDoc 태그

@param, @returns, @example, @typeParam, @throws, @since, @deprecated, @see 및 커스텀 태그