{"version":3,"file":"cerba.js","sourceRoot":"","sources":["../src/cerba.ts"],"names":[],"mappings":"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","sourcesContent":["import * as path from 'path';\nimport {CerbaConfig} from './cerba_config';\nimport {CerbaPackage} from './cerba_package';\nimport {PackageJSON} from './package_json';\n\nexport class Cerba {\n constructor(public props: {cwd?: string; main?: string; name?: string; scope?: string} = {}) {}\n get cwd() {\n if (this.props.cwd) return path.resolve(this.props.cwd);\n return process.cwd();\n }\n get config() {\n return new CerbaConfig({cwd: this.cwd, scope: this.props.scope});\n }\n get packageJSON() {\n return new PackageJSON({cwd: this.cwd, readonly: true});\n }\n private cachePackages?: CerbaPackage[];\n get packages(): Promise {\n return (async () => {\n if (this.cachePackages) return this.cachePackages;\n const op = await (async () => {\n const config = this.config;\n const main = this.props.main;\n const cwd = this.cwd;\n const pkg = this.packageJSON;\n const plugins = await this.config.babelPlugins;\n if (main) return [new CerbaPackage({config, plugins, cwd, pkg, main})];\n const packages = await this.config.packages;\n return packages.map(pack => {\n return new CerbaPackage({config, plugins, cwd, pkg, ...pack});\n });\n })();\n this.cachePackages = op;\n return op;\n })();\n }\n async findPackage(name: string) {\n const pkgs = await this.packages;\n const results = pkgs.find(pkg => pkg.name === name);\n if (results) return results;\n throw new Error(`Unable to find package \"${name}\" within cerba config.`);\n }\n async build() {\n if (this.props.name) {\n return this.buildPackage(this.props.name);\n }\n const packages = await this.packages;\n return Promise.all(\n packages.map(p => {\n return p.build();\n })\n );\n }\n async buildPackage(name?: string) {\n const n = this.props.name ?? name;\n if (!n) throw new Error('Unable to build package, no package name provided');\n const file = await this.findPackage(n);\n return file.build();\n }\n}\n"]}