| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 | const webpackConfig = require('./webpack.config');const qunitWebpackConfig = require('./qunit/webpack.config');module.exports = function (grunt) {    function createBanner(fileName) {        return "/*!\n" +            "* " + fileName + "\n" +            "* <%= pkg.homepage %>\n" +            "* Copyright (c) 2010 - <%= grunt.template.today('yyyy') %> <%= pkg.author.name %>\n" +            "* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n" +            "* Version: <%= pkg.version %>\n" +            "*/\n";    }    function createUglifyConfig(path) {        var uglifyConfig = {};        var srcFiles = grunt.file.expand(path + "/**/*.js");        for (var srcNdx in srcFiles) {            var dstFile = srcFiles[srcNdx].replace("js/", ""),                dstFileMin = dstFile.replace(".js", ".min.js");            uglifyConfig[dstFile] = {                dest: 'dist/inputmask/' + dstFile,                src: srcFiles[srcNdx],                options: {                    banner: createBanner(dstFile),                    beautify: true,                    mangle: false,                    preserveComments: false,                    ASCIIOnly: true                }            };            uglifyConfig[dstFileMin] = {                dest: "dist/min/inputmask/" + dstFileMin,                src: srcFiles[srcNdx],                options: {                    banner: createBanner(dstFileMin),                    preserveComments: false,                    ASCIIOnly: true                }            };        }        uglifyConfig["bundle"] = {            dest: "dist/jquery.inputmask.bundle.js",            src: "build/bundle.js",            options: {                banner: createBanner("jquery.inputmask.bundle.js"),                beautify: true,                mangle: false,                preserveComments: false,                ASCIIOnly: true            }        };        uglifyConfig["bundlemin"] = {            dest: "dist/min/jquery.inputmask.bundle.min.js",            src: "build/bundle.js",            options: {                banner: createBanner("jquery.inputmask.bundle.js"),                preserveComments: false,                ASCIIOnly: true            }        };        return uglifyConfig;    }// Project configuration.    grunt.initConfig({        pkg: grunt.file.readJSON("package.json"),        uglify: createUglifyConfig("js"),        clean: ["dist"],        karma: {            options: {                configFile: 'karma.conf.js'            },            unit: {                runnerPort: 9999,                singleRun: true,                browsers: ["Chrome"], //will later add extra test targets                logLevel: 'ERROR'            }        },        bump: {            options: {                files: ['package.json', 'bower.json', 'composer.json', 'component.json'],                updateConfigs: ['pkg'],                commit: false,                createTag: false,                push: false            }        },        release: {            options: {                bump: false,                commitMessage: 'Inputmask <%= version %>'            }        },        nugetpack: {            dist: {                src: function () {                    return 'nuspecs/Inputmask.nuspec';                }(),                dest: 'build/',                options: {                    version: '<%= pkg.version %>'                }            },            dist2: {                src: function () {                    return 'nuspecs/jquery.inputmask.nuspec';                }(),                dest: 'build/',                options: {                    version: '<%= pkg.version %>'                }            }        },        nugetpush: {            dist: {                src: 'build/InputMask.<%= pkg.version %>.nupkg',                options: {                    source: "https://www.nuget.org"                }            },            dist2: {                src: 'build/jquery.inputMask.<%= pkg.version %>.nupkg',                options: {                    source: "https://www.nuget.org"                }            }        },        shell: {            options: {                stderr: false            },            gitcommitchanges: {                command: ['git add .',                    'git reset -- package.json',                    'git commit -m "Inputmask <%= pkg.version %>"'                ].join('&&')            }        },        eslint: {            target: "{extra/*,js}/*.js"        },        availabletasks: {            tasks: {                options: {                    filter: 'exclude',                    tasks: ['availabletasks', 'default', 'updateDistConfig'],                    showTasks: ['user']                }            }        },        webpack: {            build: webpackConfig,            qunit: qunitWebpackConfig        }    });// Load the plugin that provides the tasks.    require('load-grunt-tasks')(grunt);    grunt.registerTask('publish:patch', ['clean', 'bump:patch', 'webpack:build', 'uglify', 'shell:gitcommitchanges', 'release', 'nugetpack', 'nugetpush']);    grunt.registerTask('publish:minor', ['clean', 'bump:minor', 'webpack:build', 'uglify', 'shell:gitcommitchanges', 'release', 'nugetpack', 'nugetpush']);    grunt.registerTask('publish:major', ['clean', 'bump:major', 'webpack:build', 'uglify', 'shell:gitcommitchanges', 'release', 'nugetpack', 'nugetpush']);    grunt.registerTask('validate', ['webpack:qunit', 'eslint', 'karma']);    grunt.registerTask('build', ['bump:prerelease', 'clean', 'webpack:build', 'uglify']);    grunt.registerTask('default', ["availabletasks"]);};
 |