summaryrefslogtreecommitdiffstats
path: root/vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/init/formatters.js
diff options
context:
space:
mode:
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/init/formatters.js')
-rw-r--r--vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/init/formatters.js130
1 files changed, 130 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/init/formatters.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/init/formatters.js
new file mode 100644
index 00000000..78cd6fe7
--- /dev/null
+++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/init/formatters.js
@@ -0,0 +1,130 @@
+var fs = require('fs')
+var util = require('util')
+
+var JS_TEMPLATE_PATH = __dirname + '/../../config.tpl.js'
+var COFFEE_TEMPLATE_PATH = __dirname + '/../../config.tpl.coffee'
+var JS_REQUIREJS_TEMPLATE_PATH = __dirname + '/../../requirejs.config.tpl.js'
+var COFFEE_REQUIREJS_TEMPLATE_PATH = __dirname + '/../../requirejs.config.tpl.coffee'
+var COFFEE_REGEXP = /\.coffee$/
+var LIVE_TEMPLATE_PATH = __dirname + '/../../config.tpl.ls'
+var LIVE_REGEXP = /\.ls$/
+
+var isCoffeeFile = function (filename) {
+ return COFFEE_REGEXP.test(filename)
+}
+
+var isLiveFile = function (filename) {
+ return LIVE_REGEXP.test(filename)
+}
+
+var JavaScriptFormatter = function () {
+ var quote = function (value) {
+ return "'" + value + "'"
+ }
+
+ var quoteNonIncludedPattern = function (value) {
+ return util.format('{pattern: %s, included: false}', quote(value))
+ }
+
+ var pad = function (str, pad) {
+ return str.replace(/\n/g, '\n' + pad).replace(/\s+$/gm, '')
+ }
+
+ var formatQuottedList = function (list) {
+ return list.map(quote).join(', ')
+ }
+
+ this.TEMPLATE_FILE_PATH = JS_TEMPLATE_PATH
+ this.REQUIREJS_TEMPLATE_FILE = JS_REQUIREJS_TEMPLATE_PATH
+
+ this.formatFiles = function (includedFiles, onlyServedFiles) {
+ var files = includedFiles.map(quote)
+
+ onlyServedFiles.forEach(function (onlyServedFile) {
+ files.push(quoteNonIncludedPattern(onlyServedFile))
+ })
+
+ files = files.map(function (file) {
+ return '\n ' + file
+ })
+
+ return files.join(',')
+ }
+
+ this.formatPreprocessors = function (preprocessors) {
+ var lines = []
+ Object.keys(preprocessors).forEach(function (pattern) {
+ lines.push(' ' + quote(pattern) + ': [' + formatQuottedList(preprocessors[pattern]) + ']')
+ })
+
+ return pad('{\n' + lines.join(',\n') + '\n}', ' ')
+ }
+
+ this.formatFrameworks = formatQuottedList
+
+ this.formatBrowsers = formatQuottedList
+
+ this.formatAnswers = function (answers) {
+ return {
+ DATE: new Date(),
+ BASE_PATH: answers.basePath,
+ FRAMEWORKS: this.formatFrameworks(answers.frameworks),
+ FILES: this.formatFiles(answers.files, answers.onlyServedFiles),
+ EXCLUDE: this.formatFiles(answers.exclude, []),
+ AUTO_WATCH: answers.autoWatch ? 'true' : 'false',
+ BROWSERS: this.formatBrowsers(answers.browsers),
+ PREPROCESSORS: this.formatPreprocessors(answers.preprocessors)
+ }
+ }
+
+ this.generateConfigFile = function (answers) {
+ var template = fs.readFileSync(this.TEMPLATE_FILE_PATH).toString()
+ var replacements = this.formatAnswers(answers)
+
+ return template.replace(/%(.*)%/g, function (a, key) {
+ return replacements[key]
+ })
+ }
+
+ this.writeConfigFile = function (path, answers) {
+ fs.writeFileSync(path, this.generateConfigFile(answers))
+ }
+
+ this.generateRequirejsConfigFile = function () {
+ var template = fs.readFileSync(this.REQUIREJS_TEMPLATE_FILE).toString()
+ return template
+ }
+
+ this.writeRequirejsConfigFile = function (path) {
+ fs.writeFileSync(path, this.generateRequirejsConfigFile())
+ }
+}
+
+var CoffeeFormatter = function () {
+ JavaScriptFormatter.call(this)
+
+ this.TEMPLATE_FILE_PATH = COFFEE_TEMPLATE_PATH
+ this.REQUIREJS_TEMPLATE_FILE = COFFEE_REQUIREJS_TEMPLATE_PATH
+}
+
+var LiveFormatter = function () {
+ JavaScriptFormatter.call(this)
+
+ this.TEMPLATE_FILE_PATH = LIVE_TEMPLATE_PATH
+}
+
+exports.JavaScript = JavaScriptFormatter
+exports.Coffee = CoffeeFormatter
+exports.Live = LiveFormatter
+
+exports.createForPath = function (path) {
+ if (isCoffeeFile(path)) {
+ return new CoffeeFormatter()
+ }
+
+ if (isLiveFile(path)) {
+ return new LiveFormatter()
+ }
+
+ return new JavaScriptFormatter()
+}