Fix package.json.

This commit is contained in:
Jelmer Vernooij 2021-03-24 05:07:30 +00:00
parent b79dcf0bfa
commit b80bc0b83e
No known key found for this signature in database
GPG key ID: 579C160D4C9E23E8

View file

@ -20,6 +20,7 @@
import logging
import os
import re
import shlex
import stat
from typing import Optional, Tuple
import warnings
@ -679,9 +680,14 @@ class Npm(BuildSystem):
def __init__(self, path):
import json
self.path = path
with open(path, "r") as f:
self.package = json.load(f)
def __repr__(self):
return "%s(%r)" % (type(self).__name__, self.path)
def get_declared_dependencies(self, session, fixers=None):
if "devDependencies" in self.package:
for name, unused_version in self.package["devDependencies"].items():
@ -695,6 +701,30 @@ class Npm(BuildSystem):
self.setup(resolver)
run_with_build_fixers(session, ["npm", "pack"], fixers)
def test(self, session, resolver, fixers):
self.setup(resolver)
test_script = self.package['scripts'].get('test')
if test_script:
run_with_build_fixers(session, shlex.split(test_script), fixers)
else:
raise NotImplementedError
def build(self, session, resolver, fixers):
self.setup(resolver)
build_script = self.package['scripts'].get('build')
if build_script:
run_with_build_fixers(session, shlex.split(build_script), fixers)
else:
raise NotImplementedError
def clean(self, session, resolver, fixers):
self.setup(resolver)
clean_script = self.package['scripts'].get('clean')
if clean_script:
run_with_build_fixers(session, shlex.split(clean_script), fixers)
else:
raise NotImplementedError
@classmethod
def probe(cls, path):
if os.path.exists(os.path.join(path, "package.json")):