UNPKG

956 BPlain TextView Raw
1import { SoftwarePackage } from '@stencila/schema'
2
3import Generator from './Generator'
4import IUrlFetcher from './IUrlFetcher'
5
6/**
7 * Generates a Dockerfile for a `SoftwarePackage` instance
8 */
9export default class PackageGenerator extends Generator {
10
11 /**
12 * The package that this generator generates a Dockerfile for
13 */
14 package: SoftwarePackage
15
16 constructor (urlFetcher: IUrlFetcher, pkg: SoftwarePackage, folder?: string) {
17 super(urlFetcher, folder)
18 this.package = pkg
19 }
20
21 /**
22 * Get a list of packages in `this.package.softwareRequirements`
23 * which have have a particular `runtimePlatform` value
24 */
25 filterPackages (runtimePlatform: string): Array<SoftwarePackage> {
26 if (this.package.softwareRequirements) {
27 return this.package.softwareRequirements
28 .filter(req => (req as SoftwarePackage).runtimePlatform === runtimePlatform)
29 .map(req => req as SoftwarePackage)
30 }
31 return []
32 }
33
34}