{"version":3,"file":"cerba_config.js","sourceRoot":"","sources":["../src/cerba_config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAA6B;AAC7B,yCAAiD;AAiBjD,IAAM,QAAQ,GAAG,EAAC,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AAEhF;IAAiC,+BAAyB;IACxD,qBAAmB,KAA8E;QAA9E,sBAAA,EAAA,gBAA8E;QAAjG,YACE,wCAAU,KAAK,GAAK,QAAQ,EAAE,SAE/B;QAHkB,WAAK,GAAL,KAAK,CAAyE;QAE/F,KAAI,CAAC,KAAK,yBAAO,KAAK,GAAK,QAAQ,CAAC,CAAC;;IACvC,CAAC;IACD,sBAAI,uCAAc;aAAlB;YAAA,iBAKC;YAJC,OAAO,CAAC;;;;gCACU,qBAAM,IAAI,CAAC,aAAa,EAAA;;4BAAlC,OAAO,GAAG,SAAwB;4BACxC,sBAAO,OAAO,CAAC,cAAc,IAAI,OAAO,EAAC;;;iBAC1C,CAAC,EAAE,CAAC;QACP,CAAC;;;OAAA;IACD,sBAAI,oCAAW;aAAf;YAAA,iBAKC;YAJC,OAAO,CAAC;;;;gCACU,qBAAM,IAAI,CAAC,aAAa,EAAA;;4BAAlC,OAAO,GAAG,SAAwB;4BACxC,sBAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,IAAI,UAAU,CAAC,EAAC;;;iBAC/D,CAAC,EAAE,CAAC;QACP,CAAC;;;OAAA;IACD,sBAAI,qCAAY;aAAhB;YAAA,iBAKC;YAJC,OAAO,CAAC;;;;gCACU,qBAAM,IAAI,CAAC,aAAa,EAAA;;4BAAlC,OAAO,GAAG,SAAwB;4BACxC,sBAAO,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAA+B,EAAC;;;iBACnE,CAAC,EAAE,CAAC;QACP,CAAC;;;OAAA;IACD,sBAAI,iCAAQ;aAAZ;YAAA,iBAKC;YAJC,OAAO,CAAC;;;;gCACU,qBAAM,IAAI,CAAC,aAAa,EAAA;;4BAAlC,OAAO,GAAG,SAAwB;4BACxC,sBAAO,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAC;;;iBAC/B,CAAC,EAAE,CAAC;QACP,CAAC;;;OAAA;IACD,sBAAI,8BAAK;aAAT;YACE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1B,CAAC;;;OAAA;IACH,kBAAC;AAAD,CAAC,AAhCD,CAAiC,oBAAQ,GAgCxC;AAhCY,kCAAW","sourcesContent":["import * as path from 'path';\nimport {JSONFile, JSONObject} from './json_file';\nimport * as babelParser from '@babel/parser';\n\nexport interface CerbaConfigType extends JSONObject {\n initialVersion?: string;\n babelPlugins?: string[];\n packagesDir?: string;\n packages?: {\n name: string;\n description?: string;\n main?: string;\n bin?: string;\n }[];\n}\n\nexport type CerbaConfigPkg = NonNullable[number];\n\nconst defaults = {basename: 'cerba.json', defaultContent: '{}', readonly: true};\n\nexport class CerbaConfig extends JSONFile {\n constructor(public props: ConstructorParameters[0] & {scope?: string} = defaults) {\n super({...props, ...defaults});\n this.props = {...props, ...defaults};\n }\n get initialVersion(): Promise {\n return (async () => {\n const content = await this.parsedContent;\n return content.initialVersion || '1.0.0';\n })();\n }\n get packagesDir(): Promise {\n return (async () => {\n const content = await this.parsedContent;\n return path.join(this.cwd, content.packagesDir || 'packages');\n })();\n }\n get babelPlugins(): Promise {\n return (async () => {\n const content = await this.parsedContent;\n return (content.babelPlugins || []) as babelParser.ParserPlugin[];\n })();\n }\n get packages(): Promise {\n return (async () => {\n const content = await this.parsedContent;\n return content.packages || [];\n })();\n }\n get scope(): string | undefined {\n return this.props.scope;\n }\n}\n"]}