From 51cb868699d21a7197c3671f1240bec03a75551d Mon Sep 17 00:00:00 2001 From: Bill Wallace <wayfarer3130@gmail.com> Date: Wed, 5 Mar 2025 10:28:59 -0500 Subject: [PATCH 1/2] fix: dependency updates in preparation for adding typescript --- .gitignore | 4 + Gruntfile.js | 160 ++++++++++++----------- dist/loglevel.js | 293 ------------------------------------------- dist/loglevel.min.js | 3 - package.json | 11 +- 5 files changed, 93 insertions(+), 378 deletions(-) delete mode 100644 dist/loglevel.js delete mode 100644 dist/loglevel.min.js diff --git a/.gitignore b/.gitignore index 78f4955..37d0c52 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,7 @@ npm-debug.log _SpecRunner.html .grunt + +dist/ +*.code-workspace +package-lock.json diff --git a/Gruntfile.js b/Gruntfile.js index 5af9f54..bd5615e 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,40 +1,41 @@ -'use strict'; +"use strict"; -var Jasmine = require('jasmine'); +var Jasmine = require("jasmine"); module.exports = function (grunt) { var jasmineRequireJsOptions = { - specs: 'test/*-test.js', - helpers: 'test/*-helper.js', + specs: "test/*-test.js", + helpers: "test/*-helper.js", }; // Project configuration. grunt.initConfig({ // Metadata. - pkg: grunt.file.readJSON('package.json'), - banner: '/*! <%= pkg.name %> - v<%= pkg.version %>' + - ' - <%= pkg.homepage %>' + - ' - (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>' + - ' - licensed <%= pkg.license %> */\n', + pkg: grunt.file.readJSON("package.json"), + banner: + "/*! <%= pkg.name %> - v<%= pkg.version %>" + + " - <%= pkg.homepage %>" + + ' - (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>' + + " - licensed <%= pkg.license %> */\n", // Task configuration. concat: { options: { - banner: '<%= banner %>', - stripBanners: true + banner: "<%= banner %>", + stripBanners: true, }, dist: { - src: ['lib/<%= pkg.name %>.js'], - dest: 'dist/<%= pkg.name %>.js' - } + src: ["lib/<%= pkg.name %>.js"], + dest: "dist/<%= pkg.name %>.js", + }, }, uglify: { options: { - banner: '<%= banner %>' + banner: "<%= banner %>", }, dist: { - src: '<%= concat.dist.dest %>', - dest: 'dist/<%= pkg.name %>.min.js' - } + src: "<%= concat.dist.dest %>", + dest: "dist/<%= pkg.name %>.min.js", + }, }, jasmine: { requirejs: { @@ -42,124 +43,131 @@ module.exports = function (grunt) { options: { specs: jasmineRequireJsOptions.specs, helpers: jasmineRequireJsOptions.helpers, - template: require('./vendor/grunt-template-jasmine-requirejs') - } + template: require("./vendor/grunt-template-jasmine-requirejs"), + }, }, global: { - src: 'lib/**/*.js', + src: "lib/**/*.js", options: { - specs: 'test/global-integration.js', - } + specs: "test/global-integration.js", + }, }, context: { - src: 'test/test-context-using-apply.generated.js', + src: "test/test-context-using-apply.generated.js", options: { - specs: 'test/global-integration-with-new-context.js', - } - } + specs: "test/global-integration-with-new-context.js", + }, + }, }, jasmine_node: { options: { - specs: ['test/node-integration.js'] - } + specs: ["test/node-integration.js"], + }, }, open: { jasmine: { - path: 'http://127.0.0.1:8000/_SpecRunner.html' - } + path: "http://127.0.0.1:8000/_SpecRunner.html", + }, }, connect: { test: { port: 8000, - keepalive: true - } + keepalive: true, + }, }, jshint: { options: { - jshintrc: '.jshintrc' + jshintrc: ".jshintrc", }, gruntfile: { - src: 'Gruntfile.js' + src: "Gruntfile.js", }, lib: { options: { - jshintrc: 'lib/.jshintrc' + jshintrc: "lib/.jshintrc", }, - src: ['lib/**/*.js'] + src: ["lib/**/*.js"], }, test: { options: { - jshintrc: 'test/.jshintrc' + jshintrc: "test/.jshintrc", }, - src: ['test/*.js', '!test/*.generated.js'] - } + src: ["test/*.js", "!test/*.generated.js"], + }, }, watch: { gruntfile: { - files: '<%= jshint.gruntfile.src %>', - tasks: ['jshint:gruntfile'] + files: "<%= jshint.gruntfile.src %>", + tasks: ["jshint:gruntfile"], }, lib: { - files: '<%= jshint.lib.src %>', - tasks: ['jshint:lib', 'test'] + files: "<%= jshint.lib.src %>", + tasks: ["jshint:lib", "test"], }, test: { - files: '<%= jshint.test.src %>', - tasks: ['jshint:test', 'test'] - } + files: "<%= jshint.test.src %>", + tasks: ["jshint:test", "test"], + }, }, preprocess: { "test-context-using-apply": { - src: 'test/test-context-using-apply.js', - dest: 'test/test-context-using-apply.generated.js' - } + src: "test/test-context-using-apply.js", + dest: "test/test-context-using-apply.generated.js", + }, + }, + clean: { + test: ["test/test-context-using-apply.generated.js"], }, - clean:{ - test:['test/test-context-using-apply.generated.js'] - } }); // These plugins provide necessary tasks. - grunt.loadNpmTasks('grunt-contrib-concat'); - grunt.loadNpmTasks('grunt-contrib-uglify'); - grunt.loadNpmTasks('grunt-contrib-jasmine'); - grunt.loadNpmTasks('grunt-contrib-jshint'); - grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks("grunt-contrib-concat"); + grunt.loadNpmTasks("grunt-contrib-uglify"); + grunt.loadNpmTasks("grunt-contrib-jasmine"); + grunt.loadNpmTasks("grunt-contrib-jshint"); + grunt.loadNpmTasks("grunt-contrib-watch"); - grunt.loadNpmTasks('grunt-contrib-connect'); - grunt.loadNpmTasks('grunt-open'); - grunt.loadNpmTasks('grunt-preprocess'); - grunt.loadNpmTasks('grunt-contrib-clean'); + grunt.loadNpmTasks("grunt-contrib-connect"); + grunt.loadNpmTasks("grunt-open"); + grunt.loadNpmTasks("grunt-preprocess"); + grunt.loadNpmTasks("grunt-contrib-clean"); // Run Jasmine with Node.js tests (as opposed to browser tests). // // NOTE: This is designed for Jasmine 2.4, which matches the version used // in `grunt-contrib-jasmine`. If that package is updated, this should also // be updated to match. - grunt.registerTask('jasmine_node', 'Run Jasmine in Node.js', function() { - var done = this.async(); - + grunt.registerTask("jasmine_node", "Run Jasmine in Node.js", function () { var jasmine = new Jasmine({ projectBaseDir: __dirname }); - jasmine.onComplete(function(success) { - done(success); - }); jasmine.execute(this.options().specs); }); // Build a distributable release - grunt.registerTask('dist', ['test', 'dist-build']); - grunt.registerTask('dist-build', ['concat', 'uglify']); + grunt.registerTask("dist", ["test", "dist-build"]); + grunt.registerTask("dist-build", ["concat", "uglify"]); // Check everything is good - grunt.registerTask('test', ['jshint', 'test-browser', 'test-node']); - grunt.registerTask('test-browser', ['jasmine:global', 'test-browser-context', 'jasmine:requirejs']); - grunt.registerTask('test-browser-context', ['preprocess', 'jasmine:context', 'clean:test']); - grunt.registerTask('test-node', ['jasmine_node']); + grunt.registerTask("test", ["jshint", "test-browser", "test-node"]); + grunt.registerTask("test-browser", [ + "jasmine:global", + "test-browser-context", + "jasmine:requirejs", + ]); + grunt.registerTask("test-browser-context", [ + "preprocess", + "jasmine:context", + "clean:test", + ]); + grunt.registerTask("test-node", ["jasmine_node"]); // Test with a live server and an actual browser - grunt.registerTask('integration-test', ['jasmine:requirejs:src:build', 'open:jasmine', 'connect:test:keepalive']); + grunt.registerTask("integration-test", [ + "jasmine:requirejs:src:build", + "open:jasmine", + "connect:test:keepalive", + ]); // Default task. - grunt.registerTask('default', 'test'); + grunt.registerTask("default", "test"); }; diff --git a/dist/loglevel.js b/dist/loglevel.js deleted file mode 100644 index 893e4cb..0000000 --- a/dist/loglevel.js +++ /dev/null @@ -1,293 +0,0 @@ -/*! loglevel - v1.9.2 - https://github.com/pimterry/loglevel - (c) 2024 Tim Perry - licensed MIT */ -(function (root, definition) { - "use strict"; - if (typeof define === 'function' && define.amd) { - define(definition); - } else if (typeof module === 'object' && module.exports) { - module.exports = definition(); - } else { - root.log = definition(); - } -}(this, function () { - "use strict"; - - // Slightly dubious tricks to cut down minimized file size - var noop = function() {}; - var undefinedType = "undefined"; - - var logMethods = [ - "trace", - "debug", - "info", - "warn", - "error" - ]; - - var _loggersByName = {}; - var defaultLogger = null; - - // Build the best logging method possible for this env - // Wherever possible we want to bind, not wrap, to preserve stack traces - function defaultMethodFactory(methodName, _level, _loggerName) { - if (typeof console !== undefinedType) { - var consoleMethod = console[methodName] || console.log; - if (typeof consoleMethod === "function") { - return consoleMethod.bind(console); - } - } - - return noop; - } - - // These private functions always need `this` to be set properly - - function replaceLoggingMethods() { - /*jshint validthis:true */ - var level = this.getLevel(); - - // Replace the actual methods. - for (var i = 0; i < logMethods.length; i++) { - var methodName = logMethods[i]; - this[methodName] = (i < level) ? - noop : - this.methodFactory(methodName, level, this.name); - } - - // Make `log.log` an alias to ensure compatibility with `console.*`. - this.log = this.info; - - // Return any important warnings. - if (typeof console === undefinedType && level < this.levels.SILENT) { - return "No console available for logging"; - } - } - - function Logger(name, factory) { - // Private instance variables. - var self = this; - /** - * The level inherited from a parent logger (or a global default). We - * cache this here rather than delegating to the parent so that it stays - * in sync with the actual logging methods that we have installed (the - * parent could change levels but we might not have rebuilt the loggers - * in this child yet). - * @type {number} - */ - var inheritedLevel; - /** - * The default level for this logger, if any. If set, this overrides - * `inheritedLevel`. - * @type {number|null} - */ - var defaultLevel; - /** - * A user-specific level for this logger. If set, this overrides - * `defaultLevel`. - * @type {number|null} - */ - var userLevel; - - var storageKey = "loglevel"; - if (typeof name === "string") { - storageKey += ":" + name; - } else if (typeof name === "symbol") { - storageKey = undefined; - } - - function persistLevelIfPossible(levelNum) { - var levelName = (logMethods[levelNum] || 'silent').toUpperCase(); - - if (typeof window === undefinedType || !storageKey) return; - - // Use localStorage if available - try { - window.localStorage[storageKey] = levelName; - return; - } catch (ignore) {} - - // Use session cookie as fallback - try { - window.document.cookie = - encodeURIComponent(storageKey) + "=" + levelName + ";"; - } catch (ignore) {} - } - - function getPersistedLevel() { - var storedLevel; - - if (typeof window === undefinedType || !storageKey) return; - - try { - storedLevel = window.localStorage[storageKey]; - } catch (ignore) {} - - // Fallback to cookies if local storage gives us nothing - if (typeof storedLevel === undefinedType) { - try { - var cookie = window.document.cookie; - var cookieName = encodeURIComponent(storageKey); - var location = cookie.indexOf(cookieName + "="); - if (location !== -1) { - storedLevel = /^([^;]+)/.exec( - cookie.slice(location + cookieName.length + 1) - )[1]; - } - } catch (ignore) {} - } - - // If the stored level is not valid, treat it as if nothing was stored. - if (self.levels[storedLevel] === undefined) { - storedLevel = undefined; - } - - return storedLevel; - } - - function clearPersistedLevel() { - if (typeof window === undefinedType || !storageKey) return; - - // Use localStorage if available - try { - window.localStorage.removeItem(storageKey); - } catch (ignore) {} - - // Use session cookie as fallback - try { - window.document.cookie = - encodeURIComponent(storageKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC"; - } catch (ignore) {} - } - - function normalizeLevel(input) { - var level = input; - if (typeof level === "string" && self.levels[level.toUpperCase()] !== undefined) { - level = self.levels[level.toUpperCase()]; - } - if (typeof level === "number" && level >= 0 && level <= self.levels.SILENT) { - return level; - } else { - throw new TypeError("log.setLevel() called with invalid level: " + input); - } - } - - /* - * - * Public logger API - see https://github.com/pimterry/loglevel for details - * - */ - - self.name = name; - - self.levels = { "TRACE": 0, "DEBUG": 1, "INFO": 2, "WARN": 3, - "ERROR": 4, "SILENT": 5}; - - self.methodFactory = factory || defaultMethodFactory; - - self.getLevel = function () { - if (userLevel != null) { - return userLevel; - } else if (defaultLevel != null) { - return defaultLevel; - } else { - return inheritedLevel; - } - }; - - self.setLevel = function (level, persist) { - userLevel = normalizeLevel(level); - if (persist !== false) { // defaults to true - persistLevelIfPossible(userLevel); - } - - // NOTE: in v2, this should call rebuild(), which updates children. - return replaceLoggingMethods.call(self); - }; - - self.setDefaultLevel = function (level) { - defaultLevel = normalizeLevel(level); - if (!getPersistedLevel()) { - self.setLevel(level, false); - } - }; - - self.resetLevel = function () { - userLevel = null; - clearPersistedLevel(); - replaceLoggingMethods.call(self); - }; - - self.enableAll = function(persist) { - self.setLevel(self.levels.TRACE, persist); - }; - - self.disableAll = function(persist) { - self.setLevel(self.levels.SILENT, persist); - }; - - self.rebuild = function () { - if (defaultLogger !== self) { - inheritedLevel = normalizeLevel(defaultLogger.getLevel()); - } - replaceLoggingMethods.call(self); - - if (defaultLogger === self) { - for (var childName in _loggersByName) { - _loggersByName[childName].rebuild(); - } - } - }; - - // Initialize all the internal levels. - inheritedLevel = normalizeLevel( - defaultLogger ? defaultLogger.getLevel() : "WARN" - ); - var initialLevel = getPersistedLevel(); - if (initialLevel != null) { - userLevel = normalizeLevel(initialLevel); - } - replaceLoggingMethods.call(self); - } - - /* - * - * Top-level API - * - */ - - defaultLogger = new Logger(); - - defaultLogger.getLogger = function getLogger(name) { - if ((typeof name !== "symbol" && typeof name !== "string") || name === "") { - throw new TypeError("You must supply a name when creating a logger."); - } - - var logger = _loggersByName[name]; - if (!logger) { - logger = _loggersByName[name] = new Logger( - name, - defaultLogger.methodFactory - ); - } - return logger; - }; - - // Grab the current global log variable in case of overwrite - var _log = (typeof window !== undefinedType) ? window.log : undefined; - defaultLogger.noConflict = function() { - if (typeof window !== undefinedType && - window.log === defaultLogger) { - window.log = _log; - } - - return defaultLogger; - }; - - defaultLogger.getLoggers = function getLoggers() { - return _loggersByName; - }; - - // ES6 default export, for compatibility - defaultLogger['default'] = defaultLogger; - - return defaultLogger; -})); diff --git a/dist/loglevel.min.js b/dist/loglevel.min.js deleted file mode 100644 index 5d1b396..0000000 --- a/dist/loglevel.min.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! loglevel - v1.9.2 - https://github.com/pimterry/loglevel - (c) 2024 Tim Perry - licensed MIT */ - -!function(e,o){"use strict";"function"==typeof define&&define.amd?define(o):"object"==typeof module&&module.exports?module.exports=o():e.log=o()}(this,function(){"use strict";var l=function(){},a="undefined",s=["trace","debug","info","warn","error"],d={},v=null;function w(e,o,n){if(typeof console!==a){var t=console[e]||console.log;if("function"==typeof t)return t.bind(console)}return l}function g(){for(var e=this.getLevel(),o=0;o<s.length;o++){var n=s[o];this[n]=o<e?l:this.methodFactory(n,e,this.name)}if(this.log=this.info,typeof console===a&&e<this.levels.SILENT)return"No console available for logging"}function n(e,o){var n,t,l,i=this,r="loglevel";function c(){var e;if(typeof window!==a&&r){try{e=window.localStorage[r]}catch(e){}if(typeof e===a)try{var o=window.document.cookie,n=encodeURIComponent(r),t=o.indexOf(n+"=");-1!==t&&(e=/^([^;]+)/.exec(o.slice(t+n.length+1))[1])}catch(e){}return void 0===i.levels[e]&&(e=void 0),e}}function f(e){var o=e;if("string"==typeof o&&void 0!==i.levels[o.toUpperCase()]&&(o=i.levels[o.toUpperCase()]),"number"==typeof o&&0<=o&&o<=i.levels.SILENT)return o;throw new TypeError("log.setLevel() called with invalid level: "+e)}"string"==typeof e?r+=":"+e:"symbol"==typeof e&&(r=void 0),i.name=e,i.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},i.methodFactory=o||w,i.getLevel=function(){return null!=l?l:null!=t?t:n},i.setLevel=function(e,o){return l=f(e),!1!==o&&function(e){var o=(s[e]||"silent").toUpperCase();if(typeof window!==a&&r){try{return window.localStorage[r]=o}catch(e){}try{window.document.cookie=encodeURIComponent(r)+"="+o+";"}catch(e){}}}(l),g.call(i)},i.setDefaultLevel=function(e){t=f(e),c()||i.setLevel(e,!1)},i.resetLevel=function(){l=null,function(){if(typeof window!==a&&r){try{window.localStorage.removeItem(r)}catch(e){}try{window.document.cookie=encodeURIComponent(r)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}(),g.call(i)},i.enableAll=function(e){i.setLevel(i.levels.TRACE,e)},i.disableAll=function(e){i.setLevel(i.levels.SILENT,e)},i.rebuild=function(){if(v!==i&&(n=f(v.getLevel())),g.call(i),v===i)for(var e in d)d[e].rebuild()},n=f(v?v.getLevel():"WARN");var u=c();null!=u&&(l=f(u)),g.call(i)}(v=new n).getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var o=d[e];return o||(o=d[e]=new n(e,v.methodFactory)),o};var e=typeof window!==a?window.log:void 0;return v.noConflict=function(){return typeof window!==a&&window.log===v&&(window.log=e),v},v.getLoggers=function(){return d},v.default=v}); \ No newline at end of file diff --git a/package.json b/package.json index 565008c..72ce0be 100644 --- a/package.json +++ b/package.json @@ -35,24 +35,23 @@ "dist-build": "grunt dist-build", "watch": "grunt watch" }, - "dependencies": {}, "devDependencies": { "@types/core-js": "2.5.0", "@types/node": "^12.0.4", - "grunt": "~1.5.3", - "grunt-cli": "^1.4.3", + "grunt": "~1.6.1", + "grunt-cli": "^1.5.0", "grunt-contrib-clean": "^1.1.0", "grunt-contrib-concat": "~0.5.0", "grunt-contrib-connect": "^3.0.0", "grunt-contrib-jasmine": "^4.0.0", "grunt-contrib-jshint": "^3.2.0", - "grunt-contrib-uglify": "^3.4.0", + "grunt-contrib-uglify": "^5.2.2", "grunt-contrib-watch": "^1.1.0", "grunt-open": "~0.2.3", "grunt-preprocess": "^5.1.0", - "jasmine": "^2.4.1", + "jasmine": "^5.6.0", "ts-node": "^10.9.2", - "typescript": "^3.5.1" + "typescript": "^5.8.2" }, "keywords": [ "log", From ef289b820a0cb564a1a51bbfcde3656aceb5a028 Mon Sep 17 00:00:00 2001 From: Bill Wallace <wayfarer3130@gmail.com> Date: Wed, 5 Mar 2025 12:18:57 -0500 Subject: [PATCH 2/2] Undo quote change --- Gruntfile.js | 155 +++++++++++++++++++++++---------------------------- 1 file changed, 71 insertions(+), 84 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index bd5615e..aba2f90 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,41 +1,40 @@ -"use strict"; +'use strict'; -var Jasmine = require("jasmine"); +var Jasmine = require('jasmine'); module.exports = function (grunt) { var jasmineRequireJsOptions = { - specs: "test/*-test.js", - helpers: "test/*-helper.js", + specs: 'test/*-test.js', + helpers: 'test/*-helper.js', }; // Project configuration. grunt.initConfig({ // Metadata. - pkg: grunt.file.readJSON("package.json"), - banner: - "/*! <%= pkg.name %> - v<%= pkg.version %>" + - " - <%= pkg.homepage %>" + - ' - (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>' + - " - licensed <%= pkg.license %> */\n", + pkg: grunt.file.readJSON('package.json'), + banner: '/*! <%= pkg.name %> - v<%= pkg.version %>' + + ' - <%= pkg.homepage %>' + + ' - (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>' + + ' - licensed <%= pkg.license %> */\n', // Task configuration. concat: { options: { - banner: "<%= banner %>", - stripBanners: true, + banner: '<%= banner %>', + stripBanners: true }, dist: { - src: ["lib/<%= pkg.name %>.js"], - dest: "dist/<%= pkg.name %>.js", - }, + src: ['lib/<%= pkg.name %>.js'], + dest: 'dist/<%= pkg.name %>.js' + } }, uglify: { options: { - banner: "<%= banner %>", + banner: '<%= banner %>' }, dist: { - src: "<%= concat.dist.dest %>", - dest: "dist/<%= pkg.name %>.min.js", - }, + src: '<%= concat.dist.dest %>', + dest: 'dist/<%= pkg.name %>.min.js' + } }, jasmine: { requirejs: { @@ -43,131 +42,119 @@ module.exports = function (grunt) { options: { specs: jasmineRequireJsOptions.specs, helpers: jasmineRequireJsOptions.helpers, - template: require("./vendor/grunt-template-jasmine-requirejs"), - }, + template: require('./vendor/grunt-template-jasmine-requirejs') + } }, global: { - src: "lib/**/*.js", + src: 'lib/**/*.js', options: { - specs: "test/global-integration.js", - }, + specs: 'test/global-integration.js', + } }, context: { - src: "test/test-context-using-apply.generated.js", + src: 'test/test-context-using-apply.generated.js', options: { - specs: "test/global-integration-with-new-context.js", - }, - }, + specs: 'test/global-integration-with-new-context.js', + } + } }, jasmine_node: { options: { - specs: ["test/node-integration.js"], - }, + specs: ['test/node-integration.js'] + } }, open: { jasmine: { - path: "http://127.0.0.1:8000/_SpecRunner.html", - }, + path: 'http://127.0.0.1:8000/_SpecRunner.html' + } }, connect: { test: { port: 8000, - keepalive: true, - }, + keepalive: true + } }, jshint: { options: { - jshintrc: ".jshintrc", + jshintrc: '.jshintrc' }, gruntfile: { - src: "Gruntfile.js", + src: 'Gruntfile.js' }, lib: { options: { - jshintrc: "lib/.jshintrc", + jshintrc: 'lib/.jshintrc' }, - src: ["lib/**/*.js"], + src: ['lib/**/*.js'] }, test: { options: { - jshintrc: "test/.jshintrc", + jshintrc: 'test/.jshintrc' }, - src: ["test/*.js", "!test/*.generated.js"], - }, + src: ['test/*.js', '!test/*.generated.js'] + } }, watch: { gruntfile: { - files: "<%= jshint.gruntfile.src %>", - tasks: ["jshint:gruntfile"], + files: '<%= jshint.gruntfile.src %>', + tasks: ['jshint:gruntfile'] }, lib: { - files: "<%= jshint.lib.src %>", - tasks: ["jshint:lib", "test"], + files: '<%= jshint.lib.src %>', + tasks: ['jshint:lib', 'test'] }, test: { - files: "<%= jshint.test.src %>", - tasks: ["jshint:test", "test"], - }, + files: '<%= jshint.test.src %>', + tasks: ['jshint:test', 'test'] + } }, preprocess: { "test-context-using-apply": { - src: "test/test-context-using-apply.js", - dest: "test/test-context-using-apply.generated.js", - }, - }, - clean: { - test: ["test/test-context-using-apply.generated.js"], + src: 'test/test-context-using-apply.js', + dest: 'test/test-context-using-apply.generated.js' + } }, + clean:{ + test:['test/test-context-using-apply.generated.js'] + } }); // These plugins provide necessary tasks. - grunt.loadNpmTasks("grunt-contrib-concat"); - grunt.loadNpmTasks("grunt-contrib-uglify"); - grunt.loadNpmTasks("grunt-contrib-jasmine"); - grunt.loadNpmTasks("grunt-contrib-jshint"); - grunt.loadNpmTasks("grunt-contrib-watch"); + grunt.loadNpmTasks('grunt-contrib-concat'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-jasmine'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-contrib-watch'); - grunt.loadNpmTasks("grunt-contrib-connect"); - grunt.loadNpmTasks("grunt-open"); - grunt.loadNpmTasks("grunt-preprocess"); - grunt.loadNpmTasks("grunt-contrib-clean"); + grunt.loadNpmTasks('grunt-contrib-connect'); + grunt.loadNpmTasks('grunt-open'); + grunt.loadNpmTasks('grunt-preprocess'); + grunt.loadNpmTasks('grunt-contrib-clean'); // Run Jasmine with Node.js tests (as opposed to browser tests). // // NOTE: This is designed for Jasmine 2.4, which matches the version used // in `grunt-contrib-jasmine`. If that package is updated, this should also // be updated to match. - grunt.registerTask("jasmine_node", "Run Jasmine in Node.js", function () { + grunt.registerTask('jasmine_node', 'Run Jasmine in Node.js', function() { var jasmine = new Jasmine({ projectBaseDir: __dirname }); jasmine.execute(this.options().specs); }); // Build a distributable release - grunt.registerTask("dist", ["test", "dist-build"]); - grunt.registerTask("dist-build", ["concat", "uglify"]); + grunt.registerTask('dist', ['test', 'dist-build']); + grunt.registerTask('dist-build', ['concat', 'uglify']); // Check everything is good - grunt.registerTask("test", ["jshint", "test-browser", "test-node"]); - grunt.registerTask("test-browser", [ - "jasmine:global", - "test-browser-context", - "jasmine:requirejs", - ]); - grunt.registerTask("test-browser-context", [ - "preprocess", - "jasmine:context", - "clean:test", - ]); - grunt.registerTask("test-node", ["jasmine_node"]); + grunt.registerTask('test', ['jshint', 'test-browser', 'test-node']); + grunt.registerTask('test-browser', ['jasmine:global', 'test-browser-context', 'jasmine:requirejs']); + grunt.registerTask('test-browser-context', ['preprocess', 'jasmine:context', 'clean:test']); + grunt.registerTask('test-node', ['jasmine_node']); // Test with a live server and an actual browser - grunt.registerTask("integration-test", [ - "jasmine:requirejs:src:build", - "open:jasmine", - "connect:test:keepalive", - ]); + grunt.registerTask('integration-test', ['jasmine:requirejs:src:build', 'open:jasmine', 'connect:test:keepalive']); // Default task. - grunt.registerTask("default", "test"); + grunt.registerTask('default', 'test'); };