Skip to content

Commit

Permalink
general: integrated istanbul and coveralls
Browse files Browse the repository at this point in the history
  • Loading branch information
ilfroloff committed Aug 22, 2017
1 parent 223775e commit 108a1ea
Show file tree
Hide file tree
Showing 98 changed files with 1,723 additions and 365 deletions.
5 changes: 4 additions & 1 deletion .gitignore
Expand Up @@ -5,4 +5,7 @@

npm-debug.log

/node_modules
/coverage/
/node_modules/

sandbox.js
4 changes: 4 additions & 0 deletions .npmignore
Expand Up @@ -3,5 +3,9 @@
*.sublime-workspace
**/*.DS_store

coverage/

ideas
manual.txt

sandbox.js
9 changes: 7 additions & 2 deletions .travis.yml
@@ -1,10 +1,15 @@
language: node_js
node_js:
- "7.9.0" # Last current
- "6.10.3" # LTS
- "node" # Last current
- "lts/*" # LTS
- "6"
- "5"
- "4"
- "0.12"
- "0.11"
- "0.10"
script:
- npm run test:coverage-report-lcovonly
after_script:
- cat ./coverage/lcov.info | ./node_modules/.bin/coveralls
- rm -rf ./coverage
4 changes: 3 additions & 1 deletion README.md
Expand Up @@ -10,7 +10,9 @@

Best MVC Framework for node.js :^)

[![Build Status](https://travis-ci.org/ifnode/ifnode.svg?branch=master)](https://travis-ci.org/ifnode/ifnode) [![Known Vulnerabilities](https://snyk.io/test/github/ifnode/ifnode/badge.svg)](https://snyk.io/test/github/ifnode/ifnode) [![NSP Status](https://nodesecurity.io/orgs/ifnode/projects/b02ae270-a972-4132-a391-8299e270d084/badge)](https://nodesecurity.io/orgs/ifnode/projects/b02ae270-a972-4132-a391-8299e270d084)
[![Build Status](https://travis-ci.org/ifnode/ifnode.svg?branch=master)](https://travis-ci.org/ifnode/ifnode)
[![Coverage Status](https://coveralls.io/repos/github/ifnode/ifnode/badge.svg?branch=master)](https://coveralls.io/github/ifnode/ifnode?branch=master)
[![Known Vulnerabilities](https://snyk.io/test/github/ifnode/ifnode/badge.svg)](https://snyk.io/test/github/ifnode/ifnode) [![NSP Status](https://nodesecurity.io/orgs/ifnode/projects/b02ae270-a972-4132-a391-8299e270d084/badge)](https://nodesecurity.io/orgs/ifnode/projects/b02ae270-a972-4132-a391-8299e270d084)

### What is `ifnode`?

Expand Down
16 changes: 6 additions & 10 deletions core/Application.js
Expand Up @@ -11,7 +11,7 @@ var deepFreeze = require('./helper/deepFreeze');
var pathWithoutExtension = require('./helper/pathWithoutExtension');
var tryCatch = require('./helper/tryCatch');

var debug = require('debug')('ifnode:application');
var debug = require('debug')('ifnode:application'); // eslint-disable-line
var Log = require('./Log');

var Extension = require('./application/Extension');
Expand Down Expand Up @@ -40,7 +40,7 @@ var NodeHTTPServer = require('./../plugins/node-http_s-server');
* @param {ApplicationOptions} options
*/
function Application(options) {
if(options.alias && typeof options.alias !== 'string') {
if(options.alias !== void 0 && typeof options.alias !== 'string') {
Log.error('application', 'Alias must be String');
}

Expand Down Expand Up @@ -214,13 +214,13 @@ Application.prototype.Component = function(custom_component_config) {
var builder = this._components_builder;

return builder.make(
builder.build_component_config(custom_component_config || {}, this.config.components)
builder.build_component_config(custom_component_config, this.config.components)
);
};

/**
*
* @param {Object} controller_config
* @param {Object} [controller_config]
* @returns {Controller}
*/
Application.prototype.Controller = function(controller_config) {
Expand Down Expand Up @@ -297,8 +297,8 @@ Application.prototype._initialize_listener = function() {
app.use(RestMiddleware.response());
if(middleware_configs) {
this._initialize_middleware(middleware_configs, app);
app.use(RestMiddleware.request());
}
app.use(RestMiddleware.request());

var express_configs = app_config.express;

Expand All @@ -323,6 +323,7 @@ Application.prototype._initialize_connection_server = function() {
case 'http':
case 'https':
return new NodeHTTPServer(this.listener, site_config);

default:
/**
*
Expand All @@ -340,11 +341,6 @@ Application.prototype._initialize_connection_server = function() {
*/
Application.prototype._initialize_models = function _initialize_models() {
var db = this.config.db;

if(!(db && Object.keys(db).length)) {
return;
}

var modules = this._modules;
var schemas_list = new SchemasList;

Expand Down
151 changes: 89 additions & 62 deletions core/ConfigurationBuilder.js
Expand Up @@ -7,17 +7,34 @@ var _includes = require('lodash/includes');
// var debug = require('debug')('ifnode:config');
var path = require('path');

/**
*
* @param {IFSiteConnectionOptions} site_config
* @param {boolean} ssl
* @returns {string}
*/
function build_origin_value(site_config, ssl) {
var protocol = ssl?
'https://' :
'http://';
var port = site_config.port?
':' + site_config.port :
'';

return protocol + site_config.host + port;
}

/**
*
* @param {IFSiteConnectionOptions} site_config
* @param {boolean} ssl
* @returns {Object}
*/
function location_init(site_config, ssl) {
Object.defineProperties(site_config, {
'origin': {
enumerable: true,
get: function() {
var protocol = ssl? 'https://' : 'http://',
port = this.port? ':' + this.port : '',
host = this.host? this.host : 'localhost';

return protocol + host + port;
}
value: build_origin_value(site_config, ssl)
},
'url': {
enumerable: true,
Expand All @@ -33,6 +50,13 @@ function location_init(site_config, ssl) {

return site_config;
}

/**
*
* @param {Object} params
* @param {Array.<Object, string>} params.obj
* @param {Object} params.defaults
*/
function set_defaults(params) {
var obj = params.obj[0],
prop = params.obj[1],
Expand All @@ -43,20 +67,25 @@ function set_defaults(params) {
_clone(defaults);
}

/**
*
* @param {Object} config
* @param {Object} default_config
* @param {string} project_folder
*/
function initialize_properties_config(config, default_config, project_folder) {
config.environment = config.env = config.environment || config.env || default_config.environment;
config.application = config.application || {};
config.components = config.components || {};

if(config.application.folders) {
Object.keys(config.application.folders).forEach(function(type) {
var short_path = config.application.folders[type],
full_path = path.resolve(project_folder, short_path);
var folders = config.application.folders;

config.application.folders[type] = full_path;
Object.keys(folders).forEach(function(type) {
folders[type] = path.resolve(project_folder, folders[type]);
});

if(config.application.folders.views) {
if(folders.views) {
set_defaults({
obj: [config.application, 'express'],
defaults: {
Expand Down Expand Up @@ -96,7 +125,7 @@ function initialize_site_config(config, default_config, project_folder) {
/**
*
* @param {Object} config
* @param {Object} default_ssl_config
* @param {Object} [default_ssl_config]
*/
function check_ssl_property(config, default_ssl_config) {
if(typeof config.ssl !== 'undefined') {
Expand All @@ -106,7 +135,7 @@ function initialize_site_config(config, default_config, project_folder) {

if(config.ssl.pfx) {
config.ssl.pfx = path.resolve(project_folder, config.ssl.pfx);
} else {
} else if(config.ssl.key && config.ssl.cert) {
config.ssl.key = path.resolve(project_folder, config.ssl.key);
config.ssl.cert = path.resolve(project_folder, config.ssl.cert);
}
Expand All @@ -123,22 +152,6 @@ function initialize_site_config(config, default_config, project_folder) {
check_ssl_property(config.site.global, config.site.ssl);
}

/**
*
* @param {Object} site_config
* @param {Object} default_config
*/
function set_default(site_config, default_config) {
if(!site_config.host) {
site_config.host = default_config.host;
}
if(_includes(['127.0.0.1', 'localhost'], site_config.host) &&
!site_config.port
) {
site_config.port = default_config.port;
}
}

if(!config.site) {
config.site = _clone(default_config.site);
return;
Expand All @@ -151,7 +164,19 @@ function initialize_site_config(config, default_config, project_folder) {
if(!config.site.local) {
config.site.local = _clone(default_config.site.local);
} else {
set_default(config.site.local, default_config.site.local);
var local_site_config = config.site.local;
var local_default_config = default_config.site.local;

if(!local_site_config.host) {
local_site_config.host = local_default_config.host;
}

if(
_includes(['127.0.0.1', 'localhost'], local_site_config.host) &&
!local_site_config.port
) {
local_site_config.port = local_default_config.port;
}
}

if(!config.site.global) {
Expand All @@ -160,18 +185,21 @@ function initialize_site_config(config, default_config, project_folder) {

initialize_ssl_config();
}

/**
*
* @param {Object} config
*/
function initialize_additional_site_config(config) {
location_init(config.site.local, !!config.site.local.ssl);
location_init(config.site.global, !!config.site.global.ssl);
}
function initialize_session_config(config, default_config) {
var session_config = config.application.session,
default_session_config = default_config.application.session;

if(session_config && !session_config.secret) {
session_config.secret = default_session_config.secret;
}
}
/**
*
* @param {Object} config
* @param {Object} default_config
*/
function initialize_db_config(config, default_config) {
config.db = _defaults(config.db || {}, default_config.db);
}
Expand Down Expand Up @@ -228,32 +256,32 @@ function initialize_default_config(options) {
};
}

var ConfigPrototype = {
by_path: function by_path(path) {
var parts = path.split('.'),
tmp = this,
part, i, len = parts.length;

for (i = 0; i < len; ++i) {
part = parts[i];
tmp = tmp[part];

if (typeof tmp === 'undefined') {
return null;
}
}

return tmp;
},
byPath: function byPath(path) {
return this.by_path(path);
}
};
// var ConfigPrototype = {
// by_path: function by_path(path) {
// var parts = path.split('.'),
// tmp = this,
// part, i, len = parts.length;
//
// for (i = 0; i < len; ++i) {
// part = parts[i];
// tmp = tmp[part];
//
// if (typeof tmp === 'undefined') {
// return null;
// }
// }
//
// return tmp;
// },
// byPath: function byPath(path) {
// return this.by_path(path);
// }
// };

/**
*
* @param options
* @returns {Object}
* @param {Object} options
* @returns {IFConfig}
*/
function ConfigurationBuilder(options) {
var default_config = initialize_default_config(options);
Expand All @@ -269,7 +297,6 @@ function ConfigurationBuilder(options) {
initialize_properties_config(config, default_config, options.project_folder);
initialize_site_config(config, default_config, options.project_folder);
initialize_additional_site_config(config);
initialize_session_config(config, default_config);
initialize_db_config(config, default_config);

return config;
Expand Down

0 comments on commit 108a1ea

Please sign in to comment.