goby-database 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +49 -0
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -40,6 +40,8 @@ class Project{
|
|
|
40
40
|
get_class_id:this.db.prepare(`SELECT id FROM system_classlist WHERE name = ?`),
|
|
41
41
|
get_all_classes:this.db.prepare(`SELECT id, name, metadata FROM system_classlist`),
|
|
42
42
|
save_class_meta:this.db.prepare(`UPDATE system_classlist set metadata = ? WHERE id = ?`),
|
|
43
|
+
update_window:this.db.prepare(`UPDATE system_windows set open = @open, type=@type, metadata = @meta WHERE id = @id`),
|
|
44
|
+
create_window: this.db.prepare(`INSERT INTO system_windows (type,open, metadata) VALUES (@type, @open, @meta)`),
|
|
43
45
|
match_junction:this.db.prepare(`SELECT id, side_a, side_b, metadata FROM system_junctionlist WHERE (side_a = @input_1 AND side_b = @input_2 ) OR ( side_a = @input_2 AND side_b = @input_1 )`),
|
|
44
46
|
fuzzy_match_junction:this.db.prepare(`SELECT id, side_a, side_b, metadata FROM system_junctionlist WHERE (side_a LIKE @input_1 AND side_b LIKE @input_2 ) OR ( side_a LIKE @input_2 AND side_b LIKE @input_1 )`)
|
|
45
47
|
}
|
|
@@ -59,6 +61,11 @@ class Project{
|
|
|
59
61
|
|
|
60
62
|
}
|
|
61
63
|
|
|
64
|
+
get_latest_id(table_name){
|
|
65
|
+
let id=this.db.prepare(`SELECT last_insert_rowid() AS id FROM ${table_name}`).get().id;
|
|
66
|
+
return id;
|
|
67
|
+
}
|
|
68
|
+
|
|
62
69
|
|
|
63
70
|
|
|
64
71
|
init(){
|
|
@@ -75,12 +82,30 @@ class Project{
|
|
|
75
82
|
//System table to contain generated image data
|
|
76
83
|
this.create_table('system','images',['file_path TEXT','img_type TEXT','img BLOB']);
|
|
77
84
|
|
|
85
|
+
this.create_table('system','windows',[
|
|
86
|
+
'id INTEGER NOT NULL PRIMARY KEY',
|
|
87
|
+
'type TEXT',
|
|
88
|
+
'open INT',
|
|
89
|
+
'metadata TEXT'
|
|
90
|
+
]);
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
// let home_id=this.action_config_window('home',0,{pos:[null,null], size:[540,400]})
|
|
94
|
+
// let hopper_id=this.action_config_window('hopper',0,{pos:[null,null], size:[300,400]})
|
|
95
|
+
// console.log('home:',home_id,'hopper:',hopper_id)
|
|
96
|
+
this.db.prepare(`INSERT INTO system_windows
|
|
97
|
+
(type, open, metadata)
|
|
98
|
+
VALUES
|
|
99
|
+
('home',0,'${JSON.stringify({pos:[null,null], size:[540,400]})}'),
|
|
100
|
+
('hopper',0,'${JSON.stringify({pos:[null,null], size:[300,400]})}')`).run();
|
|
101
|
+
|
|
78
102
|
// [TO ADD: special junction table for root objects to reference themselves in individual relation]
|
|
79
103
|
this.create_table('system','junction_root',[
|
|
80
104
|
'id_1 INTEGER',
|
|
81
105
|
'id_2 INTEGER',
|
|
82
106
|
'metadata TEXT'
|
|
83
107
|
]);
|
|
108
|
+
|
|
84
109
|
|
|
85
110
|
|
|
86
111
|
|
|
@@ -668,6 +693,30 @@ class Project{
|
|
|
668
693
|
}
|
|
669
694
|
|
|
670
695
|
|
|
696
|
+
action_config_window(type,open,meta={pos:[null,null], size:[1000,700]},id){
|
|
697
|
+
if(id!==undefined){
|
|
698
|
+
this.run.update_window.run({
|
|
699
|
+
id,
|
|
700
|
+
open,
|
|
701
|
+
type,
|
|
702
|
+
meta:JSON.stringify(meta)
|
|
703
|
+
})
|
|
704
|
+
}else{
|
|
705
|
+
|
|
706
|
+
this.run.create_window.run({
|
|
707
|
+
open,
|
|
708
|
+
type,
|
|
709
|
+
meta:JSON.stringify(meta)
|
|
710
|
+
})
|
|
711
|
+
let id=this.get_latest_id('system_windows')
|
|
712
|
+
return id;
|
|
713
|
+
}
|
|
714
|
+
// {pos:[null,null], size:[1000,700]}
|
|
715
|
+
|
|
716
|
+
// this.db.prepare(`INSERT INTO system_classlist (name, metadata) VALUES ('${name}','${JSON.stringify(table_meta)}')`)
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
|
|
671
720
|
}
|
|
672
721
|
|
|
673
722
|
// export default Project;
|