UNPKG

rtcmulticonnection

Version:

RTCMultiConnection is a WebRTC JavaScript wrapper library runs top over RTCPeerConnection API to support all possible peer-to-peer features.

181 lines (161 loc) 6.21 kB
'use strict'; module.exports = function(grunt) { require('load-grunt-tasks')(grunt, { pattern: 'grunt-*', config: 'package.json', scope: 'devDependencies' }); var versionNumber = grunt.file.readJSON('package.json').version; var banner = '\'use strict\';\n\n'; banner += '// Last time updated: <%= grunt.template.today("UTC:yyyy-mm-dd h:MM:ss TT Z") %>\n\n'; banner += '// _________________________\n'; banner += '// RTCMultiConnection v' + versionNumber + '\n\n'; banner += '// Open-Sourced: https://github.com/muaz-khan/RTCMultiConnection\n\n'; banner += '// --------------------------------------------------\n'; banner += '// Muaz Khan - www.MuazKhan.com\n'; banner += '// MIT License - www.WebRTC-Experiment.com/licence\n'; banner += '// --------------------------------------------------\n\n'; // configure project grunt.initConfig({ // make node configurations available pkg: grunt.file.readJSON('package.json'), concat: { options: { stripBanners: true, separator: '\n', banner: banner }, dist: { src: [ 'dev/head.js', 'dev/SocketConnection.js', // You can replace it with: FirebaseConnection.js || PubNubConnection.js 'dev/MultiPeersHandler.js', // 'dev/adapter.js', ---- optional 'dev/DetectRTC.js', 'dev/globals.js', 'dev/ios-hacks.js', // to support ios 'dev/RTCPeerConnection.js', 'dev/CodecsHandler.js', // to force H264 or codecs other than opus 'dev/OnIceCandidateHandler.js', 'dev/IceServersHandler.js', 'dev/getUserMedia.js', 'dev/StreamsHandler.js', 'dev/Screen-Capturing.js', 'dev/TextSenderReceiver.js', 'dev/FileProgressBarHandler.js', 'dev/TranslationHandler.js', 'dev/RTCMultiConnection.js', 'dev/tail.js' ], dest: './temp/RTCMultiConnection.js', }, }, replace: { dist: { options: { patterns: [{ json: grunt.file.readJSON('config.json') }, { match: 'version', replacement: versionNumber }] }, files: [{ expand: true, flatten: true, src: ['./temp/RTCMultiConnection.js'], dest: './' }] } }, clean: ['./temp', 'RTCMultiConnection.js'], uglify: { options: { mangle: false, banner: banner }, my_target: { files: { 'dist/RTCMultiConnection.min.js': ['RTCMultiConnection.js'] } } }, copy: { main: { options: { flatten: true }, files: { 'dist/RTCMultiConnection.js': ['RTCMultiConnection.js'] }, }, }, jsbeautifier: { files: ['RTCMultiConnection.js', 'dev/*.js', 'Gruntfile.js', 'node_scripts/*.js'], options: { js: { braceStyle: "collapse", breakChainedMethods: false, e4x: false, evalCode: false, indentChar: " ", indentLevel: 0, indentSize: 4, indentWithTabs: false, jslintHappy: false, keepArrayIndentation: false, keepFunctionIndentation: false, maxPreserveNewlines: 10, preserveNewlines: true, spaceBeforeConditional: true, spaceInParen: false, unescapeStrings: false, wrapLineLength: 0 }, html: { braceStyle: "collapse", indentChar: " ", indentScripts: "keep", indentSize: 4, maxPreserveNewlines: 10, preserveNewlines: true, unformatted: ["a", "sub", "sup", "b", "i", "u"], wrapLineLength: 0 }, css: { indentChar: " ", indentSize: 4 } } }, bump: { options: { files: ['package.json', 'bower.json'], updateConfigs: [], commit: true, commitMessage: 'v%VERSION%', commitFiles: ['package.json', 'bower.json'], createTag: true, tagName: '%VERSION%', tagMessage: '%VERSION%', push: false, pushTo: 'upstream', gitDescribeOptions: '--tags --always --abbrev=1 --dirty=-d' } }, watch: { scripts: { files: ['dev/*.js'], tasks: ['concat', 'replace', 'jsbeautifier', 'uglify', 'copy', 'clean'], options: { spawn: false, }, } } }); // enable plugins // set default tasks to run when grunt is called without parameters // http://gruntjs.com/api/grunt.task grunt.registerTask('default', ['concat', 'replace', 'jsbeautifier', 'uglify', 'copy', 'clean']); grunt.loadNpmTasks('grunt-contrib-watch'); };