Skip to content
Snippets Groups Projects
Select Git revision
21 results Searching

npm.ts

Blame
  • npm.ts 731 B
    import { logger } from '../../../logger';
    import { LockFileEntry } from './common';
    import { readLocalFile } from '../../../util/fs';
    
    export async function getNpmLock(
      filePath: string
    ): Promise<Record<string, string>> {
      const lockRaw = await readLocalFile(filePath, 'utf8');
      try {
        const lockParsed = JSON.parse(lockRaw);
        const lockFile: Record<string, string> = {};
        for (const [entry, val] of Object.entries(
          (lockParsed.dependencies || {}) as LockFileEntry
        )) {
          logger.trace({ entry, version: val.version });
          lockFile[entry] = val.version;
        }
        return lockFile;
      } catch (err) {
        logger.debug({ filePath, err }, 'Warning: Exception parsing npm lock file');
        return {};
      }
    }