gemini-cli / packages /cli /src /ui /utils /fileUtils.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
9332ccf verified
Raw
History Blame Contribute Delete
866 Bytes
/**
* @license
* Copyright 2026 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import * as path from 'node:path';
/**
* Gets the file extension from a filename or path, excluding the leading dot.
* Returns null if no extension is found.
*/
export function getFileExtension(
filename: string | null | undefined,
): string | null {
if (!filename) return null;
const ext = path.extname(filename);
return ext ? ext.slice(1) : null;
}
/**
* Checks if a filename corresponds to a package lock or dependency resolution file.
*/
export function isLockFile(filename: string | null | undefined): boolean {
if (!filename) return false;
const lower = filename.toLowerCase();
return (
lower.endsWith('-lock.json') ||
lower.endsWith('.lock') ||
lower.endsWith('.lockb') ||
lower === 'pnpm-lock.yaml' ||
lower === 'go.sum'
);
}