UNPKG

@vikasietum_tecknology/record-rtc

Version:

record-rtc is a library based on recordrtc library. In this forked version of the original library we have optimized the memory management. The video recording is stored in IndexDB in chunks.

256 lines (246 loc) 8.59 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 += "// RecordRTC v" + versionNumber + "\n\n"; banner += "// Open-Sourced: https://github.com/muaz-khan/RecordRTC\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/RecordRTC.js", "dev/RecordRTC.IndexedDB.js", "dev/RecordRTC-Configuration.js", "dev/GetRecorderType.js", "dev/MRecordRTC.js", "dev/amd.js", "dev/Cross-Browser-Declarations.js", "dev/Storage.js", "dev/isMediaRecorderCompatible.js", "dev/IndexDBClient.js", "dev/MediaStreamRecorder.js", "dev/StereoAudioRecorder.js", "dev/CanvasRecorder.js", "dev/WhammyRecorder.js", "dev/Whammy.js", "dev/DiskStorage.js", "dev/GifRecorder.js", "dev/MultiStreamsMixer.js", // github/muaz-khan/MultiStreamsMixer "dev/MultiStreamRecorder.js", "dev/RecordRTC.promises.js", "dev/WebAssemblyRecorder.js", // grunt-contrib-uglify fails; maybe we should use uglify-es instead? ], dest: "./temp/RecordRTC.js", }, }, replace: { dist: { options: { patterns: [{ match: "version", replacement: versionNumber, }, ], }, files: [{ expand: true, flatten: true, src: ["./temp/RecordRTC.js"], dest: "./", }, ], }, }, clean: ["./temp"], jshint: { options: { globals: { webkitIndexedDB: true, mozIndexedDB: true, OIndexedDB: true, msIndexedDB: true, indexedDB: true, FileReaderSync: true, postMessage: true, Whammy: true, WhammyRecorder: true, WebAssemblyRecorder: true, MediaStreamRecorder: true, StereoAudioRecorder: true, RecordRTC: true, MRecordRTC: true, URL: true, webkitURL: true, DiskStorage: true, requestAnimationFrame: true, cancelAnimationFrame: true, webkitRequestAnimationFrame: true, webkitCancelAnimationFrame: true, mozRequestAnimationFrame: true, mozCancelAnimationFrame: true, msRequestAnimationFrame: true, msCancelAnimationFrame: true, MediaStream: true, webkitMediaStream: true, html2canvas: true, GifRecorder: true, GIFEncoder: true, MediaRecorder: true, webkitAudioContext: true, mozAudioContext: true, AudioContext: true, Promise: true, JSON: true, typeof: true, define: true, EBML: true, ReadableStream: true, WritableStream: true, }, browser: true, browserify: true, node: true, camelcase: true, curly: true, devel: true, eqeqeq: true, forin: false, globalstrict: true, quotmark: "double", undef: true, //es5: true, funcscope: true, shadow: true, //----should be false? typed: true, worker: true, }, files: ["RecordRTC.js"], }, uglify: { options: { mangle: false, banner: banner, }, my_target: { files: { "RecordRTC.min.js": ["RecordRTC.js"], }, }, }, copy: { main: { options: { flatten: true, }, files: { "RecordRTC.js": ["RecordRTC.js"], }, }, }, jsbeautifier: { files: [ // 'RecordRTC.js', "dev/*.js", "Gruntfile.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", "jshint", "copy", "uglify", "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", // "jshint", "copy", "uglify", "clean", ]); grunt.loadNpmTasks("grunt-contrib-watch"); };