|
19 | 19 | from packagedcode import models |
20 | 20 | from packagedcode.utils import combine_expressions |
21 | 21 | from packagedcode.utils import normalize_vcs_url |
| 22 | +from packagedcode.utils import yield_dependencies_from_package_data |
| 23 | +from packagedcode.utils import yield_dependencies_from_package_resource |
22 | 24 | import saneyaml |
23 | 25 |
|
24 | 26 | """ |
|
36 | 38 | # TODO: add support for "lockfileVersion": 2 for package-lock.json and lockfileVersion: 3 |
37 | 39 |
|
38 | 40 |
|
39 | | -def yield_npm_dependencies_from_package_data(package_data, datafile_path, package_uid): |
40 | | - """ |
41 | | - Yield a Dependency for each dependency from ``package_data.dependencies`` |
42 | | - """ |
43 | | - dependent_packages = package_data.dependencies |
44 | | - if dependent_packages: |
45 | | - yield from models.Dependency.from_dependent_packages( |
46 | | - dependent_packages=dependent_packages, |
47 | | - datafile_path=datafile_path, |
48 | | - datasource_id=package_data.datasource_id, |
49 | | - package_uid=package_uid, |
50 | | - ) |
51 | | - |
52 | | - |
53 | | -def yield_npm_dependencies_from_package_resource(resource, package_uid=None): |
54 | | - """ |
55 | | - Yield a Dependency for each dependency from each package from``resource.package_data`` |
56 | | - """ |
57 | | - for pkg_data in resource.package_data: |
58 | | - pkg_data = models.PackageData.from_dict(pkg_data) |
59 | | - yield_npm_dependencies_from_package_data(pkg_data, resource.location, package_uid) |
60 | | - |
61 | | - |
62 | 41 | class BaseNpmHandler(models.DatafileHandler): |
63 | 42 |
|
64 | 43 | @classmethod |
@@ -120,22 +99,22 @@ def assemble(cls, package_data, resource, codebase): |
120 | 99 | package_uid = None |
121 | 100 |
|
122 | 101 | # in all cases yield possible dependencies |
123 | | - yield from yield_npm_dependencies_from_package_data(package_data, package_resource.path, package_uid) |
| 102 | + yield from yield_dependencies_from_package_data(package_data, package_resource.path, package_uid) |
124 | 103 |
|
125 | 104 | # we yield this as we do not want this further processed |
126 | 105 | yield package_resource |
127 | 106 |
|
128 | 107 | for sibling in package_resource.siblings(codebase): |
129 | 108 | if sibling.name in datafile_name_patterns: |
130 | | - yield_npm_dependencies_from_package_resource(sibling, package_uid) |
| 109 | + yield_dependencies_from_package_resource(sibling, package_uid) |
131 | 110 |
|
132 | 111 | if package_uid not in sibling.for_packages: |
133 | 112 | sibling.for_packages.append(package_uid) |
134 | 113 | sibling.save(codebase) |
135 | 114 | yield sibling |
136 | 115 | else: |
137 | 116 | # we do not have a package.json |
138 | | - yield_npm_dependencies_from_package_resource(resource) |
| 117 | + yield_dependencies_from_package_resource(resource) |
139 | 118 |
|
140 | 119 | @classmethod |
141 | 120 | def walk_npm(cls, resource, codebase, depth=0): |
|
0 commit comments