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 logging
import os import os
import re import re
import shlex
import stat import stat
from typing import Optional, Tuple from typing import Optional, Tuple
import warnings import warnings
@ -679,9 +680,14 @@ class Npm(BuildSystem):
def __init__(self, path): def __init__(self, path):
import json import json
self.path = path
with open(path, "r") as f: with open(path, "r") as f:
self.package = json.load(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): def get_declared_dependencies(self, session, fixers=None):
if "devDependencies" in self.package: if "devDependencies" in self.package:
for name, unused_version in self.package["devDependencies"].items(): for name, unused_version in self.package["devDependencies"].items():
@ -695,6 +701,30 @@ class Npm(BuildSystem):
self.setup(resolver) self.setup(resolver)
run_with_build_fixers(session, ["npm", "pack"], fixers) 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 @classmethod
def probe(cls, path): def probe(cls, path):
if os.path.exists(os.path.join(path, "package.json")): if os.path.exists(os.path.join(path, "package.json")):