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.
Files changed (2) hide show
  1. package/index.js +49 -0
  2. 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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "goby-database",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "This will hold the core better-sqlite3-powered application for creating and modifying goby databases",
5
5
  "main": "index.js",
6
6
  "scripts": {