code: function flattenWrapFile(config, keyName, absFilePath) {
          var wrap = config.wrap,
              keyFileName = keyName + 'File',
              keyMapName = '__' + keyName + 'Map';
  
          if (typeof wrap[keyName] !== 'string' && wrap[keyFileName]) {
              wrap[keyName] = '';
              if (typeof wrap[keyFileName] === 'string') {
                  wrap[keyFileName] = [wrap[keyFileName]];
              }
              wrap[keyMapName] = [];
              wrap[keyFileName].forEach(function (fileName) {
                  var absPath = build.makeAbsPath(fileName, absFilePath),
                      fileText = endsWithNewLine(file.readFile(absPath));
                  wrap[keyMapName].push(function (fileContents, cfg, sourceMapGenerator) {
                      return appendToFileContents(fileContents, fileText, absPath, cfg, null, sourceMapGenerator);
                  });
                  wrap[keyName] += fileText;
              });
          } else if (wrap[keyName] === null ||  wrap[keyName] === undefined) {
              //Allow missing one, just set to empty string.
              wrap[keyName] = '';
          } else if (typeof wrap[keyName] === 'string') {
              wrap[keyName] = endsWithNewLine(wrap[keyName]);
              wrap[keyMapName] = [
                  function (fileContents, cfg, sourceMapGenerator) {
                      var absPath = build.makeAbsPath("config-wrap-" + keyName + "-default.js", absFilePath);
                      return appendToFileContents(fileContents, wrap[keyName], absPath, cfg, null, sourceMapGenerator);
                  }
              ];
          } else {
              throw new Error('wrap.' + keyName + ' or wrap.' + keyFileName + ' malformed');
          }
      }
docs: Converts a wrap.startFile or endFile to be start/end as a string.
  the startFile/endFile values can be arrays.