variable-codegen 0.1.4

TypeScript code generation for the Variable feature flag DSL
Documentation
// This file is generated by Variable. Do not edit.
import { VariableClient, type VariableIdMap } from "@variable/runtime";
{% for struct in structs %}

export interface {{ struct.name }} {
{% for field in struct.fields %}
  {{ field.name }}: {{ field.type_name }};
{% endfor %}
}
{% endfor %}
{% for feature in features %}

export interface {{ feature.interface_name }} {
{% for var in feature.variables %}
  {{ var.name }}: {{ var.type_name }};
{% endfor %}
}

const {{ feature.defaults_name }}: {{ feature.interface_name }} = {
{% for var in feature.variables %}
  {{ var.name }}: {{ var.default_value }},
{% endfor %}
};

const {{ feature.variable_ids_name }}: VariableIdMap<{{ feature.interface_name }}> = {
{% for var in feature.variables %}
  {{ var.name }}: {{ var.id }},
{% endfor %}
};

export function {{ feature.fn_name }}(client: VariableClient): {{ feature.interface_name }} {
  return client.mergeFeatureValues({{ feature.id }}, {{ feature.defaults_name }}, {{ feature.variable_ids_name }});
}
{% endfor %}