MCPcopy Index your code
hub / github.com/dresende/node-orm2 / model

Function model

lib/Model.js:154–202  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

152
153
154 var model = function () {
155 var instance, i;
156
157 var data = arguments.length > 1 ? arguments : arguments[0];
158
159 if (Array.isArray(opts.keys) && Array.isArray(data)) {
160 if (data.length == opts.keys.length) {
161 var data2 = {};
162 for (i = 0; i < opts.keys.length; i++) {
163 data2[opts.keys[i]] = data[i++];
164 }
165
166 return createInstance(data2, { isShell: true });
167 }
168 else {
169 var err = new Error('Model requires ' + opts.keys.length + ' keys, only ' + data.length + ' were provided');
170 err.model = opts.table;
171
172 throw err;
173 }
174 }
175 else if (typeof data === "number" || typeof data === "string") {
176 var data2 = {};
177 data2[opts.keys[0]] = data;
178
179 return createInstance(data2, { isShell: true });
180 } else if (typeof data === "undefined") {
181 data = {};
182 }
183
184 var isNew = false;
185
186 for (i = 0; i < opts.keys.length; i++) {
187 if (!data.hasOwnProperty(opts.keys[i])) {
188 isNew = true;
189 break;
190 }
191 }
192
193 if (keyProperties.length != 1 || (keyProperties.length == 1 && keyProperties[0].type != 'serial')) {
194 isNew = true;
195 }
196
197 return createInstance(data, {
198 is_new: isNew,
199 autoSave: opts.autoSave,
200 cascadeRemove: opts.cascadeRemove
201 });
202 };
203
204 model.allProperties = allProperties;
205 model.properties = opts.properties;

Callers

nothing calls this directly

Calls 1

createInstanceFunction · 0.85

Tested by

no test coverage detected