mirror of https://github.com/renovatebot/renovate
24 lines
729 B
TypeScript
24 lines
729 B
TypeScript
import { logger } from '../../../../logger';
|
|
import { readLocalFile } from '../../../../util/fs';
|
|
import { PackageLock } from '../schema';
|
|
import type { LockFile } from './types';
|
|
|
|
export async function getNpmLock(filePath: string): Promise<LockFile> {
|
|
const lockfileContent = await readLocalFile(filePath, 'utf8');
|
|
if (!lockfileContent) {
|
|
logger.debug({ filePath }, 'Npm: unable to read lockfile');
|
|
return { lockedVersions: {} };
|
|
}
|
|
|
|
const parsedLockfile = PackageLock.safeParse(lockfileContent);
|
|
if (!parsedLockfile.success) {
|
|
logger.debug(
|
|
{ filePath, err: parsedLockfile.error },
|
|
'Npm: unable to parse lockfile',
|
|
);
|
|
return { lockedVersions: {} };
|
|
}
|
|
|
|
return parsedLockfile.data;
|
|
}
|