diff options
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/fetch2/npmsw.py | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/bitbake/lib/bb/fetch2/npmsw.py b/bitbake/lib/bb/fetch2/npmsw.py index d89be10caf..971ccc9050 100644 --- a/bitbake/lib/bb/fetch2/npmsw.py +++ b/bitbake/lib/bb/fetch2/npmsw.py | |||
@@ -43,15 +43,32 @@ def foreach_dependencies(shrinkwrap, callback=None, dev=False): | |||
43 | params = the package parameters (dictionary) | 43 | params = the package parameters (dictionary) |
44 | destdir = the destination of the package (string) | 44 | destdir = the destination of the package (string) |
45 | """ | 45 | """ |
46 | packages = shrinkwrap.get("packages", {}) | 46 | # For handling old style dependencies entries in shinkwrap files |
47 | 47 | def _walk_deps(deps, deptree): | |
48 | for package in packages: | 48 | for name in deps: |
49 | if package != "": | 49 | subtree = [*deptree, name] |
50 | name = package.split('node_modules/')[-1] | 50 | _walk_deps(deps[name].get("dependencies", {}), subtree) |
51 | package_infos = packages.get(package, {}) | 51 | if callback is not None: |
52 | if dev == False and package_infos.get("dev", False): | 52 | if deps[name].get("dev", False) and not dev: |
53 | continue | 53 | continue |
54 | callback(name, package_infos, package) | 54 | elif deps[name].get("bundled", False): |
55 | continue | ||
56 | destsubdirs = [os.path.join("node_modules", dep) for dep in subtree] | ||
57 | destsuffix = os.path.join(*destsubdirs) | ||
58 | callback(name, deps[name], destsuffix) | ||
59 | |||
60 | # packages entry means new style shrinkwrap file, else use dependencies | ||
61 | packages = shrinkwrap.get("packages", None) | ||
62 | if packages is not None: | ||
63 | for package in packages: | ||
64 | if package != "": | ||
65 | name = package.split('node_modules/')[-1] | ||
66 | package_infos = packages.get(package, {}) | ||
67 | if dev == False and package_infos.get("dev", False): | ||
68 | continue | ||
69 | callback(name, package_infos, package) | ||
70 | else: | ||
71 | _walk_deps(shrinkwrap.get("dependencies", {}), []) | ||
55 | 72 | ||
56 | class NpmShrinkWrap(FetchMethod): | 73 | class NpmShrinkWrap(FetchMethod): |
57 | """Class to fetch all package from a shrinkwrap file""" | 74 | """Class to fetch all package from a shrinkwrap file""" |