webExtensionApis/study/src/index.js
async function sendTelemetry(payload) {
          utilsLogger.debug("called sendTelemetry payload");

          function throwIfInvalid(obj) {
            // Check: all keys and values must be strings,
            for (const k in obj) {
              if (typeof k !== "string")
                throw new ExtensionError(`key ${k} not a string`);
              if (typeof obj[k] !== "string")
                throw new ExtensionError(`value ${k} ${obj[k]} not a string`);
            }
            return true;
          }

          throwIfInvalid(payload);
          return studyUtils.telemetry(payload);
        }
async function sendTelemetry(payload) {
          utilsLogger.debug("called sendTelemetry payload");

          function throwIfInvalid(obj) {
            // Check: all keys and values must be strings,
            for (const k in obj) {
              if (typeof k !== "string")
                throw new ExtensionError(`key ${k} not a string`);
              if (typeof obj[k] !== "string")
                throw new ExtensionError(`value ${k} ${obj[k]} not a string`);
            }
            return true;
          }

          throwIfInvalid(payload);
          return studyUtils.telemetry(payload);
        }
async function sendTelemetry ( payload ) { utilsLogger . debug ( "called sendTelemetry payload" ) ; function throwIfInvalid ( obj ) { // Check: all keys and values must be strings, for ( const k in obj ) { if ( typeof k !== "string" ) throw new ExtensionError ( ` ${ k } ` ) ; if ( typeof obj [ k ] !== "string" ) throw new ExtensionError ( ` ${ k } ${ obj [ k ] } ` ) ; } return true ; } throwIfInvalid ( payload ) ; return studyUtils . telemetry ( payload ) ; }
Send Telemetry using appropriate shield or pioneer methods.

shield:
- `shield-study-addon` ping, requires object string keys and string values

pioneer:
- TBD

Note:
- no conversions / coercion of data happens.

Note:
- undefined what happens if validation fails
- undefined what happens when you try to send 'shield' from 'pioneer'

TBD fix the parameters here.

@param {Object} payload Non-nested object with key strings, and key values
@returns {undefined}
Send Telemetry using appropriate shield or pioneer methods .