Index: node_modules/vulcanize/lib/utils.js |
diff --git a/node_modules/vulcanize/lib/utils.js b/node_modules/vulcanize/lib/utils.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e7d078c40fa28a3da7e38e1b2068e95ac7650f76 |
--- /dev/null |
+++ b/node_modules/vulcanize/lib/utils.js |
@@ -0,0 +1,78 @@ |
+/** |
+ * @license |
+ * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
+ * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt |
+ * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
+ * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt |
+ * Code distributed by Google as part of the polymer project is also |
+ * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt |
+ */ |
+var path = require('path'); |
+ |
+function concatTemplates($, context, query, matches) { |
+ $('template, ' + query, context).each(function() { |
+ if (this.name === 'template') { |
+ concatTemplates($, this.children[0], query, matches); |
+ } else { |
+ matches.push(this); |
+ } |
+ }); |
+} |
+ |
+module.exports = { |
+ // directly update the textnode child of <style> |
+ // equivalent to <style>.textContent |
+ setTextContent: function(node, text) { |
+ var unwrapped = node.cheerio ? node.get(0) : node; |
+ var child = unwrapped.children[0]; |
+ if (child) { |
+ child.data = text; |
+ } else { |
+ unwrapped.children[0] = { |
+ data: text, |
+ type: 'text', |
+ next: null, |
+ prev: null, |
+ parent: unwrapped |
+ }; |
+ } |
+ }, |
+ getTextContent: function(node) { |
+ var unwrapped = node.cheerio ? node.get(0) : node; |
+ var child = unwrapped.children[0]; |
+ return child ? child.data : ''; |
+ }, |
+ // escape a string to be used in new RegExp |
+ escapeForRegExp: function(s) { |
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); |
+ }, |
+ unixPath: function(inpath, optSep) { |
+ var sep = optSep || path.sep; |
+ if (sep !== '/') { |
+ inpath = inpath.split(sep).join('/'); |
+ } |
+ return inpath; |
+ }, |
+ processPolymerInvocation: function(elementName, invocation) { |
+ var name = invocation[1] || ''; |
+ var split = invocation[2] || ''; |
+ var trailing = invocation[3]; |
+ var nameIsString = /^['"]/.test(name); |
+ if (!split) { |
+ // assume "name" is actually the prototype if it is not a string literal |
+ if (!name || (name && !nameIsString)) { |
+ trailing = name + trailing; |
+ name = '\'' + elementName + '\''; |
+ } |
+ if (trailing !== ')') { |
+ split = ','; |
+ } |
+ } |
+ return 'Polymer(' + name + split + trailing; |
+ }, |
+ searchAll: function($, query) { |
+ var matches = []; |
+ concatTemplates($, null, query, matches); |
+ return $(matches); |
+ } |
+}; |