Example #1
0
  .map(function(eventCache) {
    var data = '', sourceMaps = []
    var offsets = [0], cumOffset = 0
    var events = _.sortBy(eventCache, 'opTreeIndex')

    // set this to the earliest new createTime after maxCreateTime
    var createTime = null
    var nextMaxCreateTime = maxCreateTime

    events.forEach((event, idx) => {
      if (event.createTime > maxCreateTime) {
        if (event.createTime < createTime || createTime === null)
          createTime = event.createTime

        if (event.createTime > nextMaxCreateTime)
          nextMaxCreateTime = event.createTime
      }

      var offset = event.lineCount - 1
      data += event.data
      if (data[data.length - 1] !== '\n') {
        data += '\n'
        ++offset
      }
      sourceMaps.push(event.sourceMap)

      if (idx < events.length - 1)
        offsets.push(cumOffset += offset)
    })

    // is null when none of the creation times was greater than the previous
    if (createTime === null)
      createTime = maxCreateTime

    maxCreateTime = nextMaxCreateTime

    var sourceMap = concatSourceMaps(sourceMaps, offsets)
    sourceMap.file = outputPath

    var ret = [ new Event({
      type: fileExists ? 'change' : 'add',
      path: outputPath,
      data,
      sourceMap,
      createTime
    }) ]
    fileExists = true
    return ret
  })
Example #2
0
  .map(function(eventCache) {
    let data = ''
    const sourceMaps = []
    const offsets = [0]
    let cumOffset = 0
    const events = _.sortBy(eventCache, 'opTreeIndex')

    // set this to the earliest new createTime after maxCreateTime
    let createTime = null
    let nextMaxCreateTime = maxCreateTime

    events.forEach((event, idx) => {
      if (event.createTime > maxCreateTime) {
        if (event.createTime < createTime || createTime === null)
          createTime = event.createTime

        if (event.createTime > nextMaxCreateTime)
          nextMaxCreateTime = event.createTime
      }

      let offset = event.lineCount - 1
      data += event.data
      if (data[data.length - 1] !== '\n') {
        data += '\n'
        ++offset
      }

      let sourceMap
      try {
        sourceMap = event.sourceMap
      }
      catch (e) {
        log.warn('\x07could not construct identity source map for %s', event.projectPath)
        if (e.message)
          log.warn(e.message)
      }

      if (sourceMap) {
        sourceMaps.push(sourceMap)
      }

      if (idx < events.length - 1)
        offsets.push(cumOffset += offset)
    })

    // is null when none of the creation times was greater than the previous
    if (createTime === null)
      createTime = maxCreateTime

    maxCreateTime = nextMaxCreateTime

    const sourceMap = concatSourceMaps(sourceMaps, offsets)
    sourceMap.file = outputPath

    const ret = [ new Event({
      type: fileExists ? 'change' : 'add',
      path: outputPath,
      data,
      sourceMap,
      createTime,
      initPhase: ! events.some(event => ! event.initPhase)
    }) ]
    fileExists = true
    return ret
  })