honey-css-modules/コーディング規約
エラーハンドリング
エラーのラップ
honey-css-modules で発生しうるエラーは全てerror.tsに定義したエラーでラップしてから返す。
code:error.ts
export class ConfigNotFoundError extends Error {
code = 'CONFIG_NOT_FOUND';
constructor() {
super('No config file found. Did you forget to create hcm.config.{js,mjs,cjs}?');
}
}
export class CSSModuleParseError extends Error {
code = 'CSS_MODULE_PARSE_ERROR';
constructor(filename: string, cause: unknown) {
super(Failed to parse CSS Module file (${filename})., { cause });
}
}
徹底的なエラーハンドリング
アプリケーションで発生
エラークラスの export
honey-css-modules の Node.js API を利用するユーザがエラーハンドリングできるよう、エラークラスは全てユーザ向けに export する。
code:index.ts
export { ConfigNotFoundError } from './error.js';
ドキュメント
公開 API では全ての API に JSDoc コメントを記述する
API を利用するユーザのために、原則として全ての API に JSDoc コメントを記述する。
Internal な API では JSDoc コメントは必要十分な量記述する
手間も掛かるので Internal な API については JSDoc の記述を徹底しなくて良い。明らかに読んだら分かる箇所については、記入を省略する。JSDoc コメントの記入を徹底するよりも、コメントを書かなくてもコードの振る舞いが分かるよう命名を工夫するほうを徹底する。
@throws tag
エラーが発生しうる関数には、JSDoc の@throwstag を書いておく。
code:ts
/**
* @throws {CSSModuleParseError}
*/
export function parseCSSModuleCode(code: string, { filename, dashedIdents }: ParseCSSModuleCodeOptions): CSSModuleFile {
// ...
}