|
|
|
@ -115,6 +115,9 @@ export interface CoderScriptAttributes {
|
|
|
|
|
url: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export type ResourceInstance<T extends string = string> =
|
|
|
|
|
T extends "coder_script" ? CoderScriptAttributes : Record<string, string>;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* finds the first instance of the given resource type in the given state. If
|
|
|
|
|
* name is specified, it will only find the instance with the given name.
|
|
|
|
@ -123,10 +126,7 @@ export const findResourceInstance = <T extends string>(
|
|
|
|
|
state: TerraformState,
|
|
|
|
|
type: T,
|
|
|
|
|
name?: string,
|
|
|
|
|
// if type is "coder_script" return CoderScriptAttributes
|
|
|
|
|
): T extends "coder_script"
|
|
|
|
|
? CoderScriptAttributes
|
|
|
|
|
: Record<string, string> => {
|
|
|
|
|
): ResourceInstance<T> => {
|
|
|
|
|
const resource = state.resources.find(
|
|
|
|
|
(resource) =>
|
|
|
|
|
resource.type === type && (name ? resource.name === name : true),
|
|
|
|
@ -139,7 +139,8 @@ export const findResourceInstance = <T extends string>(
|
|
|
|
|
`Resource ${type} has ${resource.instances.length} instances`,
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
return resource.instances[0].attributes as any;
|
|
|
|
|
|
|
|
|
|
return resource.instances[0].attributes as ResourceInstance<T>;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|