From db917bf03bda4d85fcf4c9dbc42ff5978e287c66 Mon Sep 17 00:00:00 2001 From: Raymond Feng Date: Mon, 10 Nov 2014 08:22:57 -0800 Subject: [PATCH] Fix the test for built-in models on Windows See https://github.com/strongloop/loopback/issues/756 --- lib/executor.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/executor.js b/lib/executor.js index 8680794..16ca218 100644 --- a/lib/executor.js +++ b/lib/executor.js @@ -3,6 +3,7 @@ var _ = require('underscore'); var semver = require('semver'); var debug = require('debug')('loopback:boot:executor'); var async = require('async'); +var path = require('path'); /** * 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) { // 1. Built-in models are exposed on the loopback object if (!app.loopback[data.name]) return false; // 2. Built-in models have a script file `loopback/{facet}/models/{name}.js` - return data.sourceFile && - /node_modules\/loopback\/[^\/]+\/models\/[^\/]+\.js$/.test(data.sourceFile); + var srcFile = data.sourceFile; + return srcFile && + LOOPBACK_MODEL_REGEXP.test(srcFile); } function forEachKeyedObject(obj, fn) {