OLD | NEW |
(Empty) | |
| 1 /* |
| 2 * Copyright 2013 The Polymer Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style |
| 4 * license that can be found in the LICENSE file. |
| 5 */ |
| 6 module.exports = function(grunt) { |
| 7 ShadowDOMPolyfill = [ |
| 8 'sidetable.js', |
| 9 'wrappers.js', |
| 10 'wrappers/events.js', |
| 11 'wrappers/NodeList.js', |
| 12 'wrappers/Node.js', |
| 13 'querySelector.js', |
| 14 'wrappers/node-interfaces.js', |
| 15 'wrappers/CharacterData.js', |
| 16 'wrappers/Element.js', |
| 17 'wrappers/HTMLElement.js', |
| 18 'wrappers/HTMLContentElement.js', |
| 19 'wrappers/HTMLShadowElement.js', |
| 20 'wrappers/HTMLTemplateElement.js', |
| 21 'wrappers/HTMLUnknownElement.js', |
| 22 'wrappers/generic.js', |
| 23 'wrappers/ShadowRoot.js', |
| 24 'ShadowRenderer.js', |
| 25 'wrappers/Document.js', |
| 26 'wrappers/Window.js', |
| 27 'wrappers/MutationObserver.js', |
| 28 'wrappers/override-constructors.js' |
| 29 ]; |
| 30 ShadowDOMPolyfill = ShadowDOMPolyfill.map(function(p) { |
| 31 return '../../../third_party/polymer/ShadowDOM/src/' + p; |
| 32 }); |
| 33 |
| 34 // Apply partial patch from Polymer/Platform, dart2js, CSS |
| 35 // polyfill from platform and dart2js CSS patches: |
| 36 ShadowDOMPolyfill.unshift( |
| 37 '../lib/src/platform/patches-shadowdom-polyfill-before.js' |
| 38 ); |
| 39 ShadowDOMPolyfill.push( |
| 40 '../lib/src/platform/patches-shadowdom-polyfill.js', |
| 41 '../lib/src/platform/platform-init.js', |
| 42 '../lib/src/platform/ShadowCSS.js', |
| 43 '../lib/src/platform/patches-shadow-css.js' |
| 44 ); |
| 45 |
| 46 // Only load polyfill if not natively present. |
| 47 ConditionalShadowDOM = [].concat( |
| 48 'build/if-poly.js', |
| 49 ShadowDOMPolyfill, |
| 50 'build/end-if.js' |
| 51 ); |
| 52 |
| 53 // karma setup |
| 54 var browsers; |
| 55 (function() { |
| 56 try { |
| 57 var config = grunt.file.readJSON('local.json'); |
| 58 if (config.browsers) { |
| 59 browsers = config.browsers; |
| 60 } |
| 61 } catch (e) { |
| 62 var os = require('os'); |
| 63 browsers = ['Chrome', 'Firefox']; |
| 64 if (os.type() === 'Darwin') { |
| 65 browsers.push('ChromeCanary'); |
| 66 } |
| 67 if (os.type() === 'Windows_NT') { |
| 68 browsers.push('IE'); |
| 69 } |
| 70 } |
| 71 })(); |
| 72 grunt.initConfig({ |
| 73 karma: { |
| 74 options: { |
| 75 configFile: 'conf/karma.conf.js', |
| 76 keepalive: true, |
| 77 browsers: browsers |
| 78 }, |
| 79 buildbot: { |
| 80 browsers: browsers, |
| 81 reporters: ['crbot'], |
| 82 logLevel: 'OFF' |
| 83 }, |
| 84 ShadowDOM: { |
| 85 browsers: browsers |
| 86 } |
| 87 }, |
| 88 concat: { |
| 89 ShadowDOM: { |
| 90 src: ConditionalShadowDOM, |
| 91 dest: '../lib/shadow_dom.debug.js', |
| 92 nonull: true |
| 93 } |
| 94 }, |
| 95 uglify: { |
| 96 ShadowDOM: { |
| 97 options: { |
| 98 compress: { |
| 99 // TODO(sjmiles): should be false by default (?) |
| 100 // https://github.com/mishoo/UglifyJS2/issues/165 |
| 101 unsafe: false |
| 102 } |
| 103 //compress: true, Xmangle: true, beautify: true, unsafe: false |
| 104 }, |
| 105 files: { |
| 106 '../lib/shadow_dom.min.js': ['../lib/shadow_dom.debug.js'] |
| 107 } |
| 108 } |
| 109 }, |
| 110 |
| 111 yuidoc: { |
| 112 compile: { |
| 113 name: '<%= pkg.name %>', |
| 114 description: '<%= pkg.description %>', |
| 115 version: '<%= pkg.version %>', |
| 116 url: '<%= pkg.homepage %>', |
| 117 options: { |
| 118 exclude: 'third_party', |
| 119 paths: '.', |
| 120 outdir: 'docs', |
| 121 linkNatives: 'true', |
| 122 tabtospace: 2, |
| 123 themedir: '../docs/doc_themes/simple' |
| 124 } |
| 125 } |
| 126 }, |
| 127 pkg: grunt.file.readJSON('package.json') |
| 128 }); |
| 129 |
| 130 // plugins |
| 131 grunt.loadNpmTasks('grunt-contrib-concat'); |
| 132 grunt.loadNpmTasks('grunt-contrib-uglify'); |
| 133 grunt.loadNpmTasks('grunt-contrib-yuidoc'); |
| 134 grunt.loadNpmTasks('grunt-karma-0.9.1'); |
| 135 |
| 136 // tasks |
| 137 grunt.registerTask('default', ['concat', 'uglify']); |
| 138 grunt.registerTask('minify', ['concat', 'uglify']); |
| 139 grunt.registerTask('docs', ['yuidoc']); |
| 140 grunt.registerTask('test', ['karma:ShadowDOM']); |
| 141 grunt.registerTask('test-buildbot', ['karma:buildbot']); |
| 142 }; |
| 143 |
OLD | NEW |