Update rake typescript task

pull/1125/head
Rick Carlino 2019-02-15 10:37:11 -06:00
parent fff36ad73b
commit a017b6c113
4 changed files with 364 additions and 3 deletions

View File

@ -0,0 +1,52 @@
/** 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` */
export 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;
network_not_found_timer: number;
firmware_hardware: string;
api_migrated: boolean;
os_auto_update: boolean;
arduino_debug_messages: boolean;
firmware_path: string;
firmware_debug_log: boolean;
update_channel: string;
}
export type NumberConfigKey = "id"
|"device_id"
|"network_not_found_timer";
export type StringConfigKey = "created_at"
|"updated_at"
|"firmware_hardware"
|"firmware_path"
|"update_channel";
export type BooleanConfigKey = "auto_sync"
|"beta_opt_in"
|"disable_factory_reset"
|"firmware_input_log"
|"firmware_output_log"
|"sequence_body_log"
|"sequence_complete_log"
|"sequence_init_log"
|"api_migrated"
|"os_auto_update"
|"arduino_debug_messages"
|"firmware_debug_log";

View File

@ -0,0 +1,206 @@
/** 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` */
export 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;
api_migrated: boolean;
movement_invert_2_endpoints_x: number;
movement_invert_2_endpoints_y: number;
movement_invert_2_endpoints_z: number;
}
export type NumberConfigKey = "id"
|"device_id"
|"encoder_enabled_x"
|"encoder_enabled_y"
|"encoder_enabled_z"
|"encoder_invert_x"
|"encoder_invert_y"
|"encoder_invert_z"
|"encoder_missed_steps_decay_x"
|"encoder_missed_steps_decay_y"
|"encoder_missed_steps_decay_z"
|"encoder_missed_steps_max_x"
|"encoder_missed_steps_max_y"
|"encoder_missed_steps_max_z"
|"encoder_scaling_x"
|"encoder_scaling_y"
|"encoder_scaling_z"
|"encoder_type_x"
|"encoder_type_y"
|"encoder_type_z"
|"encoder_use_for_pos_x"
|"encoder_use_for_pos_y"
|"encoder_use_for_pos_z"
|"movement_axis_nr_steps_x"
|"movement_axis_nr_steps_y"
|"movement_axis_nr_steps_z"
|"movement_enable_endpoints_x"
|"movement_enable_endpoints_y"
|"movement_enable_endpoints_z"
|"movement_home_at_boot_x"
|"movement_home_at_boot_y"
|"movement_home_at_boot_z"
|"movement_home_spd_x"
|"movement_home_spd_y"
|"movement_home_spd_z"
|"movement_home_up_x"
|"movement_home_up_y"
|"movement_home_up_z"
|"movement_invert_endpoints_x"
|"movement_invert_endpoints_y"
|"movement_invert_endpoints_z"
|"movement_invert_motor_x"
|"movement_invert_motor_y"
|"movement_invert_motor_z"
|"movement_keep_active_x"
|"movement_keep_active_y"
|"movement_keep_active_z"
|"movement_max_spd_x"
|"movement_max_spd_y"
|"movement_max_spd_z"
|"movement_min_spd_x"
|"movement_min_spd_y"
|"movement_min_spd_z"
|"movement_secondary_motor_invert_x"
|"movement_secondary_motor_x"
|"movement_step_per_mm_x"
|"movement_step_per_mm_y"
|"movement_step_per_mm_z"
|"movement_steps_acc_dec_x"
|"movement_steps_acc_dec_y"
|"movement_steps_acc_dec_z"
|"movement_stop_at_home_x"
|"movement_stop_at_home_y"
|"movement_stop_at_home_z"
|"movement_stop_at_max_x"
|"movement_stop_at_max_y"
|"movement_stop_at_max_z"
|"movement_timeout_x"
|"movement_timeout_y"
|"movement_timeout_z"
|"param_config_ok"
|"param_e_stop_on_mov_err"
|"param_mov_nr_retry"
|"param_test"
|"param_use_eeprom"
|"param_version"
|"pin_guard_1_active_state"
|"pin_guard_1_pin_nr"
|"pin_guard_1_time_out"
|"pin_guard_2_active_state"
|"pin_guard_2_pin_nr"
|"pin_guard_2_time_out"
|"pin_guard_3_active_state"
|"pin_guard_3_pin_nr"
|"pin_guard_3_time_out"
|"pin_guard_4_active_state"
|"pin_guard_4_pin_nr"
|"pin_guard_4_time_out"
|"pin_guard_5_active_state"
|"pin_guard_5_pin_nr"
|"pin_guard_5_time_out"
|"movement_invert_2_endpoints_x"
|"movement_invert_2_endpoints_y"
|"movement_invert_2_endpoints_z";
export type StringConfigKey = "created_at"
|"updated_at";
export type BooleanConfigKey = "api_migrated";

View File

@ -0,0 +1,100 @@
/** 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` */
export 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;
stub_config: boolean;
show_first_party_farmware: boolean;
enable_browser_speak: boolean;
show_images: boolean;
photo_filter_begin: string;
photo_filter_end: string;
discard_unsaved: boolean;
xy_swap: boolean;
home_button_homing: boolean;
show_motor_plot: boolean;
show_historic_points: boolean;
show_sensor_readings: boolean;
show_dev_menu: boolean;
}
export type NumberConfigKey = "id"
|"device_id"
|"bot_origin_quadrant"
|"zoom_level"
|"success_log"
|"busy_log"
|"warn_log"
|"error_log"
|"info_log"
|"fun_log"
|"debug_log";
export type StringConfigKey = "created_at"
|"updated_at"
|"photo_filter_begin"
|"photo_filter_end";
export type BooleanConfigKey = "confirm_step_deletion"
|"disable_animations"
|"disable_i18n"
|"display_trail"
|"dynamic_map"
|"encoder_figure"
|"hide_webcam_widget"
|"legend_menu_open"
|"map_xl"
|"raw_encoders"
|"scaled_encoders"
|"show_spread"
|"show_farmbot"
|"show_plants"
|"show_points"
|"x_axis_inverted"
|"y_axis_inverted"
|"z_axis_inverted"
|"stub_config"
|"show_first_party_farmware"
|"enable_browser_speak"
|"show_images"
|"discard_unsaved"
|"xy_swap"
|"home_button_homing"
|"show_motor_plot"
|"show_historic_points"
|"show_sensor_readings"
|"show_dev_menu";

View File

@ -5,10 +5,11 @@ class Typescript
TYPE_MAPPING = {
"bigint" => "number",
"boolean" => "boolean",
"character varying" => "string",
"character varying(7)" => "string",
"double precision" => "number",
"integer" => "number",
"timestamp without time zone" => "string",
"character varying" => "string",
"double precision" => "number"
}
INTERFACE_TPL = <<~END
@ -48,7 +49,9 @@ class Typescript
def self.fields
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"
col_type = TYPE_MAPPING.fetch(t) do
raise "NO! #{t.inspect} is not in TYPE_MAPPING"
end
Pair.new(col.name, col_type)
end
end