def get_exparams(metadata): exparams = [] if 'engines' in metadata: engines = metadata['engines'] if isinstance(engines, str): exparams.append('node_version="[{}]"'.format( verspec(engines.lstrip('node ')))) elif isinstance(engines, list): if 'node' in engines: pass else: engines = list(filter(lambda x: x.startswith('node'), engines)) if engines: exparams.append(verspec(engines[0].lstrip('node '))) else: assert(False) elif engines['node'] != '*': exparams.append('node_version="[{}]"'.format( verspec(engines['node']))) if 'bin' in metadata and metadata['bin']: exparams.append('has_bin=true') if exparams: return ' [ {} ]'.format(' '.join(exparams)) else: return ''
def get_deps(metadata, fields, target, deps_acc, unbundle, comment=False): if comment: template = '\n#NPM_' + target + '_DEPS=(\n #{}\n#)\n' glue = '\n #' else: template = '\nNPM_' + target + '_DEPS=(\n {}\n)\n' glue = '\n ' dpairs = [] for field in fields: if field in metadata and metadata[field]: deps = metadata[field] dnames = sorted(deps.keys()) if not unbundle and 'bundledDependencies' in metadata: dnames = filter( lambda x: x not in metadata['bundledDependencies'], dnames) if not unbundle and 'bundleDependencies' in metadata: dnames = filter( lambda x: x not in metadata['bundleDependencies'], dnames) dpairs += list(map(lambda x: (x, verspec(deps[x])), dnames)) if dpairs: deps_acc += dpairs return template.format(glue.join(map( lambda x: '"{} [{}]"'.format(x[0], x[1]) if x[1] else '{}'.format(x[0]), dpairs))) else: return ''