import { ExecutorContext, parseTargetString, runExecutor } from '@nx/devkit'
import { AnyObject } from '@core/types'

export async function buildTarget(
	buildTarget: string,
	context: ExecutorContext,
	overrides: AnyObject = {},
): Promise<void> {
	const { project, target, configuration } = parseTargetString(buildTarget, context)
	for await (const output of await runExecutor<{
		success: boolean
		baseUrl?: string
	}>({ project, target, configuration }, overrides, context)) {
		if (!output.success) throw new Error('Could not build application')
	}
}
