All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anders Darander <anders@chargestorm.se>
To: openembedded-core@lists.openembedded.org
Cc: Anders Darander <anders@chargestorm.se>
Subject: [PATCH 1/7] create_npm.py: add devDependencies to depends
Date: Wed,  1 Mar 2017 18:19:55 +0100	[thread overview]
Message-ID: <1d9e36a9b92ba941e472aef5ed9dd32ec29404e9.1488388550.git.anders@chargestorm.se> (raw)
In-Reply-To: <cover.1488388550.git.anders@chargestorm.se>

Web applications built using e.g. angular2, usually requires that the
packages in devDependencies are available.

Signed-off-by: Anders Darander <anders@chargestorm.se>
---
 scripts/lib/recipetool/create_npm.py | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/scripts/lib/recipetool/create_npm.py b/scripts/lib/recipetool/create_npm.py
index 3ba6de0..11b2950 100644
--- a/scripts/lib/recipetool/create_npm.py
+++ b/scripts/lib/recipetool/create_npm.py
@@ -83,7 +83,7 @@ class NpmRecipeHandler(RecipeHandler):
         extravalues['extrafiles']['lockdown.json'] = tmpfile
         lines_before.append('NPM_LOCKDOWN := "${THISDIR}/${PN}/lockdown.json"')
 
-    def _handle_dependencies(self, d, deps, optdeps, lines_before, srctree):
+    def _handle_dependencies(self, d, deps, optdeps, devdeps, lines_before, srctree):
         import scriptutils
         # If this isn't a single module we need to get the dependencies
         # and add them to SRC_URI
@@ -97,6 +97,10 @@ class NpmRecipeHandler(RecipeHandler):
                         depdata = self.get_npm_data(dep, depver, d)
                         if self.check_npm_optional_dependency(depdata):
                             deplist[dep] = depdata
+                    for dep, depver in devdeps.items():
+                        depdata = self.get_npm_data(dep, depver, d)
+                        if self.check_npm_optional_dependency(depdata):
+                            deplist[dep] = depdata
                     for dep, depver in deps.items():
                         depdata = self.get_npm_data(dep, depver, d)
                         deplist[dep] = depdata
@@ -179,8 +183,8 @@ class NpmRecipeHandler(RecipeHandler):
                 if 'homepage' in data:
                     extravalues['HOMEPAGE'] = data['homepage']
 
-                deps, optdeps = self.get_npm_package_dependencies(data)
-                updated = self._handle_dependencies(tinfoil.config_data, deps, optdeps, lines_before, srctree)
+                deps, optdeps, devdeps = self.get_npm_package_dependencies(data)
+                updated = self._handle_dependencies(tinfoil.config_data, deps, optdeps, devdeps, lines_before, srctree)
                 if updated:
                     # We need to redo the license stuff
                     self._replace_license_vars(srctree, lines_before, handled, extravalues, tinfoil.config_data)
@@ -277,15 +281,20 @@ class NpmRecipeHandler(RecipeHandler):
     def get_npm_package_dependencies(self, pdata):
         dependencies = pdata.get('dependencies', {})
         optionalDependencies = pdata.get('optionalDependencies', {})
+        devDependencies = pdata.get('devDependencies', {})
         dependencies.update(optionalDependencies)
+        dependencies.update(devDependencies)
         depsfound = {}
         optdepsfound = {}
+        devdepsfound = {}
         for dep in dependencies:
             if dep in optionalDependencies:
                 optdepsfound[dep] = dependencies[dep]
+            elif dep in devDependencies:
+                devdepsfound[dep] = dependencies[dep]
             else:
                 depsfound[dep] = dependencies[dep]
-        return depsfound, optdepsfound
+        return depsfound, optdepsfound, devdepsfound
 
     # FIXME this is effectively duplicated from lib/bb/fetch2/npm.py
     # (split out from _getdependencies())
-- 
2.10.2



  reply	other threads:[~2017-03-01 17:20 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-01 17:19 [PATCH 0/7] create_npm: fixes to allow eg Angular2 based applications Anders Darander
2017-03-01 17:19 ` Anders Darander [this message]
2017-03-02  1:44   ` [PATCH 1/7] create_npm.py: add devDependencies to depends Paul Eggleton
2017-03-06  7:11     ` Anders Darander
2017-03-01 17:19 ` [PATCH 2/7] create_npm.py: convert MIT/X11 to MIT Anders Darander
2017-03-03  1:18   ` Khem Raj
2017-03-06  7:21     ` Anders Darander
2017-03-09  6:22       ` Josef Holzmayr
2017-03-01 17:19 ` [PATCH 3/7] lib/oe/package.py: remove @ from package name Anders Darander
2017-03-01 17:19 ` [PATCH 4/7] classes/npm: allow installation of devDependencies Anders Darander
2017-03-01 17:19 ` [PATCH 5/7] scripts/lib/create_npm: rewrite see license in eula Anders Darander
2017-03-01 17:20 ` [PATCH 6/7] scripts/lib/create_npm: handle AND and OR in licenses Anders Darander
2017-03-01 17:20 ` [PATCH 7/7] scripts/lib/create_npm: handle Public Domain licenses Anders Darander

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1d9e36a9b92ba941e472aef5ed9dd32ec29404e9.1488388550.git.anders@chargestorm.se \
    --to=anders@chargestorm.se \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.