🔎
あるモジュールで欲しいものが公開されているかどうかの(簡単な?)チェック方法
はじめに
例えばgetServerSideProps
がexportされているかどうかでそのモジュールファイルについての処理を分けたいとする。
/** ssr.ts */
export const getServerSideProps = () => {};
/** ssg.ts */
export const getStaticProps = () => {};
/**
* getServerSidePropsのあるssr.tsとないssg.tsで処理を分けたい
*/
こういう時、どうやってチェックすれば良いか。
requireする
import assert from "assert";
const server = require("./ssr");
const client = require("./ssg");
assert(!!server.getServerSideProps);
assert(!client.getServerSideProps);
これでチェックできる。
参考にしたもの
おわりに
Babel(等)を使ってASTを見てももちろんできます。
Discussion