Done with generator
parent
7f22c79ad4
commit
26f3a68ff1
|
@ -6,19 +6,21 @@ class Typescript
|
|||
"bigint" => "number",
|
||||
"boolean" => "boolean",
|
||||
"integer" => "number",
|
||||
"timestamp without time zone" => "string"
|
||||
"timestamp without time zone" => "string",
|
||||
"character varying" => "string",
|
||||
}
|
||||
|
||||
INTERFACE_TPL = <<~END
|
||||
/** THIS INTERFACE IS AUTO-GENERATED BY A SCRIPT.
|
||||
DO NOT MANUALLY MODIFY, CHANGES WILL BE
|
||||
OVERWRITTEN WHEN DATABASE SCHEMA CHANGES */
|
||||
OVERWRITTEN WHEN DATABASE SCHEMA CHANGES
|
||||
|
||||
If you do need to change this file, first write a database migration,
|
||||
then run `rake typescript:interfaces` */
|
||||
|
||||
interface <%= interface_name %> {
|
||||
<% fields.each do |field| %>
|
||||
<%= field.head %>: <%= field.tail %>;
|
||||
<% end %>
|
||||
}
|
||||
<% fields.each do |field| %> <%= field.head %>: <%= field.tail %>;
|
||||
<% end %>}
|
||||
END
|
||||
|
||||
# CONFIG_KLASS = [ FbosConfig, WebAppConfig, FirmwareConfig ]
|
||||
|
@ -26,8 +28,9 @@ class Typescript
|
|||
def self.generate(klass)
|
||||
@klass = klass
|
||||
results = ERB.new(INTERFACE_TPL).result(binding)
|
||||
puts results
|
||||
# File.write()
|
||||
File.open("webpack/config_storage/#{klass.table_name}.ts", "w") do |f|
|
||||
f.write(results)
|
||||
end
|
||||
end
|
||||
|
||||
def self.klass
|
||||
|
@ -35,12 +38,13 @@ class Typescript
|
|||
end
|
||||
|
||||
def self.interface_name
|
||||
@interface_name ||= klass.name
|
||||
klass.name
|
||||
end
|
||||
|
||||
def self.fields
|
||||
@fields ||= klass.columns.map do |col|
|
||||
col_type = TYPE_MAPPING[col.sql_type_metadata.sql_type] or raise "NO!"
|
||||
klass.columns.map do |col|
|
||||
t = col.sql_type_metadata.sql_type
|
||||
col_type = TYPE_MAPPING[t] or raise "NO! #{t.inspect} is not in TYPE_MAPPING"
|
||||
Pair[col.name, col_type]
|
||||
end
|
||||
end
|
||||
|
@ -50,5 +54,7 @@ namespace :typescript do
|
|||
desc "This task does nothing"
|
||||
task :interfaces => :environment do
|
||||
Typescript.generate(WebAppConfig)
|
||||
Typescript.generate(FirmwareConfig)
|
||||
Typescript.generate(FbosConfig)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
/** THIS INTERFACE IS AUTO-GENERATED BY A SCRIPT.
|
||||
DO NOT MANUALLY MODIFY, CHANGES WILL BE
|
||||
OVERWRITTEN WHEN DATABASE SCHEMA CHANGES
|
||||
|
||||
If you do need to change this file, first write a database migration,
|
||||
then run `rake typescript:interfaces` */
|
||||
|
||||
interface FbosConfig {
|
||||
id: number;
|
||||
device_id: number;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
auto_sync: boolean;
|
||||
beta_opt_in: boolean;
|
||||
disable_factory_reset: boolean;
|
||||
firmware_input_log: boolean;
|
||||
firmware_output_log: boolean;
|
||||
sequence_body_log: boolean;
|
||||
sequence_complete_log: boolean;
|
||||
sequence_init_log: boolean;
|
||||
arduino_debug_messages: number;
|
||||
network_not_found_timer: number;
|
||||
os_auto_update: number;
|
||||
firmware_hardware: string;
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
/** THIS INTERFACE IS AUTO-GENERATED BY A SCRIPT.
|
||||
DO NOT MANUALLY MODIFY, CHANGES WILL BE
|
||||
OVERWRITTEN WHEN DATABASE SCHEMA CHANGES
|
||||
|
||||
If you do need to change this file, first write a database migration,
|
||||
then run `rake typescript:interfaces` */
|
||||
|
||||
interface FirmwareConfig {
|
||||
id: number;
|
||||
device_id: number;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
encoder_enabled_x: number;
|
||||
encoder_enabled_y: number;
|
||||
encoder_enabled_z: number;
|
||||
encoder_invert_x: number;
|
||||
encoder_invert_y: number;
|
||||
encoder_invert_z: number;
|
||||
encoder_missed_steps_decay_x: number;
|
||||
encoder_missed_steps_decay_y: number;
|
||||
encoder_missed_steps_decay_z: number;
|
||||
encoder_missed_steps_max_x: number;
|
||||
encoder_missed_steps_max_y: number;
|
||||
encoder_missed_steps_max_z: number;
|
||||
encoder_scaling_x: number;
|
||||
encoder_scaling_y: number;
|
||||
encoder_scaling_z: number;
|
||||
encoder_type_x: number;
|
||||
encoder_type_y: number;
|
||||
encoder_type_z: number;
|
||||
encoder_use_for_pos_x: number;
|
||||
encoder_use_for_pos_y: number;
|
||||
encoder_use_for_pos_z: number;
|
||||
movement_axis_nr_steps_x: number;
|
||||
movement_axis_nr_steps_y: number;
|
||||
movement_axis_nr_steps_z: number;
|
||||
movement_enable_endpoints_x: number;
|
||||
movement_enable_endpoints_y: number;
|
||||
movement_enable_endpoints_z: number;
|
||||
movement_home_at_boot_x: number;
|
||||
movement_home_at_boot_y: number;
|
||||
movement_home_at_boot_z: number;
|
||||
movement_home_spd_x: number;
|
||||
movement_home_spd_y: number;
|
||||
movement_home_spd_z: number;
|
||||
movement_home_up_x: number;
|
||||
movement_home_up_y: number;
|
||||
movement_home_up_z: number;
|
||||
movement_invert_endpoints_x: number;
|
||||
movement_invert_endpoints_y: number;
|
||||
movement_invert_endpoints_z: number;
|
||||
movement_invert_motor_x: number;
|
||||
movement_invert_motor_y: number;
|
||||
movement_invert_motor_z: number;
|
||||
movement_keep_active_x: number;
|
||||
movement_keep_active_y: number;
|
||||
movement_keep_active_z: number;
|
||||
movement_max_spd_x: number;
|
||||
movement_max_spd_y: number;
|
||||
movement_max_spd_z: number;
|
||||
movement_min_spd_x: number;
|
||||
movement_min_spd_y: number;
|
||||
movement_min_spd_z: number;
|
||||
movement_secondary_motor_invert_x: number;
|
||||
movement_secondary_motor_x: number;
|
||||
movement_step_per_mm_x: number;
|
||||
movement_step_per_mm_y: number;
|
||||
movement_step_per_mm_z: number;
|
||||
movement_steps_acc_dec_x: number;
|
||||
movement_steps_acc_dec_y: number;
|
||||
movement_steps_acc_dec_z: number;
|
||||
movement_stop_at_home_x: number;
|
||||
movement_stop_at_home_y: number;
|
||||
movement_stop_at_home_z: number;
|
||||
movement_stop_at_max_x: number;
|
||||
movement_stop_at_max_y: number;
|
||||
movement_stop_at_max_z: number;
|
||||
movement_timeout_x: number;
|
||||
movement_timeout_y: number;
|
||||
movement_timeout_z: number;
|
||||
param_config_ok: number;
|
||||
param_e_stop_on_mov_err: number;
|
||||
param_mov_nr_retry: number;
|
||||
param_test: number;
|
||||
param_use_eeprom: number;
|
||||
param_version: number;
|
||||
pin_guard_1_active_state: number;
|
||||
pin_guard_1_pin_nr: number;
|
||||
pin_guard_1_time_out: number;
|
||||
pin_guard_2_active_state: number;
|
||||
pin_guard_2_pin_nr: number;
|
||||
pin_guard_2_time_out: number;
|
||||
pin_guard_3_active_state: number;
|
||||
pin_guard_3_pin_nr: number;
|
||||
pin_guard_3_time_out: number;
|
||||
pin_guard_4_active_state: number;
|
||||
pin_guard_4_pin_nr: number;
|
||||
pin_guard_4_time_out: number;
|
||||
pin_guard_5_active_state: number;
|
||||
pin_guard_5_pin_nr: number;
|
||||
pin_guard_5_time_out: number;
|
||||
status_general: number;
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
/** THIS INTERFACE IS AUTO-GENERATED BY A SCRIPT.
|
||||
DO NOT MANUALLY MODIFY, CHANGES WILL BE
|
||||
OVERWRITTEN WHEN DATABASE SCHEMA CHANGES
|
||||
|
||||
If you do need to change this file, first write a database migration,
|
||||
then run `rake typescript:interfaces` */
|
||||
|
||||
interface WebAppConfig {
|
||||
id: number;
|
||||
device_id: number;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
confirm_step_deletion: boolean;
|
||||
disable_animations: boolean;
|
||||
disable_i18n: boolean;
|
||||
display_trail: boolean;
|
||||
dynamic_map: boolean;
|
||||
encoder_figure: boolean;
|
||||
hide_webcam_widget: boolean;
|
||||
legend_menu_open: boolean;
|
||||
map_xl: boolean;
|
||||
raw_encoders: boolean;
|
||||
scaled_encoders: boolean;
|
||||
show_spread: boolean;
|
||||
show_farmbot: boolean;
|
||||
show_plants: boolean;
|
||||
show_points: boolean;
|
||||
x_axis_inverted: boolean;
|
||||
y_axis_inverted: boolean;
|
||||
z_axis_inverted: boolean;
|
||||
bot_origin_quadrant: number;
|
||||
zoom_level: number;
|
||||
success_log: number;
|
||||
busy_log: number;
|
||||
warn_log: number;
|
||||
error_log: number;
|
||||
info_log: number;
|
||||
fun_log: number;
|
||||
debug_log: number;
|
||||
successs_log: number;
|
||||
}
|
Loading…
Reference in New Issue