@azure/communication-react
Version:
React library for building modern communication user experiences utilizing Azure Communication Services
201 lines • 7.83 kB
JavaScript
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
import { _logEvent } from "../../acs-ui-common/src";
import { callingStatefulLogger, EventNames } from './Logger';
/**
* helper function to manage logging for stream disposals
*
* @param eventName Name of event that occured when managing streams
* @param streamLogInfo Data about the stream in the event
* @returns
*/
function _logDisposeStreamEvent(eventName, streamLogInfo) {
switch (eventName) {
case EventNames.DISPOSE_STREAM_INVALID_PARAMS:
_logEvent(callingStatefulLogger, {
name: EventNames.DISPOSE_STREAM_INVALID_PARAMS,
level: 'warning',
message: 'Dispose View invalid combination of parameters.',
data: {
streamType: streamLogInfo.streamType
}
});
return;
case EventNames.START_DISPOSE_STREAM:
_logEvent(callingStatefulLogger, {
name: EventNames.START_DISPOSE_STREAM,
level: 'info',
message: 'Start disposing stream.',
data: streamLogInfo
});
return;
case EventNames.DISPOSE_INFO_NOT_FOUND:
_logEvent(callingStatefulLogger, {
name: EventNames.DISPOSE_INFO_NOT_FOUND,
level: 'error',
message: 'Cannot find render info when disposing stream.',
data: streamLogInfo
});
return;
case EventNames.STREAM_STOPPING:
_logEvent(callingStatefulLogger, {
name: EventNames.STREAM_STOPPING,
level: 'info',
message: 'Stream is currently marked as stopping, will continue if is local preview',
data: streamLogInfo
});
return;
case EventNames.DISPOSING_RENDERER:
_logEvent(callingStatefulLogger, {
name: EventNames.DISPOSING_RENDERER,
level: 'info',
message: 'Disposing view renderer.',
data: streamLogInfo
});
return;
case EventNames.RENDERER_NOT_FOUND:
_logEvent(callingStatefulLogger, {
name: EventNames.RENDERER_NOT_FOUND,
level: 'error',
message: 'Cannot find renderer when disposing stream.',
data: streamLogInfo
});
return;
case EventNames.STREAM_ALREADY_DISPOSED:
_logEvent(callingStatefulLogger, {
name: EventNames.STREAM_ALREADY_DISPOSED,
level: 'info',
message: 'Stream is already disposed.',
data: streamLogInfo
});
return;
default:
return;
}
}
/**
* helper function to manage logging for local stream creations
*
* @param eventName Name of the event to occured when creating a local stream
* @param streamLogInfo Data about the stream in the event
* @param error that is thrown by caller
* @returns
*/
function _logCreateStreamEvent(eventName, streamLogInfo, error) {
switch (eventName) {
case EventNames.CREATE_STREAM_INVALID_PARAMS:
_logEvent(callingStatefulLogger, {
name: EventNames.CREATE_STREAM_INVALID_PARAMS,
level: 'warning',
message: 'Create View invalid combination of parameters.',
data: {
streamType: streamLogInfo.streamType
}
});
return;
case EventNames.START_STREAM_RENDERING:
_logEvent(callingStatefulLogger, {
name: EventNames.START_STREAM_RENDERING,
level: 'info',
message: 'Start creating view for local video.',
data: streamLogInfo
});
return;
case EventNames.STREAM_NOT_FOUND:
_logEvent(callingStatefulLogger, {
name: EventNames.STREAM_NOT_FOUND,
level: 'error',
message: 'Stream not found in state.',
data: {
callId: streamLogInfo.callId
}
});
return;
case EventNames.STREAM_ALREADY_RENDERED:
_logEvent(callingStatefulLogger, {
name: EventNames.STREAM_ALREADY_RENDERED,
level: 'warning',
message: 'Stream is already rendered.',
data: streamLogInfo
});
return;
case EventNames.STREAM_RENDERING:
_logEvent(callingStatefulLogger, {
name: EventNames.STREAM_RENDERING,
level: 'warning',
message: 'Stream is rendering.',
data: streamLogInfo
});
return;
case EventNames.STREAM_STOPPING:
_logEvent(callingStatefulLogger, {
name: EventNames.STREAM_STOPPING,
level: 'warning',
message: 'Stream was marked as stopping by dispose view. Resetting state to "Rendering".',
data: streamLogInfo
});
return;
case EventNames.CREATE_STREAM_FAIL:
_logEvent(callingStatefulLogger, {
name: EventNames.CREATE_STREAM_FAIL,
level: 'error',
message: 'Failed to create view.',
data: {
error: error,
streamType: streamLogInfo.streamType,
callId: streamLogInfo.callId
}
});
return;
case EventNames.RENDER_INFO_NOT_FOUND:
_logEvent(callingStatefulLogger, {
name: EventNames.RENDER_INFO_NOT_FOUND,
level: 'error',
message: 'Cannot find render info after create the view. ',
data: streamLogInfo
});
return;
case EventNames.CREATED_STREAM_STOPPING:
_logEvent(callingStatefulLogger, {
name: EventNames.CREATED_STREAM_STOPPING,
level: 'warning',
message: 'Render info status is stopping, dispose renderer.',
data: streamLogInfo
});
return;
case EventNames.VIEW_RENDER_SUCCEED:
_logEvent(callingStatefulLogger, {
name: EventNames.VIEW_RENDER_SUCCEED,
level: 'info',
message: `Successfully render the view.`,
data: streamLogInfo
});
return;
case EventNames.CREATING_VIEW:
_logEvent(callingStatefulLogger, {
name: EventNames.CREATING_VIEW,
level: 'info',
message: 'Start creating view for remote video.',
data: streamLogInfo
});
return;
default:
return;
}
}
/**
* helper function to fire streamUtils logging events
*
* @param eventName Name of event from streamUtils
* @param streamLogInfo informaiton about the event and who called it
* @param error if any errors present will be added to message in logging
*/
export function _logStreamEvent(eventName, streamLogInfo, error) {
if (streamLogInfo.streamEventType === 'disposeViewLocal' || streamLogInfo.streamEventType === 'disposeViewRemote' || streamLogInfo.streamEventType === 'disposeViewUnparented') {
_logDisposeStreamEvent(eventName, streamLogInfo);
}
else if (streamLogInfo.streamEventType === 'createViewLocal' || streamLogInfo.streamEventType === 'createViewRemote') {
_logCreateStreamEvent(eventName, streamLogInfo, error);
}
}
//# sourceMappingURL=StreamUtilsLogging.js.map