Skip to content

Commit

Permalink
refactor(parser): use pyarn for parsing yarn.lock
Browse files Browse the repository at this point in the history
  • Loading branch information
c0rydoras committed Feb 26, 2024
1 parent b77ae99 commit 4042fd8
Show file tree
Hide file tree
Showing 3 changed files with 285 additions and 278 deletions.
10 changes: 6 additions & 4 deletions api/outdated/outdated/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import requests
from dateutil.parser import parse as parse_date
from django.conf import settings
from pyarn.lockfile import Lockfile as YarnLockfile
from semver import Version as SemVer
from tomllib import loads
from yaml import safe_load
Expand Down Expand Up @@ -143,12 +144,13 @@ def parse(self) -> list[models.Version]:

dependencies = []
if name == "yarn.lock":
regex = r'"?([\S]+)@.*:\n version "(.+)"'
yarn_lockfile = YarnLockfile.from_file(lockfile)
dependencies = [
dependency
for dependency in findall(regex, data)
if dependency[0] in settings.TRACKED_DEPENDENCIES
(dependency.name, dependency.version)
for dependency in yarn_lockfile.packages()
if dependency.name in settings.TRACKED_DEPENDENCIES
]

elif name == "poetry.lock":
dependencies = [
(dependency["name"], dependency["version"])
Expand Down
Loading

0 comments on commit 4042fd8

Please sign in to comment.