@@ -23,7 +23,7 @@ const formatNumber = (num) => parseFloat(num.toFixed(2));
2323
2424const lessThanEqualTo = ( num , limit ) => num <= limit ;
2525
26- function parseOptions ( options = { } , version = 3 , green = false ) {
26+ function parseByteTraceOptions ( options = { } , version = 3 , green = false ) {
2727 const globalGridIntensity =
2828 version === 4 ? SWDM4_GLOBAL_GRID_INTENSITY : SWDM3_GLOBAL_GRID_INTENSITY ;
2929 // CHeck that it is an object
@@ -88,6 +88,44 @@ function parseOptions(options = {}, version = 3, green = false) {
8888 } ;
8989 }
9090
91+ if (
92+ options ?. greenHostingFactor ||
93+ ( options . greenHostingFactor === 0 && version === 4 )
94+ ) {
95+ if ( typeof options . greenHostingFactor === "number" ) {
96+ if ( options . greenHostingFactor >= 0 && options . greenHostingFactor <= 1 ) {
97+ adjustments . greenHostingFactor = options . greenHostingFactor ;
98+ } else {
99+ adjustments . greenHostingFactor = 0 ;
100+ console . warn (
101+ `The returnVisitPercentage option must be a number between 0 and 1. You passed in ${ options . returnVisitPercentage } . \nFalling back to default value.`
102+ ) ;
103+ }
104+ } else {
105+ adjustments . greenHostingFactor = 0 ;
106+ console . warn (
107+ `The returnVisitPercentage option must be a number. You passed in a ${ typeof options . returnVisitPercentage } . \nFalling back to default value.`
108+ ) ;
109+ }
110+ } else if ( version === 4 ) {
111+ adjustments . greenHostingFactor = 0 ;
112+ }
113+
114+ if ( green ) {
115+ adjustments . greenHostingFactor = 1 ;
116+ }
117+
118+ return adjustments ;
119+ }
120+
121+ function parseVisitTraceOptions ( options = { } , version = 3 , green = false ) {
122+ // CHeck that it is an object
123+ if ( typeof options !== "object" ) {
124+ throw new Error ( "Options must be an object" ) ;
125+ }
126+
127+ const adjustments = parseByteTraceOptions ( options , version , green ) ;
128+
91129 if ( options ?. dataReloadRatio || options . dataReloadRatio === 0 ) {
92130 if ( typeof options . dataReloadRatio === "number" ) {
93131 if ( options . dataReloadRatio >= 0 && options . dataReloadRatio <= 1 ) {
@@ -172,33 +210,6 @@ function parseOptions(options = {}, version = 3, green = false) {
172210 ) ;
173211 }
174212
175- if (
176- options ?. greenHostingFactor ||
177- ( options . greenHostingFactor === 0 && version === 4 )
178- ) {
179- if ( typeof options . greenHostingFactor === "number" ) {
180- if ( options . greenHostingFactor >= 0 && options . greenHostingFactor <= 1 ) {
181- adjustments . greenHostingFactor = options . greenHostingFactor ;
182- } else {
183- adjustments . greenHostingFactor = 0 ;
184- console . warn (
185- `The returnVisitPercentage option must be a number between 0 and 1. You passed in ${ options . returnVisitPercentage } . \nFalling back to default value.`
186- ) ;
187- }
188- } else {
189- adjustments . greenHostingFactor = 0 ;
190- console . warn (
191- `The returnVisitPercentage option must be a number. You passed in a ${ typeof options . returnVisitPercentage } . \nFalling back to default value.`
192- ) ;
193- }
194- } else if ( version === 4 ) {
195- adjustments . greenHostingFactor = 0 ;
196- }
197-
198- if ( green ) {
199- adjustments . greenHostingFactor = 1 ;
200- }
201-
202213 return adjustments ;
203214}
204215
@@ -256,7 +267,8 @@ function outputRating(co2e, swdmVersion) {
256267
257268export {
258269 formatNumber ,
259- parseOptions ,
270+ parseByteTraceOptions ,
271+ parseVisitTraceOptions ,
260272 getApiRequestHeaders ,
261273 lessThanEqualTo ,
262274 outputRating ,
0 commit comments