betajs/betajs-browser

View on GitHub
Gruntfile.js

Summary

Maintainability
C
7 hrs
Test Coverage
module.exports = function(grunt) {

    var pkg = grunt.file.readJSON('package.json');
    var gruntHelper = require('betajs-compile');
    var dist = 'betajs-browser';
    
    gruntHelper.init(pkg, grunt)
    
    
    /* Compilation */   
    .scopedclosurerevisionTask(null, "src/**/*.js", "dist/" + dist + "-noscoped.js", {
        "module": "global:BetaJS.Browser",
        "base": "global:BetaJS"
    }, {
        "base:version": pkg.devDependencies.betajs
    })    
    .concatTask('concat-scoped', [require.resolve("betajs-scoped"), 'dist/' + dist + '-noscoped.js'], 'dist/' + dist + '.js')
    .uglifyTask('uglify-noscoped', 'dist/' + dist + '-noscoped.js', 'dist/' + dist + '-noscoped.min.js')
    .uglifyTask('uglify-scoped', 'dist/' + dist + '.js', 'dist/' + dist + '.min.js')
    .jsbeautifyTask(null, "src/**/*.js")

    /* Testing */
    .browserqunitTask(null, "tests/tests.html", true)
    .browserstackTask("ajax-browserstack", "tests/ajax/browserstack.html")
    .qunitjsTask(null, ["tests/qunitjs-node.js"])
    .closureTask(null, [require.resolve("betajs-scoped"), require.resolve("betajs"), "./dist/betajs-browser-noscoped.js"], null, { })
    .browserstackTask(null, 'tests/tests.html', {desktop: true, mobile: true})
    .lintTask(null, ['./src/**/*.js', './dist/' + dist + '-noscoped.js', './dist/' + dist + '.js', './Gruntfile.js', './tests/**/*.js'])
    .cleanTask("clean-cordova", "./temp/cordova")
    .simplecopyTask('copy-cordova', {
        'temp/cordova/www/index.html': './tests/cordova/index.html',
        'temp/cordova/www/scoped.js': './node_modules/betajs-scoped/dist/scoped.js',
        'temp/cordova/www/beta-noscoped.js': './node_modules/betajs/dist/beta-noscoped.js',
        'temp/cordova/www/betajs-browser-noscoped.js': './dist/betajs-browser-noscoped.js',
        'temp/cordova/config.xml': './tests/cordova/config.xml'
    })
    
    /* External Configurations */
    .codeclimateTask()
    .travisTask(null, "4.0")
    .packageTask()
    .autoincreasepackageTask(null, "package-source.json")
    .githookTask(null, "pre-commit", "check-node")
    
    /* Markdown Files */
    .readmeTask()
    .licenseTask()
    
    /* Documentation */
    .docsTask();
    
    
    gruntHelper.config.shell.ajaxqunit = {
        command: [
            'open http://' + gruntHelper.myip() + ':5000/static/tests/ajax/index.html?cors=' + gruntHelper.myhostname() + ":5001",
            'open http://' + gruntHelper.myhostname() + ":5001/static/tests/ajax/dummy.html",
            'node ' + require.resolve("mock-ajax-server") + ' --staticserve .'
        ].join("&&")
    };
    
    gruntHelper.config.shell.filesqunit = {
        command: [
            'open http://' + gruntHelper.myip() + ':5000/static/tests/files/index.html',
            'node ' + require.resolve("mock-file-server") + ' --staticserve .'
        ].join("&&")
    };

    gruntHelper.config.shell['files-browserstack'] = {
        command: [
            './node_modules/.bin/wdio tests/files/selenium-config.js '
        ].join("&&")
    };

    gruntHelper.config.shell['files-selenium-local'] = {
            command: [
                './node_modules/.bin/wdio tests/files/selenium-local.js '
            ].join("&&")
        };
    
    gruntHelper.config.shell["build-cordova-test"] = {
        command: [
            "cordova platform add ios",
            "cordova platform add android",
            //"cordova plugin add cordova-plugin-camera --variable CAMERA_USAGE_DESCRIPTION='Camera'",
            "cordova plugin add cordova-plugin-file-transfer",
            "cordova plugin add cordova-plugin-media-capture",
            "cordova build"
        ].join("&&"),
        options: {
            stdout: true,
            stderr: true,
            execOptions: {
                cwd: 'temp/cordova',
                maxBuffer: 1024 * 1024
            }
        }
    };
    gruntHelper.config.shell["cordova-test-run-ios"] = {
            command: [
                "cordova run ios --device"
            ].join("&&"),
            options: {
                stdout: true,
                stderr: true,
                execOptions: {
                    cwd: 'temp/cordova',
                    maxBuffer: 1024 * 1024
                }
            }
        };
    gruntHelper.config.shell["cordova-test-run-android"] = {
            command: [
                "cordova run android --device"
            ].join("&&"),
            options: {
                stdout: true,
                stderr: true,
                execOptions: {
                    cwd: 'temp/cordova',
                    maxBuffer: 1024 * 1024
                }
            }
        };

    grunt.initConfig(gruntHelper.config);
    
    grunt.registerTask("ajaxqunit", ["shell:ajaxqunit"]);
    grunt.registerTask("filesqunit", ["shell:filesqunit"]);
    grunt.registerTask('files-browserstack', ['shell:files-browserstack']);

    grunt.registerTask('default', ['autoincreasepackage', 'package', 'readme', 'license', 'githook', 'codeclimate', 'travis', 'jsbeautify', 'scopedclosurerevision', 'concat-scoped', 'uglify-noscoped', 'uglify-scoped']);
    grunt.registerTask('check-node', [ 'lint', 'qunitjs' ]);
    grunt.registerTask('check', ['check-node', 'browserqunit']);
    grunt.registerTask("build-cordova-test", ["clean-cordova", "copy-cordova", "shell:build-cordova-test"]);
    grunt.registerTask("run-cordova-test-ios", ["shell:cordova-test-run-ios"]);
    grunt.registerTask("run-cordova-test-android", ["shell:cordova-test-run-android"]);

};