57 lines
2.1 KiB
JavaScript
57 lines
2.1 KiB
JavaScript
|
|
define([
|
||
|
|
'./defaultValue',
|
||
|
|
'./defined',
|
||
|
|
'./DeveloperError'
|
||
|
|
], function(
|
||
|
|
defaultValue,
|
||
|
|
defined,
|
||
|
|
DeveloperError) {
|
||
|
|
'use strict';
|
||
|
|
|
||
|
|
var warnings = {};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Logs a one time message to the console. Use this function instead of
|
||
|
|
* <code>console.log</code> directly since this does not log duplicate messages
|
||
|
|
* unless it is called from multiple workers.
|
||
|
|
*
|
||
|
|
* @exports oneTimeWarning
|
||
|
|
*
|
||
|
|
* @param {String} identifier The unique identifier for this warning.
|
||
|
|
* @param {String} [message=identifier] The message to log to the console.
|
||
|
|
*
|
||
|
|
* @example
|
||
|
|
* for(var i=0;i<foo.length;++i) {
|
||
|
|
* if (!defined(foo[i].bar)) {
|
||
|
|
* // Something that can be recovered from but may happen a lot
|
||
|
|
* oneTimeWarning('foo.bar undefined', 'foo.bar is undefined. Setting to 0.');
|
||
|
|
* foo[i].bar = 0;
|
||
|
|
* // ...
|
||
|
|
* }
|
||
|
|
* }
|
||
|
|
*
|
||
|
|
* @private
|
||
|
|
*/
|
||
|
|
function oneTimeWarning(identifier, message) {
|
||
|
|
//>>includeStart('debug', pragmas.debug);
|
||
|
|
if (!defined(identifier)) {
|
||
|
|
throw new DeveloperError('identifier is required.');
|
||
|
|
}
|
||
|
|
//>>includeEnd('debug');
|
||
|
|
|
||
|
|
if (!defined(warnings[identifier])) {
|
||
|
|
warnings[identifier] = true;
|
||
|
|
console.warn(defaultValue(message, identifier));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
oneTimeWarning.geometryOutlines = 'Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.';
|
||
|
|
|
||
|
|
oneTimeWarning.geometryZIndex = 'Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored';
|
||
|
|
|
||
|
|
oneTimeWarning.geometryHeightReference = 'Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored';
|
||
|
|
oneTimeWarning.geometryExtrudedHeightReference = 'Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored';
|
||
|
|
|
||
|
|
return oneTimeWarning;
|
||
|
|
});
|