doix-db 0.0.27 → 0.0.28

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/lib/DbLang.js CHANGED
@@ -145,6 +145,37 @@ class DbLang {
145
145
  }
146
146
 
147
147
  }
148
+
149
+ genSelectObjectParamsSql (sqlOrName, params) {
150
+
151
+ const {model} = this; if (!model) throw Error ('Model not set')
152
+
153
+ if (!Array.isArray (params)) params = [params]
154
+
155
+ const {map} = model; if (map.has (sqlOrName)) {
156
+
157
+ const {qName, pk, columns} = map.get (sqlOrName)
158
+
159
+ let filter = ''; for (const name of pk) {
160
+
161
+ if (filter.length !== 0) filter += ' AND '
162
+
163
+ filter += columns [name].qName + '=?'
164
+
165
+ }
166
+
167
+ params.push (`SELECT * FROM ${qName} WHERE ${filter}`)
168
+
169
+ }
170
+ else {
171
+
172
+ params.push (sqlOrName)
173
+
174
+ }
175
+
176
+ return params
177
+
178
+ }
148
179
 
149
180
  genInsertParamsSql (name, data) {
150
181
 
@@ -102,8 +102,8 @@ class DbModel extends EventEmitter {
102
102
  reference.targetColumnName = pk [0]
103
103
 
104
104
  }
105
-
106
- const targetColumn = targetRelation.columns [reference.targetColumnName]; if (!targetColumn) throw Error (`Cannot resolve reference from ${column.relation.name}.${column.name}: "${targetRelationName}.${targetColumnName}" not found`)
105
+
106
+ const targetColumn = targetRelation.columns [reference.targetColumnName]; if (!targetColumn) throw Error (`Cannot resolve reference from ${column.relation.name}.${column.name}: "${reference.targetRelationName}.${reference.targetColumnName}" not found`)
107
107
 
108
108
  reference.targetColumn = targetColumn
109
109
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "doix-db",
3
- "version": "0.0.27",
3
+ "version": "0.0.28",
4
4
  "description": "Shared database related code for doix",
5
5
  "main": "index.js",
6
6
  "files": [