5const dfFromAppCfg = ({dockerFilesA}: Pick<AppCfg, 'dockerFilesA'>) => { 6 const a = Array.isArray(dockerFilesA) ? dockerFilesA : dockerFilesA ? [dockerFilesA] : [] 10const getAppCfgRnt = async (appConfig: AppCfg) => { 11 const lastDf = dfFromAppCfg(appConfig) 12 if (!lastDf) return {} as Record<string, unknown> 13 return await (lastDf as {getRnt: () => Promise<Record<string, unknown>>}).getRnt() 16export const imageFromAppCfg = async (appConfig: AppCfg & Record<string, unknown>) => { 17 const {action, dockerFilesA, dockerBuilder} = appConfig 18 if (!dockerFilesA && dockerBuilder) { 19 const built = await dockerBuilder() 20 appConfig.dockerFilesA = built 22 if (ctx) (ctx as Record<string, unknown>).dockerFilesA = built 24 if ((appConfig.dockerFilesA as Record<string, unknown> | undefined)?.imageReused) { 25 ;(appConfig as Record<string, unknown>).imageReused = true 27 if (ctx) (ctx as Record<string, unknown>).imageReused = true 29 const rnt = await getAppCfgRnt(appConfig) 30 const {repo_name_tag: image} = rnt as {repo_name_tag?: string} 31 throwIf(() => action == 'apply' && !image)