View example.js
//DO
function example(options) {
//this clearly identifies what the expected parameters are
const {
injectedLibrary,
otherThing
} = options;
this.methodOne = function(){
injectedLibrary.doSomething('methodOne')
View example.js
function example(options) {
const {injectedLibrary} = options;
//DON'T
this.methodOne = function(){
doSomethingInjectedLibrary('methodOne')
}
this.methodTwo = function(){
doSomethingInjectedLibrary('methodTwo')
View ThingViewModel.test.js
describe('when creating a ThingViewModel', function () {
var ctorArgs;
beforeEach(function(){
ctorArgs = {
ThingApi: {
getThings: function(){}
},
ThingUtility: {}
}
});
View ThingViewModel.test.js
describe('when creating a ThingViewModel', function () {
it('should return an object', function () {
var thingViewModel = new ThingViewModel();
expect(typeof thingViewModel).toBe('object');
});
});
View MyModule.js
'use strict'
var MyModule = {
foo: function() {
//content with external dependency
return $.doSomething();
},
bar: function() {
//content
View MyModule.js
;(function(root, factory) {
if (typeof define === 'function' && define.amd) {
define(['jquery'], factory);
} else if (typeof exports === 'object') {
module.exports = factory(require('jquery'));
} else {
root.MyModule = factory(root.jQuery);
}
}(this, function($) {
'use strict'
View uglify.js
module.exports = {
options: {
...
},
build: {
files: {
'dist/MyCompanyModules.js': [
...,
'node_modules/MyModule/build/MyModule.js'
...
View package.json
{
"name": "MyCompany",
"description": "example package.json",
"version": "0.0.1",
"scripts": {
"start": "grunt watch",
"build": "grunt build",
"test": "grunt test",
"analysis": "grunt analysis"
},
View namepsace-example.js
window.MyCompany.Utilities = {
foo: window.MyModule.foo,
bar: window.MyModule.bar
}
View knockout.debug.js
(function(undefined){
// (0, eval)('this') is a robust way of getting a reference to the global object
// For details, see http://stackoverflow.com/questions/14119988/return-this-0-evalthis/14120023#14120023
var window = this || (0, eval)('this'),
document = window['document'],
navigator = window['navigator'],
jQueryInstance = window["jQuery"],
JSON = window["JSON"];
(function(factory) {