@git-lazy/git-env-var
v2.0.3
Published
Type-safe definitions and helper functions for all Git-supported environment variables, extending NodeJS.ProcessEnv with full TypeScript autocompletion
Maintainers
Readme
@git-lazy/git-env-var
Type-safe definitions and helper functions for all Git-supported environment variables, extending NodeJS.ProcessEnv with full TypeScript autocompletion
Installation
npm install @git-lazy/git-env-var
# or
pnpm add @git-lazy/git-env-var
# or
yarn add @git-lazy/git-env-varUsage
import getGitEnv, { getGitEnv, IGitEnv } from '@git-lazy/git-env-var';
// 取得 GIT_DIR 環境變數
const gitDir = getGitEnv('GIT_DIR');
console.log(gitDir); // 可能輸出: '/path/to/.git'
// 使用自訂環境物件(適用於測試)
const mockEnv = {
GIT_AUTHOR_NAME: 'Test User',
GIT_AUTHOR_EMAIL: '[email protected]'
};
const authorName = getGitEnv('GIT_AUTHOR_NAME', mockEnv);
console.log(authorName); // 輸出: 'Test User'
// 檢查是否啟用 SSL 驗證
const sslNoVerify = getGitEnv('GIT_SSL_NO_VERIFY');
if (sslNoVerify) {
console.warn('SSL verification is disabled!');
}API
getGitEnv(key, env?)
取得指定的 Git 環境變數值 / Get the value of a specified Git environment variable
此函式提供型別安全的 Git 環境變數存取方式。可選擇傳入自訂的環境物件,方便測試或模擬場景。 This function provides type-safe access to Git environment variables. An optional custom environment object can be passed for testing or mocking scenarios.
Parameters:
key(keyof IGitEnv) - Git 環境變數名稱 / Git environment variable nameenv(Record<string, string>) - 可選的環境物件,預設使用 process.env / Optional environment object, defaults to process.env
Returns: string | undefined - 環境變數值,若不存在則回傳 undefined / Environment variable value, or undefined if not present
Example:
import getGitEnv from '@git-lazy/git-env-var';
// 取得 GIT_DIR 環境變數
const gitDir = getGitEnv('GIT_DIR');
console.log(gitDir); // 可能輸出: '/path/to/.git'import { getGitEnv } from '@git-lazy/git-env-var';
// 使用自訂環境物件(適用於測試)
const mockEnv = {
GIT_AUTHOR_NAME: 'Test User',
GIT_AUTHOR_EMAIL: '[email protected]'
};
const authorName = getGitEnv('GIT_AUTHOR_NAME', mockEnv);
console.log(authorName); // 輸出: 'Test User'IGitEnv
Git 環境變數介面 / Git environment variable interface
定義所有 Git 支援的環境變數,按照 Git 官方文件分類:
- Global Behavior(全域行為):
GIT_EXEC_PATH,HOME,PREFIX,GIT_CONFIG_NOSYSTEM,GIT_PAGER,GIT_EDITOR - Repository Locations(儲存庫位置):
GIT_DIR,GIT_CEILING_DIRECTORIES,GIT_WORK_TREE,GIT_INDEX_FILE,GIT_OBJECT_DIRECTORY,GIT_ALTERNATE_OBJECT_DIRECTORIES - Pathspecs(路徑規格):
GIT_GLOB_PATHSPECS,GIT_NOGLOB_PATHSPEC,GIT_LITERAL_PATHSPECS,GIT_ICASE_PATHSPECS - Committing(提交相關):
GIT_AUTHOR_NAME,GIT_AUTHOR_EMAIL,GIT_AUTHOR_DATE,GIT_COMMITTER_NAME,GIT_COMMITTER_EMAIL,GIT_COMMITTER_DATE - Networking(網路相關):
GIT_SSH,GIT_SSH_COMMAND,GIT_CURL_VERBOSE,GIT_SSL_NO_VERIFY,GIT_HTTP_LOW_SPEED_LIMIT,GIT_HTTP_LOW_SPEED_TIME,GIT_HTTP_USER_AGENT,GIT_HTTP_VERSION,GIT_PROTOCOL,GIT_TERMINAL_PROMPT,GIT_ASKPASS,GIT_SSH_VARIANT - Diffing and Merging(差異比較與合併):
GIT_DIFF_OPTS,GIT_EXTERNAL_DIFF,GIT_DIFF_PATH_COUNTER,GIT_DIFF_PATH_TOTAL,GIT_MERGE_VERBOSITY,GIT_PAGER_DIFF - Debugging(除錯相關):
GIT_TRACE,GIT_TRACE_CURL,GIT_TRACE_CURL_NO_DATA,GIT_TRACE_PERFORMANCE,GIT_TRACE_SETUP,GIT_TRACE_SHALLOW,GIT_TRACE_PACKET,GIT_TRACE_REFSPEC,GIT_REDACT_COOKIES - Miscellaneous(其他):
GIT_NAMESPACE,GIT_SUPER_PREFIX,GIT_ALLOW_PROTOCOL,GIT_FLUSH,GIT_REFLOG_ACTION
NodeJS.ProcessEnv (Augmented)
本套件擴充了 NodeJS.ProcessEnv 介面,讓 TypeScript 能在存取 process.env 時獲得 Git 環境變數的型別提示與自動補全。
This package extends the NodeJS.ProcessEnv interface, so TypeScript gains type hints and autocompletion for Git environment variables when accessing process.env.
// 現在 process.env 會有 Git 環境變數的型別提示
const gitDir = process.env.GIT_DIR;
const authorName = process.env.GIT_AUTHOR_NAME;License
ISC
