forked from newrelic-experimental/netlify-plugin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
results.js
105 lines (94 loc) · 2.64 KB
/
results.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import { deploySummaryTemplate } from "./templates/index.js"
import ejs from "ejs"
import pluralize from "pluralize"
class PluginResults {
deploymentMarkerUUID = undefined
eventsRecorded = []
htmlFilesInjected = []
htmlFilesNotInjected = []
addRecordedEvent(event) {
this.eventsRecorded.push(event)
}
addInjectedHtmlFile(file) {
this.htmlFilesInjected.push(file)
}
addCouldNotInjectHtmlFile(file) {
this.htmlFilesNotInjected.push(file)
}
setDeploymentMarkerUUID(uuid) {
this.deploymentMarkerUUID = uuid
}
summary() {
const eventCount = this.eventsRecorded.length
const htmlCount = this.htmlFilesInjected.length
switch (
[
this.deploymentMarkerUUID != undefined,
eventCount > 0,
htmlCount > 0,
].toString()
) {
case [false, false, false].toString():
return "We have nothing to report 😥"
case [true, false, false].toString():
return "We marked this deployment 🎉"
case [true, true, false].toString():
return `We marked this deployment and recorded ${pluralize(
"event",
eventCount,
true
)}`
case [true, true, true].toString():
return `We marked this deployment, recorded ${pluralize(
"event",
eventCount,
true
)}, and added browser monitoring to ${pluralize(
"page",
htmlCount,
true
)}`
case [true, false, true].toString():
return `We marked this deployment and added browser monitoring to ${pluralize(
"page",
htmlCount,
true
)}`
case [false, true, false].toString():
return `We recorded ${pluralize("event", eventCount, true)}`
case [false, true, true].toString():
return `We recorded ${pluralize(
"event",
eventCount,
true
)} and added browser monitoring to ${pluralize(
"page",
htmlCount,
true
)}`
case [false, false, true].toString():
return `We added browser monitoring to ${pluralize(
"page",
htmlCount,
true
)}`
}
}
text() {
return ejs.render(deploySummaryTemplate, {
deploymentMarkerUUID: this.deploymentMarkerUUID,
eventsRecorded: this.eventsRecorded,
htmlFilesInjected: this.htmlFilesInjected,
htmlFilesNotInjected: this.htmlFilesNotInjected,
})
}
show() {
return {
title: "New Relic build plugin results",
summary: this.summary(),
text: this.text(),
}
}
}
const deploySummaryResults = new PluginResults()
export { deploySummaryResults }