New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

actin

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

actin - npm Package Compare versions

Comparing version 0.0.0 to 0.0.1

test/sampleApp/controllers/home.js

204

lib/index.js

@@ -0,6 +1,210 @@

var Path = require('path');
var Callsite = require('callsite');
var Glob = require('glob');
var Hoek = require('hoek');
var Actin = function (options) {
this.settings = Hoek.applyToDefaults(Actin.defaults, options || {});
return this;
};
Actin.defaults = {
'controllers': {
'capitalize': true,
'cwd': null,
'extension': '.js',
'folderName': 'controllers',
'ignoreFiles': [],
'onLoad': null,
'onLoadSync': null,
'pattern': '*'
},
'models': {
'capitalize': true,
'cwd': null,
'extension': '.js',
'folderName': 'models',
'ignoreFiles': [],
'instantiate': false,
'instanceClient': null,
'instanceOptions': {},
'onLoad': null,
'onLoadSync': null,
'pattern': '*'
}
};
// Actin.prototype.Controllers =
Actin.prototype.controllers = function (options, callback) {
if (typeof options === 'function') {
callback = options;
options = {};
}
var settings = Hoek.applyToDefaults(this.settings.controllers, options);
var controllers = {};
// TODO: i don't like this code smell
var calleeDirName = Path.dirname(Callsite()[1].getFileName());
var cwd = [calleeDirName, settings.folderName].join('/');
if (settings.cwd) {
cwd = settings.cwd;
}
Glob(settings.pattern + settings.extension, {cwd: cwd}, function (err, files) {
for(var i in files) {
var file = Path.basename(files[i]);
var filename = Path.basename(files[i], settings.extension);
// TODO: make this fuzzy/glob search
// if (settings.ignoreFiles.indexOf(filename) >= 0) {
// continue;
// }
var key = filename;
if (settings.capitalize) {
key = filename.charAt(0).toUpperCase() + filename.slice(1);
}
controllers[key] = require([cwd, files[i]].join('/'));
}
if (typeof settings.onLoad === 'function') {
return settings.onLoad(controllers, callback);
}
return callback(null, controllers);
});
};
// Actin.prototype.Controllers.sync =
Actin.prototype.controllersSync = function (options) {
var settings = Hoek.applyToDefaults(this.settings.controllers, options || {});
var controllers = {};
// TODO: i don't like this code smell
var calleeDirName = Path.dirname(Callsite()[1].getFileName());
var cwd = [calleeDirName, settings.folderName].join('/');
if (settings.cwd) {
cwd = settings.cwd;
}
var files = Glob.sync(settings.pattern + settings.extension, {cwd: cwd});
for(var i in files) {
var file = Path.basename(files[i]);
var filename = Path.basename(files[i], settings.extension);
// TODO: make this fuzzy/glob search
// if (settings.ignoreFiles.indexOf(filename) >= 0) {
// continue;
// }
var key = filename;
if (settings.capitalize) {
key = filename.charAt(0).toUpperCase() + filename.slice(1);
}
controllers[key] = require([cwd, files[i]].join('/'));
}
if (typeof settings.onLoadSync === 'function') {
return settings.onLoadSync(controllers);
}
return controllers;
};
Actin.prototype.models = function (options, callback) {
if (typeof options === 'function') {
callback = options;
options = {};
}
var settings = Hoek.applyToDefaults(this.settings.models, options);
var models = {};
// TODO: i don't like this code smell
var calleeDirName = Path.dirname(Callsite()[1].getFileName());
var cwd = [calleeDirName, settings.folderName].join('/');
if (settings.cwd) {
cwd = settings.cwd;
}
Glob(settings.pattern + settings.extension, {cwd: cwd}, function (err, files) {
for(var i in files) {
var file = Path.basename(files[i]);
var filename = Path.basename(files[i], settings.extension);
// TODO: make this fuzzy/glob search
// if (settings.ignoreFiles.indexOf(filename) >= 0) {
// continue;
// }
var key = filename;
if (settings.capitalize) {
key = filename.charAt(0).toUpperCase() + filename.slice(1);
}
if (settings.instantiate) {
var ModelClass = require([cwd, files[i]].join('/'));
models[key] = new ModelClass(settings.instanceOptions, settings.instanceClient);
} else {
models[key] = require([cwd, files[i]].join('/'));
}
}
if (typeof settings.onLoad === 'function') {
return settings.onLoad(models, callback);
}
return callback(null, models);
});
};
// Actin.prototype.Controllers.sync =
Actin.prototype.modelsSync = function (options) {
var settings = Hoek.applyToDefaults(this.settings.models, options || {});
var models = {};
// TODO: i don't like this code smell
var calleeDirName = Path.dirname(Callsite()[1].getFileName());
var cwd = [calleeDirName, settings.folderName].join('/');
if (settings.cwd) {
cwd = settings.cwd;
}
var files = Glob.sync(settings.pattern + settings.extension, {cwd: cwd});
for(var i in files) {
var file = Path.basename(files[i]);
var filename = Path.basename(files[i], settings.extension);
// TODO: make this fuzzy/glob search
// if (settings.ignoreFiles.indexOf(filename) >= 0) {
// continue;
// }
var key = filename;
if (settings.capitalize) {
key = filename.charAt(0).toUpperCase() + filename.slice(1);
}
if (settings.instantiate) {
var ModelClass = require([cwd, files[i]].join('/'));
models[key] = new ModelClass(settings.instanceOptions, settings.instanceClient);
} else {
models[key] = require([cwd, files[i]].join('/'));
}
}
if (typeof settings.onLoadSync === 'function') {
return settings.onLoadSync(models);
}
return models;
};
module.exports = Actin;

10

package.json
{
"name": "actin",
"version": "0.0.0",
"version": "0.0.1",
"description": "auto loading controllers for hapi projects",
"main": "index.js",
"scripts": {
"test": "make test"
},

@@ -14,6 +13,11 @@ "repository": {

"author": "Van Nguyen <thegoleffect@gmail.com>",
"license": "BSD-2-Clause",
"license": "MIT",
"bugs": {
"url": "https://github.com/thegoleffect/actin/issues"
},
"dependencies": {
"callsite": "^1.0.0",
"glob": "^5.0.3",
"hoek": "^2.12.0"
}
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc