code: function (options) {
          options = options || {};
  
          var utilExtensions = /%f|%e/g;
          var tasksByNames = {};
  
          var tasksPromises = Object.keys(options).map(function (name) {
  
              var task = {
                  src: [],
                  tpl: null,
                  uni: {},
                  srcIsNull: false
              };
  
              return Promise
                  .resolve()
                  .then(function () {
                      var item = options[name];
                      var src = typeof item.src !== 'undefined' ? item.src : item;
  
                      return resolveSrcString(src)
                        .then(function(srcStrings) {
                            task.srcIsNull = srcStrings === null;
                            task.src = task.src.concat(srcStrings);
                            task.tpl = item.tpl;
                        });
                  })
                  .then(function () {
                      var result;
  
                      while (result = utilExtensions.exec(task.tpl)) {
                          var type = result[0];
                          var unique = {};
  
                          if (task.uni[type]) {
                              continue;
                          }
  
                          unique.regex = new RegExp(result[0], "g");
                          unique.value = null;
                          task.uni[type] = unique;
                      }
                  })
                  .then(function () {
                      tasksByNames[name] = task;
                  });
          });
  
          return Promise.all(tasksPromises)
              .then(function() {
                 return tasksByNames;
          });
      }
docs: tasks = {
  'task-name': {
  'src': [file1, file2],
  'tpl': '<script src="%s"></script>'
  },
  ....
  }