Merge pull request #63 from strongloop/feature/fix-lb-issue-756

Fix the test for built-in models on Windows
This commit is contained in:
Raymond Feng 2014-11-10 08:56:21 -08:00
commit 27bd48e0f6
1 changed files with 9 additions and 2 deletions

View File

@ -3,6 +3,7 @@ var _ = require('underscore');
var semver = require('semver'); var semver = require('semver');
var debug = require('debug')('loopback:boot:executor'); var debug = require('debug')('loopback:boot:executor');
var async = require('async'); var async = require('async');
var path = require('path');
/** /**
* Execute bootstrap instructions gathered by `boot.compile`. * Execute bootstrap instructions gathered by `boot.compile`.
@ -181,13 +182,19 @@ function defineModels(app, instructions) {
}); });
} }
// Regular expression to match built-in loopback models
var LOOPBACK_MODEL_REGEXP = new RegExp(
['', 'node_modules', 'loopback', '[^\\/\\\\]+', 'models', '[^\\/\\\\]+\\.js$']
.join('\\' + path.sep));
function isBuiltinLoopBackModel(app, data) { function isBuiltinLoopBackModel(app, data) {
// 1. Built-in models are exposed on the loopback object // 1. Built-in models are exposed on the loopback object
if (!app.loopback[data.name]) return false; if (!app.loopback[data.name]) return false;
// 2. Built-in models have a script file `loopback/{facet}/models/{name}.js` // 2. Built-in models have a script file `loopback/{facet}/models/{name}.js`
return data.sourceFile && var srcFile = data.sourceFile;
/node_modules\/loopback\/[^\/]+\/models\/[^\/]+\.js$/.test(data.sourceFile); return srcFile &&
LOOPBACK_MODEL_REGEXP.test(srcFile);
} }
function forEachKeyedObject(obj, fn) { function forEachKeyedObject(obj, fn) {