@@ -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
@@ -131,6 +131,44 @@ function parseOptions(options = {}, version = 3, green = false) {
131131 } ;
132132 }
133133
134+ if (
135+ options ?. greenHostingFactor ||
136+ ( options . greenHostingFactor === 0 && version === 4 )
137+ ) {
138+ if ( typeof options . greenHostingFactor === "number" ) {
139+ if ( options . greenHostingFactor >= 0 && options . greenHostingFactor <= 1 ) {
140+ adjustments . greenHostingFactor = options . greenHostingFactor ;
141+ } else {
142+ adjustments . greenHostingFactor = 0 ;
143+ console . warn (
144+ `The returnVisitPercentage option must be a number between 0 and 1. You passed in ${ options . returnVisitPercentage } . \nFalling back to default value.`
145+ ) ;
146+ }
147+ } else {
148+ adjustments . greenHostingFactor = 0 ;
149+ console . warn (
150+ `The returnVisitPercentage option must be a number. You passed in a ${ typeof options . returnVisitPercentage } . \nFalling back to default value.`
151+ ) ;
152+ }
153+ } else if ( version === 4 ) {
154+ adjustments . greenHostingFactor = 0 ;
155+ }
156+
157+ if ( green ) {
158+ adjustments . greenHostingFactor = 1 ;
159+ }
160+
161+ return adjustments ;
162+ }
163+
164+ function parseVisitTraceOptions ( options = { } , version = 3 , green = false ) {
165+ // CHeck that it is an object
166+ if ( typeof options !== "object" ) {
167+ throw new Error ( "Options must be an object" ) ;
168+ }
169+
170+ const adjustments = parseByteTraceOptions ( options , version , green ) ;
171+
134172 if ( options ?. dataReloadRatio || options . dataReloadRatio === 0 ) {
135173 if ( typeof options . dataReloadRatio === "number" ) {
136174 if ( options . dataReloadRatio >= 0 && options . dataReloadRatio <= 1 ) {
@@ -215,33 +253,6 @@ function parseOptions(options = {}, version = 3, green = false) {
215253 ) ;
216254 }
217255
218- if (
219- options ?. greenHostingFactor ||
220- ( options . greenHostingFactor === 0 && version === 4 )
221- ) {
222- if ( typeof options . greenHostingFactor === "number" ) {
223- if ( options . greenHostingFactor >= 0 && options . greenHostingFactor <= 1 ) {
224- adjustments . greenHostingFactor = options . greenHostingFactor ;
225- } else {
226- adjustments . greenHostingFactor = 0 ;
227- console . warn (
228- `The returnVisitPercentage option must be a number between 0 and 1. You passed in ${ options . returnVisitPercentage } . \nFalling back to default value.`
229- ) ;
230- }
231- } else {
232- adjustments . greenHostingFactor = 0 ;
233- console . warn (
234- `The returnVisitPercentage option must be a number. You passed in a ${ typeof options . returnVisitPercentage } . \nFalling back to default value.`
235- ) ;
236- }
237- } else if ( version === 4 ) {
238- adjustments . greenHostingFactor = 0 ;
239- }
240-
241- if ( green ) {
242- adjustments . greenHostingFactor = 1 ;
243- }
244-
245256 return adjustments ;
246257}
247258
@@ -299,7 +310,8 @@ function outputRating(co2e, swdmVersion) {
299310
300311export {
301312 formatNumber ,
302- parseOptions ,
313+ parseByteTraceOptions ,
314+ parseVisitTraceOptions ,
303315 getApiRequestHeaders ,
304316 lessThanEqualTo ,
305317 outputRating ,
0 commit comments