A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/npm/cli/commit/e0163c6787f3877c3ad6c84d8af44378f7eed23b below:

are-we-there-yet@4.0.1 · npm/cli@e0163c6 · GitHub

1 1

'use strict'

2 -

var util = require('util')

3 -

var TrackerBase = require('./tracker-base.js')

4 -

var Tracker = require('./tracker.js')

5 -

var TrackerStream = require('./tracker-stream.js')

2 +

const TrackerBase = require('./tracker-base.js')

3 +

const Tracker = require('./tracker.js')

4 +

const TrackerStream = require('./tracker-stream.js')

6 5 7 -

var TrackerGroup = module.exports = function (name) {

8 -

TrackerBase.call(this, name)

9 -

this.parentGroup = null

10 -

this.trackers = []

11 -

this.completion = {}

12 -

this.weight = {}

13 -

this.totalWeight = 0

14 -

this.finished = false

15 -

this.bubbleChange = bubbleChange(this)

16 -

}

17 -

util.inherits(TrackerGroup, TrackerBase)

6 +

class TrackerGroup extends TrackerBase {

7 +

parentGroup = null

8 +

trackers = []

9 +

completion = {}

10 +

weight = {}

11 +

totalWeight = 0

12 +

finished = false

13 +

bubbleChange = bubbleChange(this)

18 14 19 -

function bubbleChange (trackerGroup) {

20 -

return function (name, completed, tracker) {

21 -

trackerGroup.completion[tracker.id] = completed

22 -

if (trackerGroup.finished) {

23 -

return

15 +

nameInTree () {

16 +

var names = []

17 +

var from = this

18 +

while (from) {

19 +

names.unshift(from.name)

20 +

from = from.parentGroup

24 21

}

25 -

trackerGroup.emit('change', name || trackerGroup.name, trackerGroup.completed(), trackerGroup)

22 +

return names.join('/')

26 23

}

27 -

}

28 24 29 -

TrackerGroup.prototype.nameInTree = function () {

30 -

var names = []

31 -

var from = this

32 -

while (from) {

33 -

names.unshift(from.name)

34 -

from = from.parentGroup

35 -

}

36 -

return names.join('/')

37 -

}

38 - 39 -

TrackerGroup.prototype.addUnit = function (unit, weight) {

40 -

if (unit.addUnit) {

41 -

var toTest = this

42 -

while (toTest) {

43 -

if (unit === toTest) {

44 -

throw new Error(

45 -

'Attempted to add tracker group ' +

46 -

unit.name + ' to tree that already includes it ' +

47 -

this.nameInTree(this))

25 +

addUnit (unit, weight) {

26 +

if (unit.addUnit) {

27 +

var toTest = this

28 +

while (toTest) {

29 +

if (unit === toTest) {

30 +

throw new Error(

31 +

'Attempted to add tracker group ' +

32 +

unit.name + ' to tree that already includes it ' +

33 +

this.nameInTree(this))

34 +

}

35 +

toTest = toTest.parentGroup

48 36

}

49 -

toTest = toTest.parentGroup

37 +

unit.parentGroup = this

50 38

}

51 -

unit.parentGroup = this

39 +

this.weight[unit.id] = weight || 1

40 +

this.totalWeight += this.weight[unit.id]

41 +

this.trackers.push(unit)

42 +

this.completion[unit.id] = unit.completed()

43 +

unit.on('change', this.bubbleChange)

44 +

if (!this.finished) {

45 +

this.emit('change', unit.name, this.completion[unit.id], unit)

46 +

}

47 +

return unit

52 48

}

53 -

this.weight[unit.id] = weight || 1

54 -

this.totalWeight += this.weight[unit.id]

55 -

this.trackers.push(unit)

56 -

this.completion[unit.id] = unit.completed()

57 -

unit.on('change', this.bubbleChange)

58 -

if (!this.finished) {

59 -

this.emit('change', unit.name, this.completion[unit.id], unit)

49 + 50 +

completed () {

51 +

if (this.trackers.length === 0) {

52 +

return 0

53 +

}

54 +

var valPerWeight = 1 / this.totalWeight

55 +

var completed = 0

56 +

for (var ii = 0; ii < this.trackers.length; ii++) {

57 +

var trackerId = this.trackers[ii].id

58 +

completed +=

59 +

valPerWeight * this.weight[trackerId] * this.completion[trackerId]

60 +

}

61 +

return completed

60 62

}

61 -

return unit

62 -

}

63 63 64 -

TrackerGroup.prototype.completed = function () {

65 -

if (this.trackers.length === 0) {

66 -

return 0

64 +

newGroup (name, weight) {

65 +

return this.addUnit(new TrackerGroup(name), weight)

67 66

}

68 -

var valPerWeight = 1 / this.totalWeight

69 -

var completed = 0

70 -

for (var ii = 0; ii < this.trackers.length; ii++) {

71 -

var trackerId = this.trackers[ii].id

72 -

completed +=

73 -

valPerWeight * this.weight[trackerId] * this.completion[trackerId]

67 + 68 +

newItem (name, todo, weight) {

69 +

return this.addUnit(new Tracker(name, todo), weight)

74 70

}

75 -

return completed

76 -

}

77 71 78 -

TrackerGroup.prototype.newGroup = function (name, weight) {

79 -

return this.addUnit(new TrackerGroup(name), weight)

80 -

}

72 +

newStream (name, todo, weight) {

73 +

return this.addUnit(new TrackerStream(name, todo), weight)

74 +

}

81 75 82 -

TrackerGroup.prototype.newItem = function (name, todo, weight) {

83 -

return this.addUnit(new Tracker(name, todo), weight)

84 -

}

76 +

finish () {

77 +

this.finished = true

78 +

if (!this.trackers.length) {

79 +

this.addUnit(new Tracker(), 1, true)

80 +

}

81 +

for (var ii = 0; ii < this.trackers.length; ii++) {

82 +

var tracker = this.trackers[ii]

83 +

tracker.finish()

84 +

tracker.removeListener('change', this.bubbleChange)

85 +

}

86 +

this.emit('change', this.name, 1, this)

87 +

}

85 88 86 -

TrackerGroup.prototype.newStream = function (name, todo, weight) {

87 -

return this.addUnit(new TrackerStream(name, todo), weight)

88 -

}

89 +

debug (depth = 0) {

90 +

const indent = ' '.repeat(depth)

91 +

let output = `${indent}${this.name || 'top'}: ${this.completed()}\n`

89 92 90 -

TrackerGroup.prototype.finish = function () {

91 -

this.finished = true

92 -

if (!this.trackers.length) {

93 -

this.addUnit(new Tracker(), 1, true)

94 -

}

95 -

for (var ii = 0; ii < this.trackers.length; ii++) {

96 -

var tracker = this.trackers[ii]

97 -

tracker.finish()

98 -

tracker.removeListener('change', this.bubbleChange)

93 +

this.trackers.forEach(function (tracker) {

94 +

output += tracker instanceof TrackerGroup

95 +

? tracker.debug(depth + 1)

96 +

: `${indent} ${tracker.name}: ${tracker.completed()}\n`

97 +

})

98 +

return output

99 99

}

100 -

this.emit('change', this.name, 1, this)

101 100

}

102 101 103 -

var buffer = ' '

104 -

TrackerGroup.prototype.debug = function (depth) {

105 -

depth = depth || 0

106 -

var indent = depth ? buffer.slice(0, depth) : ''

107 -

var output = indent + (this.name || 'top') + ': ' + this.completed() + '\n'

108 -

this.trackers.forEach(function (tracker) {

109 -

if (tracker instanceof TrackerGroup) {

110 -

output += tracker.debug(depth + 1)

111 -

} else {

112 -

output += indent + ' ' + tracker.name + ': ' + tracker.completed() + '\n'

102 +

function bubbleChange (trackerGroup) {

103 +

return function (name, completed, tracker) {

104 +

trackerGroup.completion[tracker.id] = completed

105 +

if (trackerGroup.finished) {

106 +

return

113 107

}

114 -

})

115 -

return output

108 +

trackerGroup.emit('change', name || trackerGroup.name, trackerGroup.completed(), trackerGroup)

109 +

}

116 110

}

111 + 112 +

module.exports = TrackerGroup


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4