UNPKG

23.5 kBJavaScriptView Raw
1/* automatically generated by jscov - do not edit */
2if (typeof _$jscoverage === 'undefined') _$jscoverage = {};
3if (! _$jscoverage['manikin-tools.js']) {
4 _$jscoverage['manikin-tools.js'] = [];
5 _$jscoverage['manikin-tools.js'][2] = 0;
6 _$jscoverage['manikin-tools.js'][3] = 0;
7 _$jscoverage['manikin-tools.js'][5] = 0;
8 _$jscoverage['manikin-tools.js'][8] = 0;
9 _$jscoverage['manikin-tools.js'][10] = 0;
10 _$jscoverage['manikin-tools.js'][11] = 0;
11 _$jscoverage['manikin-tools.js'][12] = 0;
12 _$jscoverage['manikin-tools.js'][13] = 0;
13 _$jscoverage['manikin-tools.js'][14] = 0;
14 _$jscoverage['manikin-tools.js'][15] = 0;
15 _$jscoverage['manikin-tools.js'][18] = 0;
16 _$jscoverage['manikin-tools.js'][19] = 0;
17 _$jscoverage['manikin-tools.js'][20] = 0;
18 _$jscoverage['manikin-tools.js'][21] = 0;
19 _$jscoverage['manikin-tools.js'][22] = 0;
20 _$jscoverage['manikin-tools.js'][25] = 0;
21 _$jscoverage['manikin-tools.js'][26] = 0;
22 _$jscoverage['manikin-tools.js'][29] = 0;
23 _$jscoverage['manikin-tools.js'][30] = 0;
24 _$jscoverage['manikin-tools.js'][31] = 0;
25 _$jscoverage['manikin-tools.js'][37] = 0;
26 _$jscoverage['manikin-tools.js'][38] = 0;
27 _$jscoverage['manikin-tools.js'][40] = 0;
28 _$jscoverage['manikin-tools.js'][41] = 0;
29 _$jscoverage['manikin-tools.js'][43] = 0;
30 _$jscoverage['manikin-tools.js'][44] = 0;
31 _$jscoverage['manikin-tools.js'][45] = 0;
32 _$jscoverage['manikin-tools.js'][46] = 0;
33 _$jscoverage['manikin-tools.js'][47] = 0;
34 _$jscoverage['manikin-tools.js'][49] = 0;
35 _$jscoverage['manikin-tools.js'][54] = 0;
36 _$jscoverage['manikin-tools.js'][55] = 0;
37 _$jscoverage['manikin-tools.js'][56] = 0;
38 _$jscoverage['manikin-tools.js'][57] = 0;
39 _$jscoverage['manikin-tools.js'][58] = 0;
40 _$jscoverage['manikin-tools.js'][60] = 0;
41 _$jscoverage['manikin-tools.js'][63] = 0;
42 _$jscoverage['manikin-tools.js'][64] = 0;
43 _$jscoverage['manikin-tools.js'][65] = 0;
44 _$jscoverage['manikin-tools.js'][66] = 0;
45 _$jscoverage['manikin-tools.js'][67] = 0;
46 _$jscoverage['manikin-tools.js'][69] = 0;
47 _$jscoverage['manikin-tools.js'][72] = 0;
48 _$jscoverage['manikin-tools.js'][73] = 0;
49 _$jscoverage['manikin-tools.js'][74] = 0;
50 _$jscoverage['manikin-tools.js'][75] = 0;
51 _$jscoverage['manikin-tools.js'][76] = 0;
52 _$jscoverage['manikin-tools.js'][77] = 0;
53 _$jscoverage['manikin-tools.js'][78] = 0;
54 _$jscoverage['manikin-tools.js'][79] = 0;
55 _$jscoverage['manikin-tools.js'][80] = 0;
56 _$jscoverage['manikin-tools.js'][83] = 0;
57 _$jscoverage['manikin-tools.js'][84] = 0;
58 _$jscoverage['manikin-tools.js'][87] = 0;
59 _$jscoverage['manikin-tools.js'][88] = 0;
60 _$jscoverage['manikin-tools.js'][90] = 0;
61 _$jscoverage['manikin-tools.js'][93] = 0;
62 _$jscoverage['manikin-tools.js'][94] = 0;
63 _$jscoverage['manikin-tools.js'][95] = 0;
64 _$jscoverage['manikin-tools.js'][96] = 0;
65 _$jscoverage['manikin-tools.js'][97] = 0;
66 _$jscoverage['manikin-tools.js'][98] = 0;
67 _$jscoverage['manikin-tools.js'][99] = 0;
68 _$jscoverage['manikin-tools.js'][100] = 0;
69 _$jscoverage['manikin-tools.js'][101] = 0;
70 _$jscoverage['manikin-tools.js'][102] = 0;
71 _$jscoverage['manikin-tools.js'][107] = 0;
72 _$jscoverage['manikin-tools.js'][115] = 0;
73 _$jscoverage['manikin-tools.js'][116] = 0;
74 _$jscoverage['manikin-tools.js'][117] = 0;
75 _$jscoverage['manikin-tools.js'][118] = 0;
76 _$jscoverage['manikin-tools.js'][120] = 0;
77 _$jscoverage['manikin-tools.js'][121] = 0;
78 _$jscoverage['manikin-tools.js'][122] = 0;
79 _$jscoverage['manikin-tools.js'][129] = 0;
80 _$jscoverage['manikin-tools.js'][130] = 0;
81 _$jscoverage['manikin-tools.js'][131] = 0;
82 _$jscoverage['manikin-tools.js'][132] = 0;
83 _$jscoverage['manikin-tools.js'][139] = 0;
84 _$jscoverage['manikin-tools.js'][140] = 0;
85 _$jscoverage['manikin-tools.js'][141] = 0;
86 _$jscoverage['manikin-tools.js'][142] = 0;
87 _$jscoverage['manikin-tools.js'][149] = 0;
88 _$jscoverage['manikin-tools.js'][150] = 0;
89 _$jscoverage['manikin-tools.js'][152] = 0;
90 _$jscoverage['manikin-tools.js'][153] = 0;
91 _$jscoverage['manikin-tools.js'][154] = 0;
92 _$jscoverage['manikin-tools.js'][155] = 0;
93 _$jscoverage['manikin-tools.js'][156] = 0;
94 _$jscoverage['manikin-tools.js'][159] = 0;
95 _$jscoverage['manikin-tools.js'][160] = 0;
96 _$jscoverage['manikin-tools.js'][161] = 0;
97 _$jscoverage['manikin-tools.js'][162] = 0;
98 _$jscoverage['manikin-tools.js'][168] = 0;
99 _$jscoverage['manikin-tools.js'][169] = 0;
100 _$jscoverage['manikin-tools.js'][170] = 0;
101 _$jscoverage['manikin-tools.js'][171] = 0;
102 _$jscoverage['manikin-tools.js'][172] = 0;
103 _$jscoverage['manikin-tools.js'][173] = 0;
104 _$jscoverage['manikin-tools.js'][175] = 0;
105 _$jscoverage['manikin-tools.js'][176] = 0;
106 _$jscoverage['manikin-tools.js'][177] = 0;
107 _$jscoverage['manikin-tools.js'][178] = 0;
108 _$jscoverage['manikin-tools.js'][185] = 0;
109 _$jscoverage['manikin-tools.js'][187] = 0;
110 _$jscoverage['manikin-tools.js'][188] = 0;
111 _$jscoverage['manikin-tools.js'][189] = 0;
112 _$jscoverage['manikin-tools.js'][190] = 0;
113 _$jscoverage['manikin-tools.js'][192] = 0;
114 _$jscoverage['manikin-tools.js'][199] = 0;
115}
116_$jscoverage['manikin-tools.js'][2]++;
117(function () {
118 _$jscoverage['manikin-tools.js'][3]++;
119 'use strict';
120 _$jscoverage['manikin-tools.js'][5]++;
121 var desugarModel, getAllIndirectOwners, getAllOwners, _, __slice = [].slice;
122 _$jscoverage['manikin-tools.js'][8]++;
123 _ = require('underscore');
124 _$jscoverage['manikin-tools.js'][10]++;
125 desugarModel = function (modelName, tgt, src, keys) {
126 _$jscoverage['manikin-tools.js'][11]++;
127 return keys.forEach(function (key) {
128 _$jscoverage['manikin-tools.js'][12]++;
129 var obj;
130 _$jscoverage['manikin-tools.js'][13]++;
131 if (typeof src[key] === 'string') {
132 _$jscoverage['manikin-tools.js'][14]++;
133 obj = {};
134 _$jscoverage['manikin-tools.js'][15]++;
135 obj[key] = { type: src[key] };
136 _$jscoverage['manikin-tools.js'][18]++;
137 return desugarModel(modelName, tgt, obj, [key]);
138 } else {
139 _$jscoverage['manikin-tools.js'][19]++;
140 if (!(src[key].type != null)) {
141 _$jscoverage['manikin-tools.js'][20]++;
142 throw new Error('must assign a type: ' + key);
143 } else {
144 _$jscoverage['manikin-tools.js'][21]++;
145 if (src[key].type === 'mixed') {
146 _$jscoverage['manikin-tools.js'][22]++;
147 return tgt[key] = { type: 'mixed' };
148 } else {
149 _$jscoverage['manikin-tools.js'][25]++;
150 if (src[key].type === 'nested') {
151 _$jscoverage['manikin-tools.js'][26]++;
152 tgt[key] = { type: 'nested' };
153 _$jscoverage['manikin-tools.js'][29]++;
154 return desugarModel(modelName, tgt[key], src[key], _.without(Object.keys(src[key]), 'type'));
155 } else {
156 _$jscoverage['manikin-tools.js'][30]++;
157 if (_([
158 'string',
159 'number',
160 'date',
161 'boolean'
162 ]).contains(src[key].type)) {
163 _$jscoverage['manikin-tools.js'][31]++;
164 tgt[key] = {
165 type: src[key].type,
166 required: !!src[key].required,
167 index: !!src[key].index,
168 unique: !!src[key].unique
169 };
170 _$jscoverage['manikin-tools.js'][37]++;
171 if (src[key]['default'] != null) {
172 _$jscoverage['manikin-tools.js'][38]++;
173 tgt[key]['default'] = src[key]['default'];
174 }
175 _$jscoverage['manikin-tools.js'][40]++;
176 if (src[key].validate != null) {
177 _$jscoverage['manikin-tools.js'][41]++;
178 return tgt[key].validate = src[key].validate;
179 }
180 } else {
181 _$jscoverage['manikin-tools.js'][43]++;
182 if (src[key].type === 'hasOne') {
183 _$jscoverage['manikin-tools.js'][44]++;
184 return tgt[key] = src[key];
185 } else {
186 _$jscoverage['manikin-tools.js'][45]++;
187 if (src[key].type === 'hasMany') {
188 _$jscoverage['manikin-tools.js'][46]++;
189 tgt[key] = src[key];
190 _$jscoverage['manikin-tools.js'][47]++;
191 return tgt[key].inverseName = src[key].inverseName || key;
192 } else {
193 _$jscoverage['manikin-tools.js'][49]++;
194 throw new Error('Invalid type: ' + src[key].type);
195 }
196 }
197 }
198 }
199 }
200 }
201 }
202 });
203 };
204 _$jscoverage['manikin-tools.js'][54]++;
205 getAllOwners = function (specmodels, modelName) {
206 _$jscoverage['manikin-tools.js'][55]++;
207 var indirect, owners;
208 _$jscoverage['manikin-tools.js'][56]++;
209 owners = specmodels[modelName].owners;
210 _$jscoverage['manikin-tools.js'][57]++;
211 indirect = _.values(owners).map(function (model) {
212 _$jscoverage['manikin-tools.js'][58]++;
213 return getAllOwners(specmodels, model);
214 });
215 _$jscoverage['manikin-tools.js'][60]++;
216 return _.extend.apply(_, [
217 {},
218 owners
219 ].concat(__slice.call(indirect)));
220 };
221 _$jscoverage['manikin-tools.js'][63]++;
222 getAllIndirectOwners = function (specmodels, modelName) {
223 _$jscoverage['manikin-tools.js'][64]++;
224 var indirect, owners;
225 _$jscoverage['manikin-tools.js'][65]++;
226 owners = specmodels[modelName].owners;
227 _$jscoverage['manikin-tools.js'][66]++;
228 indirect = _.flatten(_.values(owners).map(function (model) {
229 _$jscoverage['manikin-tools.js'][67]++;
230 return getAllOwners(specmodels, model);
231 }));
232 _$jscoverage['manikin-tools.js'][69]++;
233 return _.extend.apply(_, [{}].concat(__slice.call(indirect)));
234 };
235 _$jscoverage['manikin-tools.js'][72]++;
236 exports.desugar = function (models) {
237 _$jscoverage['manikin-tools.js'][73]++;
238 var rest;
239 _$jscoverage['manikin-tools.js'][74]++;
240 rest = {};
241 _$jscoverage['manikin-tools.js'][75]++;
242 Object.keys(models).forEach(function (modelName) {
243 _$jscoverage['manikin-tools.js'][76]++;
244 var inspec, spec;
245 _$jscoverage['manikin-tools.js'][77]++;
246 spec = {};
247 _$jscoverage['manikin-tools.js'][78]++;
248 inspec = models[modelName].fields || {};
249 _$jscoverage['manikin-tools.js'][79]++;
250 desugarModel(modelName, spec, inspec, Object.keys(inspec));
251 _$jscoverage['manikin-tools.js'][80]++;
252 rest[modelName] = _.extend({}, models[modelName], { fields: spec });
253 _$jscoverage['manikin-tools.js'][83]++;
254 if (!rest[modelName].owners) {
255 _$jscoverage['manikin-tools.js'][84]++;
256 return rest[modelName].owners = {};
257 }
258 });
259 _$jscoverage['manikin-tools.js'][87]++;
260 Object.keys(rest).forEach(function (modelName) {
261 _$jscoverage['manikin-tools.js'][88]++;
262 return rest[modelName].indirectOwners = getAllIndirectOwners(rest, modelName);
263 });
264 _$jscoverage['manikin-tools.js'][90]++;
265 return rest;
266 };
267 _$jscoverage['manikin-tools.js'][93]++;
268 exports.getMeta = function (specmodels) {
269 _$jscoverage['manikin-tools.js'][94]++;
270 var meta;
271 _$jscoverage['manikin-tools.js'][95]++;
272 meta = {};
273 _$jscoverage['manikin-tools.js'][96]++;
274 Object.keys(specmodels).forEach(function (modelName) {
275 _$jscoverage['manikin-tools.js'][97]++;
276 var apa, otherMany, ownMany;
277 _$jscoverage['manikin-tools.js'][98]++;
278 meta[modelName] = meta[modelName] || {};
279 _$jscoverage['manikin-tools.js'][99]++;
280 meta[modelName].owners = _.pairs(specmodels[modelName].owners).map(function (_arg) {
281 _$jscoverage['manikin-tools.js'][100]++;
282 var plur, sing;
283 _$jscoverage['manikin-tools.js'][101]++;
284 sing = _arg[0], plur = _arg[1];
285 _$jscoverage['manikin-tools.js'][102]++;
286 return {
287 sing: sing,
288 plur: plur
289 };
290 });
291 _$jscoverage['manikin-tools.js'][107]++;
292 meta[modelName].fields = [{
293 name: 'id',
294 readonly: true,
295 required: false,
296 type: 'string'
297 }];
298 _$jscoverage['manikin-tools.js'][115]++;
299 meta[modelName].fields = meta[modelName].fields.concat(_.pairs(specmodels[modelName].fields).filter(function (_arg) {
300 _$jscoverage['manikin-tools.js'][116]++;
301 var k, v;
302 _$jscoverage['manikin-tools.js'][117]++;
303 k = _arg[0], v = _arg[1];
304 _$jscoverage['manikin-tools.js'][118]++;
305 return v.type !== 'hasMany';
306 }).map(function (_arg) {
307 _$jscoverage['manikin-tools.js'][120]++;
308 var k, v;
309 _$jscoverage['manikin-tools.js'][121]++;
310 k = _arg[0], v = _arg[1];
311 _$jscoverage['manikin-tools.js'][122]++;
312 return {
313 name: k,
314 readonly: k === '_id',
315 required: !!v.require,
316 type: v.type
317 };
318 }));
319 _$jscoverage['manikin-tools.js'][129]++;
320 meta[modelName].fields = meta[modelName].fields.concat(_.pairs(specmodels[modelName].owners).map(function (_arg) {
321 _$jscoverage['manikin-tools.js'][130]++;
322 var k, v;
323 _$jscoverage['manikin-tools.js'][131]++;
324 k = _arg[0], v = _arg[1];
325 _$jscoverage['manikin-tools.js'][132]++;
326 return {
327 name: k,
328 readonly: true,
329 required: true,
330 type: 'string'
331 };
332 }));
333 _$jscoverage['manikin-tools.js'][139]++;
334 meta[modelName].fields = meta[modelName].fields.concat(_.pairs(specmodels[modelName].indirectOwners).map(function (_arg) {
335 _$jscoverage['manikin-tools.js'][140]++;
336 var k, v;
337 _$jscoverage['manikin-tools.js'][141]++;
338 k = _arg[0], v = _arg[1];
339 _$jscoverage['manikin-tools.js'][142]++;
340 return {
341 name: k,
342 readonly: true,
343 required: true,
344 type: 'string'
345 };
346 }));
347 _$jscoverage['manikin-tools.js'][149]++;
348 meta[modelName].fields = _.sortBy(meta[modelName].fields, function (x) {
349 _$jscoverage['manikin-tools.js'][150]++;
350 return x.name;
351 });
352 _$jscoverage['manikin-tools.js'][152]++;
353 apa = function (modelName) {
354 _$jscoverage['manikin-tools.js'][153]++;
355 return _.pairs(specmodels[modelName].fields).filter(function (_arg) {
356 _$jscoverage['manikin-tools.js'][154]++;
357 var key, value;
358 _$jscoverage['manikin-tools.js'][155]++;
359 key = _arg[0], value = _arg[1];
360 _$jscoverage['manikin-tools.js'][156]++;
361 return value.type === 'hasMany';
362 });
363 };
364 _$jscoverage['manikin-tools.js'][159]++;
365 ownMany = apa(modelName).map(function (_arg) {
366 _$jscoverage['manikin-tools.js'][160]++;
367 var k, v;
368 _$jscoverage['manikin-tools.js'][161]++;
369 k = _arg[0], v = _arg[1];
370 _$jscoverage['manikin-tools.js'][162]++;
371 return {
372 ref: v.model,
373 name: k,
374 inverseName: v.inverseName
375 };
376 });
377 _$jscoverage['manikin-tools.js'][168]++;
378 otherMany = Object.keys(specmodels).map(function (mn) {
379 _$jscoverage['manikin-tools.js'][169]++;
380 var fd;
381 _$jscoverage['manikin-tools.js'][170]++;
382 fd = apa(mn).filter(function (_arg) {
383 _$jscoverage['manikin-tools.js'][171]++;
384 var k, v;
385 _$jscoverage['manikin-tools.js'][172]++;
386 k = _arg[0], v = _arg[1];
387 _$jscoverage['manikin-tools.js'][173]++;
388 return v.model === modelName;
389 });
390 _$jscoverage['manikin-tools.js'][175]++;
391 return fd.map(function (_arg) {
392 _$jscoverage['manikin-tools.js'][176]++;
393 var k, v;
394 _$jscoverage['manikin-tools.js'][177]++;
395 k = _arg[0], v = _arg[1];
396 _$jscoverage['manikin-tools.js'][178]++;
397 return {
398 ref: mn,
399 name: v.inverseName,
400 inverseName: k
401 };
402 });
403 });
404 _$jscoverage['manikin-tools.js'][185]++;
405 return meta[modelName].manyToMany = _.flatten(ownMany.concat(otherMany));
406 });
407 _$jscoverage['manikin-tools.js'][187]++;
408 Object.keys(meta).forEach(function (metaName) {
409 _$jscoverage['manikin-tools.js'][188]++;
410 return meta[metaName].owns = _.flatten(Object.keys(meta).map(function (mn) {
411 _$jscoverage['manikin-tools.js'][189]++;
412 return meta[mn].owners.filter(function (x) {
413 _$jscoverage['manikin-tools.js'][190]++;
414 return x.plur === metaName;
415 }).map(function (x) {
416 _$jscoverage['manikin-tools.js'][192]++;
417 return {
418 name: mn,
419 field: x.sing
420 };
421 });
422 }));
423 });
424 _$jscoverage['manikin-tools.js'][199]++;
425 return meta;
426 };
427}.call(this));
428_$jscoverage['manikin-tools.js'].source = ["// Generated by CoffeeScript 1.4.0","(function() {"," \"use strict\";",""," var desugarModel, getAllIndirectOwners, getAllOwners, _,"," __slice = [].slice;",""," _ = require('underscore');",""," desugarModel = function(modelName, tgt, src, keys) {"," return keys.forEach(function(key) {"," var obj;"," if (typeof src[key] === 'string') {"," obj = {};"," obj[key] = {"," type: src[key]"," };"," return desugarModel(modelName, tgt, obj, [key]);"," } else if (!(src[key].type != null)) {"," throw new Error(\"must assign a type: \" + key);"," } else if (src[key].type === 'mixed') {"," return tgt[key] = {"," type: 'mixed'"," };"," } else if (src[key].type === 'nested') {"," tgt[key] = {"," type: 'nested'"," };"," return desugarModel(modelName, tgt[key], src[key], _.without(Object.keys(src[key]), 'type'));"," } else if (_(['string', 'number', 'date', 'boolean']).contains(src[key].type)) {"," tgt[key] = {"," type: src[key].type,"," required: !!src[key].required,"," index: !!src[key].index,"," unique: !!src[key].unique"," };"," if (src[key][\"default\"] != null) {"," tgt[key][\"default\"] = src[key][\"default\"];"," }"," if (src[key].validate != null) {"," return tgt[key].validate = src[key].validate;"," }"," } else if (src[key].type === 'hasOne') {"," return tgt[key] = src[key];"," } else if (src[key].type === 'hasMany') {"," tgt[key] = src[key];"," return tgt[key].inverseName = src[key].inverseName || key;"," } else {"," throw new Error(\"Invalid type: \" + src[key].type);"," }"," });"," };",""," getAllOwners = function(specmodels, modelName) {"," var indirect, owners;"," owners = specmodels[modelName].owners;"," indirect = _.values(owners).map(function(model) {"," return getAllOwners(specmodels, model);"," });"," return _.extend.apply(_, [{}, owners].concat(__slice.call(indirect)));"," };",""," getAllIndirectOwners = function(specmodels, modelName) {"," var indirect, owners;"," owners = specmodels[modelName].owners;"," indirect = _.flatten(_.values(owners).map(function(model) {"," return getAllOwners(specmodels, model);"," }));"," return _.extend.apply(_, [{}].concat(__slice.call(indirect)));"," };",""," exports.desugar = function(models) {"," var rest;"," rest = {};"," Object.keys(models).forEach(function(modelName) {"," var inspec, spec;"," spec = {};"," inspec = models[modelName].fields || {};"," desugarModel(modelName, spec, inspec, Object.keys(inspec));"," rest[modelName] = _.extend({}, models[modelName], {"," fields: spec"," });"," if (!rest[modelName].owners) {"," return rest[modelName].owners = {};"," }"," });"," Object.keys(rest).forEach(function(modelName) {"," return rest[modelName].indirectOwners = getAllIndirectOwners(rest, modelName);"," });"," return rest;"," };",""," exports.getMeta = function(specmodels) {"," var meta;"," meta = {};"," Object.keys(specmodels).forEach(function(modelName) {"," var apa, otherMany, ownMany;"," meta[modelName] = meta[modelName] || {};"," meta[modelName].owners = _.pairs(specmodels[modelName].owners).map(function(_arg) {"," var plur, sing;"," sing = _arg[0], plur = _arg[1];"," return {"," sing: sing,"," plur: plur"," };"," });"," meta[modelName].fields = ["," {"," name: 'id',"," readonly: true,"," required: false,"," type: 'string'"," }"," ];"," meta[modelName].fields = meta[modelName].fields.concat(_.pairs(specmodels[modelName].fields).filter(function(_arg) {"," var k, v;"," k = _arg[0], v = _arg[1];"," return v.type !== 'hasMany';"," }).map(function(_arg) {"," var k, v;"," k = _arg[0], v = _arg[1];"," return {"," name: k,"," readonly: k === '_id',"," required: !!v.require,"," type: v.type"," };"," }));"," meta[modelName].fields = meta[modelName].fields.concat(_.pairs(specmodels[modelName].owners).map(function(_arg) {"," var k, v;"," k = _arg[0], v = _arg[1];"," return {"," name: k,"," readonly: true,"," required: true,"," type: 'string'"," };"," }));"," meta[modelName].fields = meta[modelName].fields.concat(_.pairs(specmodels[modelName].indirectOwners).map(function(_arg) {"," var k, v;"," k = _arg[0], v = _arg[1];"," return {"," name: k,"," readonly: true,"," required: true,"," type: 'string'"," };"," }));"," meta[modelName].fields = _.sortBy(meta[modelName].fields, function(x) {"," return x.name;"," });"," apa = function(modelName) {"," return _.pairs(specmodels[modelName].fields).filter(function(_arg) {"," var key, value;"," key = _arg[0], value = _arg[1];"," return value.type === 'hasMany';"," });"," };"," ownMany = apa(modelName).map(function(_arg) {"," var k, v;"," k = _arg[0], v = _arg[1];"," return {"," ref: v.model,"," name: k,"," inverseName: v.inverseName"," };"," });"," otherMany = Object.keys(specmodels).map(function(mn) {"," var fd;"," fd = apa(mn).filter(function(_arg) {"," var k, v;"," k = _arg[0], v = _arg[1];"," return v.model === modelName;"," });"," return fd.map(function(_arg) {"," var k, v;"," k = _arg[0], v = _arg[1];"," return {"," ref: mn,"," name: v.inverseName,"," inverseName: k"," };"," });"," });"," return meta[modelName].manyToMany = _.flatten(ownMany.concat(otherMany));"," });"," Object.keys(meta).forEach(function(metaName) {"," return meta[metaName].owns = _.flatten(Object.keys(meta).map(function(mn) {"," return meta[mn].owners.filter(function(x) {"," return x.plur === metaName;"," }).map(function(x) {"," return {"," name: mn,"," field: x.sing"," };"," });"," }));"," });"," return meta;"," };","","}).call(this);"];
\No newline at end of file