Best JavaScript code snippet using playwright-internal
package.js
Source:package.js
...73}74function getStringFromWasm(ptr, len) {75 return cachedTextDecoder.decode(getUint8Memory().subarray(ptr, ptr + len));76}77function logError(e) {78 let error = (function () {79 try {80 return e instanceof Error ? `${e.message}\n\nStack:\n${e.stack}` : e.toString();81 } catch(_) {82 return "<failed to stringify thrown value>";83 }84 }());85 console.error("wasm-bindgen: imported JS function that was not marked as `catch` threw an error:", error);86 throw e;87}88let WASM_VECTOR_LEN = 0;89let cachedTextEncoder = new TextEncoder('utf-8');90const encodeString = (typeof cachedTextEncoder.encodeInto === 'function'91 ? function (arg, view) {92 return cachedTextEncoder.encodeInto(arg, view);93}94 : function (arg, view) {95 const buf = cachedTextEncoder.encode(arg);96 view.set(buf);97 return {98 read: arg.length,99 written: buf.length100 };101});102function passStringToWasm(arg) {103 if (typeof(arg) !== 'string') throw new Error('expected a string argument');104 let len = arg.length;105 let ptr = wasm.__wbindgen_malloc(len);106 const mem = getUint8Memory();107 let offset = 0;108 for (; offset < len; offset++) {109 const code = arg.charCodeAt(offset);110 if (code > 0x7F) break;111 mem[ptr + offset] = code;112 }113 if (offset !== len) {114 if (offset !== 0) {115 arg = arg.slice(offset);116 }117 ptr = wasm.__wbindgen_realloc(ptr, len, len = offset + arg.length * 3);118 const view = getUint8Memory().subarray(ptr + offset, ptr + len);119 const ret = encodeString(arg, view);120 if (ret.read !== arg.length) throw new Error('failed to pass whole string');121 offset += ret.written;122 }123 WASM_VECTOR_LEN = offset;124 return ptr;125}126let cachegetInt32Memory = null;127function getInt32Memory() {128 if (cachegetInt32Memory === null || cachegetInt32Memory.buffer !== wasm.memory.buffer) {129 cachegetInt32Memory = new Int32Array(wasm.memory.buffer);130 }131 return cachegetInt32Memory;132}133function handleError(e) {134 wasm.__wbindgen_exn_store(addHeapObject(e));135}136function isLikeNone(x) {137 return x === undefined || x === null;138}139let cachegetUint32Memory = null;140function getUint32Memory() {141 if (cachegetUint32Memory === null || cachegetUint32Memory.buffer !== wasm.memory.buffer) {142 cachegetUint32Memory = new Uint32Array(wasm.memory.buffer);143 }144 return cachegetUint32Memory;145}146function debugString(val) {147 // primitive types148 const type = typeof val;149 if (type == 'number' || type == 'boolean' || val == null) {150 return `${val}`;151 }152 if (type == 'string') {153 return `"${val}"`;154 }155 if (type == 'symbol') {156 const description = val.description;157 if (description == null) {158 return 'Symbol';159 } else {160 return `Symbol(${description})`;161 }162 }163 if (type == 'function') {164 const name = val.name;165 if (typeof name == 'string' && name.length > 0) {166 return `Function(${name})`;167 } else {168 return 'Function';169 }170 }171 // objects172 if (Array.isArray(val)) {173 const length = val.length;174 let debug = '[';175 if (length > 0) {176 debug += debugString(val[0]);177 }178 for(let i = 1; i < length; i++) {179 debug += ', ' + debugString(val[i]);180 }181 debug += ']';182 return debug;183 }184 // Test for built-in185 const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));186 let className;187 if (builtInMatches.length > 1) {188 className = builtInMatches[1];189 } else {190 // Failed to match the standard '[object ClassName]'191 return toString.call(val);192 }193 if (className == 'Object') {194 // we're a user defined class or Object195 // JSON.stringify avoids problems with cycles, and is generally much196 // easier than looping through ownProperties of `val`.197 try {198 return 'Object(' + JSON.stringify(val) + ')';199 } catch (_) {200 return 'Object';201 }202 }203 // errors204 if (val instanceof Error) {205 return `${val.name}: ${val.message}\n${val.stack}`;206 }207 // TODO we could test for more things here, like `Set`s and `Map`s.208 return className;209}210function init(module) {211 if (typeof module === 'undefined') {212 module = import.meta.url.replace(/\.js$/, '_bg.wasm');213 }214 let result;215 const imports = {};216 imports.wbg = {};217 imports.wbg.__wbindgen_cb_forget = function(arg0) {218 takeObject(arg0);219 };220 imports.wbg.__wbindgen_cb_drop = function(arg0) {221 const obj = takeObject(arg0).original;222 if (obj.cnt-- == 1) {223 obj.a = 0;224 return true;225 }226 const ret = false;227 _assertBoolean(ret);228 return ret;229 };230 imports.wbg.__wbindgen_string_new = function(arg0, arg1) {231 const ret = getStringFromWasm(arg0, arg1);232 return addHeapObject(ret);233 };234 imports.wbg.__wbindgen_object_clone_ref = function(arg0) {235 const ret = getObject(arg0);236 return addHeapObject(ret);237 };238 imports.wbg.__wbindgen_object_drop_ref = function(arg0) {239 takeObject(arg0);240 };241 imports.wbg.__wbg_error_4bb6c2a97407129a = function(arg0, arg1) {242 const v0 = getStringFromWasm(arg0, arg1).slice();243 wasm.__wbindgen_free(arg0, arg1 * 1);244 try {245 console.error(v0);246 } catch (e) {247 logError(e)248 }249 };250 imports.wbg.__wbg_new_59cb74e423758ede = function() {251 try {252 const ret = new Error();253 return addHeapObject(ret);254 } catch (e) {255 logError(e)256 }257 };258 imports.wbg.__wbg_stack_558ba5917b466edd = function(arg0, arg1) {259 try {260 const ret = getObject(arg1).stack;261 const ret0 = passStringToWasm(ret);262 const ret1 = WASM_VECTOR_LEN;263 getInt32Memory()[arg0 / 4 + 0] = ret0;264 getInt32Memory()[arg0 / 4 + 1] = ret1;265 } catch (e) {266 logError(e)267 }268 };269 imports.wbg.__widl_f_create_element_Document = function(arg0, arg1, arg2) {270 try {271 try {272 const ret = getObject(arg0).createElement(getStringFromWasm(arg1, arg2));273 return addHeapObject(ret);274 } catch (e) {275 handleError(e)276 }277 } catch (e) {278 logError(e)279 }280 };281 imports.wbg.__widl_f_create_element_ns_Document = function(arg0, arg1, arg2, arg3, arg4) {282 try {283 try {284 const ret = getObject(arg0).createElementNS(arg1 === 0 ? undefined : getStringFromWasm(arg1, arg2), getStringFromWasm(arg3, arg4));285 return addHeapObject(ret);286 } catch (e) {287 handleError(e)288 }289 } catch (e) {290 logError(e)291 }292 };293 imports.wbg.__widl_f_create_text_node_Document = function(arg0, arg1, arg2) {294 try {295 const ret = getObject(arg0).createTextNode(getStringFromWasm(arg1, arg2));296 return addHeapObject(ret);297 } catch (e) {298 logError(e)299 }300 };301 imports.wbg.__widl_f_get_element_by_id_Document = function(arg0, arg1, arg2) {302 try {303 const ret = getObject(arg0).getElementById(getStringFromWasm(arg1, arg2));304 return isLikeNone(ret) ? 0 : addHeapObject(ret);305 } catch (e) {306 logError(e)307 }308 };309 imports.wbg.__widl_f_query_selector_Document = function(arg0, arg1, arg2) {310 try {311 try {312 const ret = getObject(arg0).querySelector(getStringFromWasm(arg1, arg2));313 return isLikeNone(ret) ? 0 : addHeapObject(ret);314 } catch (e) {315 handleError(e)316 }317 } catch (e) {318 logError(e)319 }320 };321 imports.wbg.__widl_f_active_element_Document = function(arg0) {322 try {323 const ret = getObject(arg0).activeElement;324 return isLikeNone(ret) ? 0 : addHeapObject(ret);325 } catch (e) {326 logError(e)327 }328 };329 imports.wbg.__widl_instanceof_Element = function(arg0) {330 try {331 const ret = getObject(arg0) instanceof Element;332 _assertBoolean(ret);333 return ret;334 } catch (e) {335 logError(e)336 }337 };338 imports.wbg.__widl_f_closest_Element = function(arg0, arg1, arg2) {339 try {340 try {341 const ret = getObject(arg0).closest(getStringFromWasm(arg1, arg2));342 return isLikeNone(ret) ? 0 : addHeapObject(ret);343 } catch (e) {344 handleError(e)345 }346 } catch (e) {347 logError(e)348 }349 };350 imports.wbg.__widl_f_get_attribute_Element = function(arg0, arg1, arg2, arg3) {351 try {352 const ret = getObject(arg1).getAttribute(getStringFromWasm(arg2, arg3));353 const ptr0 = isLikeNone(ret) ? 0 : passStringToWasm(ret);354 const len0 = WASM_VECTOR_LEN;355 const ret0 = ptr0;356 const ret1 = len0;357 getInt32Memory()[arg0 / 4 + 0] = ret0;358 getInt32Memory()[arg0 / 4 + 1] = ret1;359 } catch (e) {360 logError(e)361 }362 };363 imports.wbg.__widl_f_get_attribute_names_Element = function(arg0) {364 try {365 const ret = getObject(arg0).getAttributeNames();366 return addHeapObject(ret);367 } catch (e) {368 logError(e)369 }370 };371 imports.wbg.__widl_f_remove_attribute_Element = function(arg0, arg1, arg2) {372 try {373 try {374 getObject(arg0).removeAttribute(getStringFromWasm(arg1, arg2));375 } catch (e) {376 handleError(e)377 }378 } catch (e) {379 logError(e)380 }381 };382 imports.wbg.__widl_f_set_attribute_Element = function(arg0, arg1, arg2, arg3, arg4) {383 try {384 try {385 getObject(arg0).setAttribute(getStringFromWasm(arg1, arg2), getStringFromWasm(arg3, arg4));386 } catch (e) {387 handleError(e)388 }389 } catch (e) {390 logError(e)391 }392 };393 imports.wbg.__widl_f_namespace_uri_Element = function(arg0, arg1) {394 try {395 const ret = getObject(arg1).namespaceURI;396 const ptr0 = isLikeNone(ret) ? 0 : passStringToWasm(ret);397 const len0 = WASM_VECTOR_LEN;398 const ret0 = ptr0;399 const ret1 = len0;400 getInt32Memory()[arg0 / 4 + 0] = ret0;401 getInt32Memory()[arg0 / 4 + 1] = ret1;402 } catch (e) {403 logError(e)404 }405 };406 imports.wbg.__widl_f_tag_name_Element = function(arg0, arg1) {407 try {408 const ret = getObject(arg1).tagName;409 const ret0 = passStringToWasm(ret);410 const ret1 = WASM_VECTOR_LEN;411 getInt32Memory()[arg0 / 4 + 0] = ret0;412 getInt32Memory()[arg0 / 4 + 1] = ret1;413 } catch (e) {414 logError(e)415 }416 };417 imports.wbg.__widl_f_prevent_default_Event = function(arg0) {418 try {419 getObject(arg0).preventDefault();420 } catch (e) {421 logError(e)422 }423 };424 imports.wbg.__widl_f_target_Event = function(arg0) {425 try {426 const ret = getObject(arg0).target;427 return isLikeNone(ret) ? 0 : addHeapObject(ret);428 } catch (e) {429 logError(e)430 }431 };432 imports.wbg.__widl_f_add_event_listener_with_callback_EventTarget = function(arg0, arg1, arg2, arg3) {433 try {434 try {435 getObject(arg0).addEventListener(getStringFromWasm(arg1, arg2), getObject(arg3));436 } catch (e) {437 handleError(e)438 }439 } catch (e) {440 logError(e)441 }442 };443 imports.wbg.__widl_f_remove_event_listener_with_callback_EventTarget = function(arg0, arg1, arg2, arg3) {444 try {445 try {446 getObject(arg0).removeEventListener(getStringFromWasm(arg1, arg2), getObject(arg3));447 } catch (e) {448 handleError(e)449 }450 } catch (e) {451 logError(e)452 }453 };454 imports.wbg.__widl_instanceof_HTMLButtonElement = function(arg0) {455 try {456 const ret = getObject(arg0) instanceof HTMLButtonElement;457 _assertBoolean(ret);458 return ret;459 } catch (e) {460 logError(e)461 }462 };463 imports.wbg.__widl_f_value_HTMLButtonElement = function(arg0, arg1) {464 try {465 const ret = getObject(arg1).value;466 const ret0 = passStringToWasm(ret);467 const ret1 = WASM_VECTOR_LEN;468 getInt32Memory()[arg0 / 4 + 0] = ret0;469 getInt32Memory()[arg0 / 4 + 1] = ret1;470 } catch (e) {471 logError(e)472 }473 };474 imports.wbg.__widl_f_set_value_HTMLButtonElement = function(arg0, arg1, arg2) {475 try {476 getObject(arg0).value = getStringFromWasm(arg1, arg2);477 } catch (e) {478 logError(e)479 }480 };481 imports.wbg.__widl_instanceof_HTMLDataElement = function(arg0) {482 try {483 const ret = getObject(arg0) instanceof HTMLDataElement;484 _assertBoolean(ret);485 return ret;486 } catch (e) {487 logError(e)488 }489 };490 imports.wbg.__widl_f_value_HTMLDataElement = function(arg0, arg1) {491 try {492 const ret = getObject(arg1).value;493 const ret0 = passStringToWasm(ret);494 const ret1 = WASM_VECTOR_LEN;495 getInt32Memory()[arg0 / 4 + 0] = ret0;496 getInt32Memory()[arg0 / 4 + 1] = ret1;497 } catch (e) {498 logError(e)499 }500 };501 imports.wbg.__widl_f_set_value_HTMLDataElement = function(arg0, arg1, arg2) {502 try {503 getObject(arg0).value = getStringFromWasm(arg1, arg2);504 } catch (e) {505 logError(e)506 }507 };508 imports.wbg.__widl_instanceof_HTMLElement = function(arg0) {509 try {510 const ret = getObject(arg0) instanceof HTMLElement;511 _assertBoolean(ret);512 return ret;513 } catch (e) {514 logError(e)515 }516 };517 imports.wbg.__widl_f_focus_HTMLElement = function(arg0) {518 try {519 try {520 getObject(arg0).focus();521 } catch (e) {522 handleError(e)523 }524 } catch (e) {525 logError(e)526 }527 };528 imports.wbg.__widl_instanceof_HTMLInputElement = function(arg0) {529 try {530 const ret = getObject(arg0) instanceof HTMLInputElement;531 _assertBoolean(ret);532 return ret;533 } catch (e) {534 logError(e)535 }536 };537 imports.wbg.__widl_f_set_checked_HTMLInputElement = function(arg0, arg1) {538 try {539 getObject(arg0).checked = arg1 !== 0;540 } catch (e) {541 logError(e)542 }543 };544 imports.wbg.__widl_f_type_HTMLInputElement = function(arg0, arg1) {545 try {546 const ret = getObject(arg1).type;547 const ret0 = passStringToWasm(ret);548 const ret1 = WASM_VECTOR_LEN;549 getInt32Memory()[arg0 / 4 + 0] = ret0;550 getInt32Memory()[arg0 / 4 + 1] = ret1;551 } catch (e) {552 logError(e)553 }554 };555 imports.wbg.__widl_f_value_HTMLInputElement = function(arg0, arg1) {556 try {557 const ret = getObject(arg1).value;558 const ret0 = passStringToWasm(ret);559 const ret1 = WASM_VECTOR_LEN;560 getInt32Memory()[arg0 / 4 + 0] = ret0;561 getInt32Memory()[arg0 / 4 + 1] = ret1;562 } catch (e) {563 logError(e)564 }565 };566 imports.wbg.__widl_f_set_value_HTMLInputElement = function(arg0, arg1, arg2) {567 try {568 getObject(arg0).value = getStringFromWasm(arg1, arg2);569 } catch (e) {570 logError(e)571 }572 };573 imports.wbg.__widl_f_selection_start_HTMLInputElement = function(arg0, arg1) {574 try {575 try {576 const ret = getObject(arg1).selectionStart;577 if (!isLikeNone(ret)) {578 _assertNum(ret);579 }580 const ret0 = !isLikeNone(ret);581 const ret1 = isLikeNone(ret) ? 0 : ret;582 getInt32Memory()[arg0 / 4 + 0] = ret0;583 getInt32Memory()[arg0 / 4 + 1] = ret1;584 } catch (e) {585 handleError(e)586 }587 } catch (e) {588 logError(e)589 }590 };591 imports.wbg.__widl_f_set_selection_start_HTMLInputElement = function(arg0, arg1, arg2) {592 try {593 try {594 getObject(arg0).selectionStart = arg1 === 0 ? undefined : arg2 >>> 0;595 } catch (e) {596 handleError(e)597 }598 } catch (e) {599 logError(e)600 }601 };602 imports.wbg.__widl_f_selection_end_HTMLInputElement = function(arg0, arg1) {603 try {604 try {605 const ret = getObject(arg1).selectionEnd;606 if (!isLikeNone(ret)) {607 _assertNum(ret);608 }609 const ret0 = !isLikeNone(ret);610 const ret1 = isLikeNone(ret) ? 0 : ret;611 getInt32Memory()[arg0 / 4 + 0] = ret0;612 getInt32Memory()[arg0 / 4 + 1] = ret1;613 } catch (e) {614 handleError(e)615 }616 } catch (e) {617 logError(e)618 }619 };620 imports.wbg.__widl_f_set_selection_end_HTMLInputElement = function(arg0, arg1, arg2) {621 try {622 try {623 getObject(arg0).selectionEnd = arg1 === 0 ? undefined : arg2 >>> 0;624 } catch (e) {625 handleError(e)626 }627 } catch (e) {628 logError(e)629 }630 };631 imports.wbg.__widl_instanceof_HTMLLIElement = function(arg0) {632 try {633 const ret = getObject(arg0) instanceof HTMLLIElement;634 _assertBoolean(ret);635 return ret;636 } catch (e) {637 logError(e)638 }639 };640 imports.wbg.__widl_f_value_HTMLLIElement = function(arg0) {641 try {642 const ret = getObject(arg0).value;643 _assertNum(ret);644 return ret;645 } catch (e) {646 logError(e)647 }648 };649 imports.wbg.__widl_f_set_value_HTMLLIElement = function(arg0, arg1) {650 try {651 getObject(arg0).value = arg1;652 } catch (e) {653 logError(e)654 }655 };656 imports.wbg.__widl_instanceof_HTMLMenuItemElement = function(arg0) {657 try {658 const ret = getObject(arg0) instanceof HTMLMenuItemElement;659 _assertBoolean(ret);660 return ret;661 } catch (e) {662 logError(e)663 }664 };665 imports.wbg.__widl_f_set_checked_HTMLMenuItemElement = function(arg0, arg1) {666 try {667 getObject(arg0).checked = arg1 !== 0;668 } catch (e) {669 logError(e)670 }671 };672 imports.wbg.__widl_instanceof_HTMLMeterElement = function(arg0) {673 try {674 const ret = getObject(arg0) instanceof HTMLMeterElement;675 _assertBoolean(ret);676 return ret;677 } catch (e) {678 logError(e)679 }680 };681 imports.wbg.__widl_f_value_HTMLMeterElement = function(arg0) {682 try {683 const ret = getObject(arg0).value;684 _assertNum(ret);685 return ret;686 } catch (e) {687 logError(e)688 }689 };690 imports.wbg.__widl_f_set_value_HTMLMeterElement = function(arg0, arg1) {691 try {692 getObject(arg0).value = arg1;693 } catch (e) {694 logError(e)695 }696 };697 imports.wbg.__widl_instanceof_HTMLOptionElement = function(arg0) {698 try {699 const ret = getObject(arg0) instanceof HTMLOptionElement;700 _assertBoolean(ret);701 return ret;702 } catch (e) {703 logError(e)704 }705 };706 imports.wbg.__widl_f_value_HTMLOptionElement = function(arg0, arg1) {707 try {708 const ret = getObject(arg1).value;709 const ret0 = passStringToWasm(ret);710 const ret1 = WASM_VECTOR_LEN;711 getInt32Memory()[arg0 / 4 + 0] = ret0;712 getInt32Memory()[arg0 / 4 + 1] = ret1;713 } catch (e) {714 logError(e)715 }716 };717 imports.wbg.__widl_f_set_value_HTMLOptionElement = function(arg0, arg1, arg2) {718 try {719 getObject(arg0).value = getStringFromWasm(arg1, arg2);720 } catch (e) {721 logError(e)722 }723 };724 imports.wbg.__widl_instanceof_HTMLOutputElement = function(arg0) {725 try {726 const ret = getObject(arg0) instanceof HTMLOutputElement;727 _assertBoolean(ret);728 return ret;729 } catch (e) {730 logError(e)731 }732 };733 imports.wbg.__widl_f_value_HTMLOutputElement = function(arg0, arg1) {734 try {735 const ret = getObject(arg1).value;736 const ret0 = passStringToWasm(ret);737 const ret1 = WASM_VECTOR_LEN;738 getInt32Memory()[arg0 / 4 + 0] = ret0;739 getInt32Memory()[arg0 / 4 + 1] = ret1;740 } catch (e) {741 logError(e)742 }743 };744 imports.wbg.__widl_f_set_value_HTMLOutputElement = function(arg0, arg1, arg2) {745 try {746 getObject(arg0).value = getStringFromWasm(arg1, arg2);747 } catch (e) {748 logError(e)749 }750 };751 imports.wbg.__widl_instanceof_HTMLParamElement = function(arg0) {752 try {753 const ret = getObject(arg0) instanceof HTMLParamElement;754 _assertBoolean(ret);755 return ret;756 } catch (e) {757 logError(e)758 }759 };760 imports.wbg.__widl_f_value_HTMLParamElement = function(arg0, arg1) {761 try {762 const ret = getObject(arg1).value;763 const ret0 = passStringToWasm(ret);764 const ret1 = WASM_VECTOR_LEN;765 getInt32Memory()[arg0 / 4 + 0] = ret0;766 getInt32Memory()[arg0 / 4 + 1] = ret1;767 } catch (e) {768 logError(e)769 }770 };771 imports.wbg.__widl_f_set_value_HTMLParamElement = function(arg0, arg1, arg2) {772 try {773 getObject(arg0).value = getStringFromWasm(arg1, arg2);774 } catch (e) {775 logError(e)776 }777 };778 imports.wbg.__widl_instanceof_HTMLProgressElement = function(arg0) {779 try {780 const ret = getObject(arg0) instanceof HTMLProgressElement;781 _assertBoolean(ret);782 return ret;783 } catch (e) {784 logError(e)785 }786 };787 imports.wbg.__widl_f_value_HTMLProgressElement = function(arg0) {788 try {789 const ret = getObject(arg0).value;790 _assertNum(ret);791 return ret;792 } catch (e) {793 logError(e)794 }795 };796 imports.wbg.__widl_f_set_value_HTMLProgressElement = function(arg0, arg1) {797 try {798 getObject(arg0).value = arg1;799 } catch (e) {800 logError(e)801 }802 };803 imports.wbg.__widl_instanceof_HTMLSelectElement = function(arg0) {804 try {805 const ret = getObject(arg0) instanceof HTMLSelectElement;806 _assertBoolean(ret);807 return ret;808 } catch (e) {809 logError(e)810 }811 };812 imports.wbg.__widl_f_value_HTMLSelectElement = function(arg0, arg1) {813 try {814 const ret = getObject(arg1).value;815 const ret0 = passStringToWasm(ret);816 const ret1 = WASM_VECTOR_LEN;817 getInt32Memory()[arg0 / 4 + 0] = ret0;818 getInt32Memory()[arg0 / 4 + 1] = ret1;819 } catch (e) {820 logError(e)821 }822 };823 imports.wbg.__widl_f_set_value_HTMLSelectElement = function(arg0, arg1, arg2) {824 try {825 getObject(arg0).value = getStringFromWasm(arg1, arg2);826 } catch (e) {827 logError(e)828 }829 };830 imports.wbg.__widl_instanceof_HTMLTextAreaElement = function(arg0) {831 try {832 const ret = getObject(arg0) instanceof HTMLTextAreaElement;833 _assertBoolean(ret);834 return ret;835 } catch (e) {836 logError(e)837 }838 };839 imports.wbg.__widl_f_value_HTMLTextAreaElement = function(arg0, arg1) {840 try {841 const ret = getObject(arg1).value;842 const ret0 = passStringToWasm(ret);843 const ret1 = WASM_VECTOR_LEN;844 getInt32Memory()[arg0 / 4 + 0] = ret0;845 getInt32Memory()[arg0 / 4 + 1] = ret1;846 } catch (e) {847 logError(e)848 }849 };850 imports.wbg.__widl_f_set_value_HTMLTextAreaElement = function(arg0, arg1, arg2) {851 try {852 getObject(arg0).value = getStringFromWasm(arg1, arg2);853 } catch (e) {854 logError(e)855 }856 };857 imports.wbg.__widl_instanceof_HashChangeEvent = function(arg0) {858 try {859 const ret = getObject(arg0) instanceof HashChangeEvent;860 _assertBoolean(ret);861 return ret;862 } catch (e) {863 logError(e)864 }865 };866 imports.wbg.__widl_f_new_url_HashChangeEvent = function(arg0, arg1) {867 try {868 const ret = getObject(arg1).newURL;869 const ret0 = passStringToWasm(ret);870 const ret1 = WASM_VECTOR_LEN;871 getInt32Memory()[arg0 / 4 + 0] = ret0;872 getInt32Memory()[arg0 / 4 + 1] = ret1;873 } catch (e) {874 logError(e)875 }876 };877 imports.wbg.__widl_f_push_state_with_url_History = function(arg0, arg1, arg2, arg3, arg4, arg5) {878 try {879 try {880 getObject(arg0).pushState(getObject(arg1), getStringFromWasm(arg2, arg3), arg4 === 0 ? undefined : getStringFromWasm(arg4, arg5));881 } catch (e) {882 handleError(e)883 }884 } catch (e) {885 logError(e)886 }887 };888 imports.wbg.__widl_instanceof_KeyboardEvent = function(arg0) {889 try {890 const ret = getObject(arg0) instanceof KeyboardEvent;891 _assertBoolean(ret);892 return ret;893 } catch (e) {894 logError(e)895 }896 };897 imports.wbg.__widl_f_key_code_KeyboardEvent = function(arg0) {898 try {899 const ret = getObject(arg0).keyCode;900 _assertNum(ret);901 return ret;902 } catch (e) {903 logError(e)904 }905 };906 imports.wbg.__widl_f_href_Location = function(arg0, arg1) {907 try {908 try {909 const ret = getObject(arg1).href;910 const ret0 = passStringToWasm(ret);911 const ret1 = WASM_VECTOR_LEN;912 getInt32Memory()[arg0 / 4 + 0] = ret0;913 getInt32Memory()[arg0 / 4 + 1] = ret1;914 } catch (e) {915 handleError(e)916 }917 } catch (e) {918 logError(e)919 }920 };921 imports.wbg.__widl_instanceof_Node = function(arg0) {922 try {923 const ret = getObject(arg0) instanceof Node;924 _assertBoolean(ret);925 return ret;926 } catch (e) {927 logError(e)928 }929 };930 imports.wbg.__widl_f_append_child_Node = function(arg0, arg1) {931 try {932 try {933 const ret = getObject(arg0).appendChild(getObject(arg1));934 return addHeapObject(ret);935 } catch (e) {936 handleError(e)937 }938 } catch (e) {939 logError(e)940 }941 };942 imports.wbg.__widl_f_insert_before_Node = function(arg0, arg1, arg2) {943 try {944 try {945 const ret = getObject(arg0).insertBefore(getObject(arg1), getObject(arg2));946 return addHeapObject(ret);947 } catch (e) {948 handleError(e)949 }950 } catch (e) {951 logError(e)952 }953 };954 imports.wbg.__widl_f_remove_child_Node = function(arg0, arg1) {955 try {956 try {957 const ret = getObject(arg0).removeChild(getObject(arg1));958 return addHeapObject(ret);959 } catch (e) {960 handleError(e)961 }962 } catch (e) {963 logError(e)964 }965 };966 imports.wbg.__widl_f_replace_child_Node = function(arg0, arg1, arg2) {967 try {968 try {969 const ret = getObject(arg0).replaceChild(getObject(arg1), getObject(arg2));970 return addHeapObject(ret);971 } catch (e) {972 handleError(e)973 }974 } catch (e) {975 logError(e)976 }977 };978 imports.wbg.__widl_f_node_type_Node = function(arg0) {979 try {980 const ret = getObject(arg0).nodeType;981 _assertNum(ret);982 return ret;983 } catch (e) {984 logError(e)985 }986 };987 imports.wbg.__widl_f_child_nodes_Node = function(arg0) {988 try {989 const ret = getObject(arg0).childNodes;990 return addHeapObject(ret);991 } catch (e) {992 logError(e)993 }994 };995 imports.wbg.__widl_f_first_child_Node = function(arg0) {996 try {997 const ret = getObject(arg0).firstChild;998 return isLikeNone(ret) ? 0 : addHeapObject(ret);999 } catch (e) {1000 logError(e)1001 }1002 };1003 imports.wbg.__widl_f_next_sibling_Node = function(arg0) {1004 try {1005 const ret = getObject(arg0).nextSibling;1006 return isLikeNone(ret) ? 0 : addHeapObject(ret);1007 } catch (e) {1008 logError(e)1009 }1010 };1011 imports.wbg.__widl_f_text_content_Node = function(arg0, arg1) {1012 try {1013 const ret = getObject(arg1).textContent;1014 const ptr0 = isLikeNone(ret) ? 0 : passStringToWasm(ret);1015 const len0 = WASM_VECTOR_LEN;1016 const ret0 = ptr0;1017 const ret1 = len0;1018 getInt32Memory()[arg0 / 4 + 0] = ret0;1019 getInt32Memory()[arg0 / 4 + 1] = ret1;1020 } catch (e) {1021 logError(e)1022 }1023 };1024 imports.wbg.__widl_f_set_text_content_Node = function(arg0, arg1, arg2) {1025 try {1026 getObject(arg0).textContent = arg1 === 0 ? undefined : getStringFromWasm(arg1, arg2);1027 } catch (e) {1028 logError(e)1029 }1030 };1031 imports.wbg.__widl_f_get_NodeList = function(arg0, arg1) {1032 try {1033 const ret = getObject(arg0)[arg1 >>> 0];1034 return isLikeNone(ret) ? 0 : addHeapObject(ret);1035 } catch (e) {1036 logError(e)1037 }1038 };1039 imports.wbg.__widl_f_length_NodeList = function(arg0) {1040 try {1041 const ret = getObject(arg0).length;1042 _assertNum(ret);1043 return ret;1044 } catch (e) {1045 logError(e)1046 }1047 };1048 imports.wbg.__widl_f_now_Performance = function(arg0) {1049 try {1050 const ret = getObject(arg0).now();1051 _assertNum(ret);1052 return ret;1053 } catch (e) {1054 logError(e)1055 }1056 };1057 imports.wbg.__widl_instanceof_PopStateEvent = function(arg0) {1058 try {1059 const ret = getObject(arg0) instanceof PopStateEvent;1060 _assertBoolean(ret);1061 return ret;1062 } catch (e) {1063 logError(e)1064 }1065 };1066 imports.wbg.__widl_f_state_PopStateEvent = function(arg0) {1067 try {1068 const ret = getObject(arg0).state;1069 return addHeapObject(ret);1070 } catch (e) {1071 logError(e)1072 }1073 };1074 imports.wbg.__widl_f_set_item_Storage = function(arg0, arg1, arg2, arg3, arg4) {1075 try {1076 try {1077 getObject(arg0).setItem(getStringFromWasm(arg1, arg2), getStringFromWasm(arg3, arg4));1078 } catch (e) {1079 handleError(e)1080 }1081 } catch (e) {1082 logError(e)1083 }1084 };1085 imports.wbg.__widl_f_new_URL = function(arg0, arg1) {1086 try {1087 try {1088 const ret = new URL(getStringFromWasm(arg0, arg1));1089 return addHeapObject(ret);1090 } catch (e) {1091 handleError(e)1092 }1093 } catch (e) {1094 logError(e)1095 }1096 };1097 imports.wbg.__widl_f_new_with_base_URL = function(arg0, arg1, arg2, arg3) {1098 try {1099 try {1100 const ret = new URL(getStringFromWasm(arg0, arg1), getStringFromWasm(arg2, arg3));1101 return addHeapObject(ret);1102 } catch (e) {1103 handleError(e)1104 }1105 } catch (e) {1106 logError(e)1107 }1108 };1109 imports.wbg.__widl_f_pathname_URL = function(arg0, arg1) {1110 try {1111 const ret = getObject(arg1).pathname;1112 const ret0 = passStringToWasm(ret);1113 const ret1 = WASM_VECTOR_LEN;1114 getInt32Memory()[arg0 / 4 + 0] = ret0;1115 getInt32Memory()[arg0 / 4 + 1] = ret1;1116 } catch (e) {1117 logError(e)1118 }1119 };1120 imports.wbg.__widl_f_search_URL = function(arg0, arg1) {1121 try {1122 const ret = getObject(arg1).search;1123 const ret0 = passStringToWasm(ret);1124 const ret1 = WASM_VECTOR_LEN;1125 getInt32Memory()[arg0 / 4 + 0] = ret0;1126 getInt32Memory()[arg0 / 4 + 1] = ret1;1127 } catch (e) {1128 logError(e)1129 }1130 };1131 imports.wbg.__widl_f_hash_URL = function(arg0, arg1) {1132 try {1133 const ret = getObject(arg1).hash;1134 const ret0 = passStringToWasm(ret);1135 const ret1 = WASM_VECTOR_LEN;1136 getInt32Memory()[arg0 / 4 + 0] = ret0;1137 getInt32Memory()[arg0 / 4 + 1] = ret1;1138 } catch (e) {1139 logError(e)1140 }1141 };1142 imports.wbg.__widl_instanceof_Window = function(arg0) {1143 try {1144 const ret = getObject(arg0) instanceof Window;1145 _assertBoolean(ret);1146 return ret;1147 } catch (e) {1148 logError(e)1149 }1150 };1151 imports.wbg.__widl_f_cancel_animation_frame_Window = function(arg0, arg1) {1152 try {1153 try {1154 getObject(arg0).cancelAnimationFrame(arg1);1155 } catch (e) {1156 handleError(e)1157 }1158 } catch (e) {1159 logError(e)1160 }1161 };1162 imports.wbg.__widl_f_request_animation_frame_Window = function(arg0, arg1) {1163 try {1164 try {1165 const ret = getObject(arg0).requestAnimationFrame(getObject(arg1));1166 _assertNum(ret);1167 return ret;1168 } catch (e) {1169 handleError(e)1170 }1171 } catch (e) {1172 logError(e)1173 }1174 };1175 imports.wbg.__widl_f_document_Window = function(arg0) {1176 try {1177 const ret = getObject(arg0).document;1178 return isLikeNone(ret) ? 0 : addHeapObject(ret);1179 } catch (e) {1180 logError(e)1181 }1182 };1183 imports.wbg.__widl_f_location_Window = function(arg0) {1184 try {1185 const ret = getObject(arg0).location;1186 return addHeapObject(ret);1187 } catch (e) {1188 logError(e)1189 }1190 };1191 imports.wbg.__widl_f_history_Window = function(arg0) {1192 try {1193 try {1194 const ret = getObject(arg0).history;1195 return addHeapObject(ret);1196 } catch (e) {1197 handleError(e)1198 }1199 } catch (e) {1200 logError(e)1201 }1202 };1203 imports.wbg.__widl_f_performance_Window = function(arg0) {1204 try {1205 const ret = getObject(arg0).performance;1206 return isLikeNone(ret) ? 0 : addHeapObject(ret);1207 } catch (e) {1208 logError(e)1209 }1210 };1211 imports.wbg.__widl_f_local_storage_Window = function(arg0) {1212 try {1213 try {1214 const ret = getObject(arg0).localStorage;1215 return isLikeNone(ret) ? 0 : addHeapObject(ret);1216 } catch (e) {1217 handleError(e)1218 }1219 } catch (e) {1220 logError(e)1221 }1222 };1223 imports.wbg.__widl_f_error_1_ = function(arg0) {1224 try {1225 console.error(getObject(arg0));1226 } catch (e) {1227 logError(e)1228 }1229 };1230 imports.wbg.__wbg_forEach_233111cfe44b80fc = function(arg0, arg1, arg2) {1231 const state0 = {a: arg1, b: arg2};1232 const cb0 = (arg0, arg1, arg2) => {1233 const a = state0.a;1234 state0.a = 0;1235 try {1236 return __wbg_elem_binding3(a, state0.b, arg0, arg1, arg2);1237 } finally {1238 state0.a = a;1239 }1240 };1241 try {1242 try {1243 getObject(arg0).forEach(cb0);1244 } catch (e) {1245 logError(e)1246 }1247 } finally {1248 state0.a = state0.b = 0;1249 }1250 };1251 imports.wbg.__wbg_newnoargs_ccf8cbd1628a0c21 = function(arg0, arg1) {1252 try {1253 const ret = new Function(getStringFromWasm(arg0, arg1));1254 return addHeapObject(ret);1255 } catch (e) {1256 logError(e)1257 }1258 };1259 imports.wbg.__wbg_call_1c71dead4ddfc1a7 = function(arg0, arg1) {1260 try {1261 try {1262 const ret = getObject(arg0).call(getObject(arg1));1263 return addHeapObject(ret);1264 } catch (e) {1265 handleError(e)1266 }1267 } catch (e) {1268 logError(e)1269 }1270 };1271 imports.wbg.__wbg_call_9a450f735fcf1a81 = function(arg0, arg1, arg2) {1272 try {1273 try {1274 const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));1275 return addHeapObject(ret);1276 } catch (e) {1277 handleError(e)1278 }1279 } catch (e) {1280 logError(e)1281 }1282 };1283 imports.wbg.__wbg_is_6ea0f39f2d2d2335 = function(arg0, arg1) {1284 try {1285 const ret = Object.is(getObject(arg0), getObject(arg1));1286 _assertBoolean(ret);1287 return ret;1288 } catch (e) {1289 logError(e)1290 }1291 };1292 imports.wbg.__wbg_new_2d18bd51e2172a0d = function(arg0, arg1) {1293 const state0 = {a: arg0, b: arg1};1294 const cb0 = (arg0, arg1) => {1295 const a = state0.a;1296 state0.a = 0;1297 try {1298 return __wbg_elem_binding4(a, state0.b, arg0, arg1);1299 } finally {1300 state0.a = a;1301 }1302 };1303 try {1304 try {1305 const ret = new Promise(cb0);1306 return addHeapObject(ret);1307 } catch (e) {1308 logError(e)1309 }1310 } finally {1311 state0.a = state0.b = 0;1312 }1313 };1314 imports.wbg.__wbg_resolve_3457814e095bea39 = function(arg0) {1315 try {1316 const ret = Promise.resolve(getObject(arg0));1317 return addHeapObject(ret);1318 } catch (e) {1319 logError(e)1320 }1321 };1322 imports.wbg.__wbg_then_f8ceb6d7f2902004 = function(arg0, arg1) {1323 try {1324 const ret = getObject(arg0).then(getObject(arg1));1325 return addHeapObject(ret);1326 } catch (e) {1327 logError(e)1328 }1329 };1330 imports.wbg.__wbg_then_2b35dcc92370b6f9 = function(arg0, arg1, arg2) {1331 try {1332 const ret = getObject(arg0).then(getObject(arg1), getObject(arg2));1333 return addHeapObject(ret);1334 } catch (e) {1335 logError(e)1336 }1337 };1338 imports.wbg.__wbg_globalThis_e18edfcaa69970d7 = function() {1339 try {1340 try {1341 const ret = globalThis.globalThis;1342 return addHeapObject(ret);1343 } catch (e) {1344 handleError(e)1345 }1346 } catch (e) {1347 logError(e)1348 }1349 };1350 imports.wbg.__wbg_self_c263ff272c9c2d42 = function() {1351 try {1352 try {1353 const ret = self.self;1354 return addHeapObject(ret);1355 } catch (e) {1356 handleError(e)1357 }1358 } catch (e) {1359 logError(e)1360 }1361 };1362 imports.wbg.__wbg_window_043622d0c8518027 = function() {1363 try {1364 try {1365 const ret = window.window;1366 return addHeapObject(ret);1367 } catch (e) {1368 handleError(e)1369 }1370 } catch (e) {1371 logError(e)1372 }1373 };1374 imports.wbg.__wbg_global_7e97ac1b8ea927d0 = function() {1375 try {1376 try {1377 const ret = global.global;1378 return addHeapObject(ret);1379 } catch (e) {1380 handleError(e)1381 }1382 } catch (e) {1383 logError(e)1384 }1385 };1386 imports.wbg.__wbindgen_is_undefined = function(arg0) {1387 const ret = getObject(arg0) === undefined;1388 _assertBoolean(ret);1389 return ret;1390 };1391 imports.wbg.__wbindgen_string_get = function(arg0, arg1) {1392 const obj = getObject(arg0);1393 if (typeof(obj) !== 'string') return 0;1394 const ptr = passStringToWasm(obj);1395 getUint32Memory()[arg1 / 4] = WASM_VECTOR_LEN;1396 const ret = ptr;1397 _assertNum(ret);1398 return ret;1399 };1400 imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {1401 const ret = debugString(getObject(arg1));1402 const ret0 = passStringToWasm(ret);1403 const ret1 = WASM_VECTOR_LEN;1404 getInt32Memory()[arg0 / 4 + 0] = ret0;1405 getInt32Memory()[arg0 / 4 + 1] = ret1;1406 };1407 imports.wbg.__wbindgen_throw = function(arg0, arg1) {1408 throw new Error(getStringFromWasm(arg0, arg1));1409 };1410 imports.wbg.__wbindgen_closure_wrapper455 = function(arg0, arg1, arg2) {1411 const state = { a: arg0, b: arg1, cnt: 1 };1412 const real = (arg0) => {1413 state.cnt++;1414 const a = state.a;1415 state.a = 0;1416 try {1417 return __wbg_elem_binding0(a, state.b, arg0);1418 } finally {1419 if (--state.cnt === 0) wasm.__wbg_function_table.get(8)(a, state.b);1420 else state.a = a;1421 }1422 }1423 ;1424 real.original = state;1425 try {1426 const ret = real;1427 return addHeapObject(ret);1428 } catch (e) {1429 logError(e)1430 }1431 };1432 imports.wbg.__wbindgen_closure_wrapper457 = function(arg0, arg1, arg2) {1433 const state = { a: arg0, b: arg1, cnt: 1 };1434 const real = (arg0) => {1435 state.cnt++;1436 const a = state.a;1437 state.a = 0;1438 try {1439 return __wbg_elem_binding1(a, state.b, arg0);1440 } finally {1441 if (--state.cnt === 0) wasm.__wbg_function_table.get(10)(a, state.b);1442 else state.a = a;1443 }1444 }1445 ;1446 real.original = state;1447 try {1448 const ret = real;1449 return addHeapObject(ret);1450 } catch (e) {1451 logError(e)1452 }1453 };1454 imports.wbg.__wbindgen_closure_wrapper6640 = function(arg0, arg1, arg2) {1455 const state = { a: arg0, b: arg1, cnt: 1 };1456 const real = (arg0) => {1457 state.cnt++;1458 const a = state.a;1459 state.a = 0;1460 try {1461 return __wbg_elem_binding2(a, state.b, arg0);1462 } finally {1463 if (--state.cnt === 0) wasm.__wbg_function_table.get(163)(a, state.b);1464 else state.a = a;1465 }1466 }1467 ;1468 real.original = state;1469 try {1470 const ret = real;1471 return addHeapObject(ret);1472 } catch (e) {1473 logError(e)1474 }1475 };1476 if ((typeof URL === 'function' && module instanceof URL) || typeof module === 'string' || (typeof Request === 'function' && module instanceof Request)) {1477 const response = fetch(module);1478 if (typeof WebAssembly.instantiateStreaming === 'function') {1479 result = WebAssembly.instantiateStreaming(response, imports)1480 .catch(e => {1481 return response1482 .then(r => {1483 if (r.headers.get('Content-Type') != 'application/wasm') {1484 console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);1485 return r.arrayBuffer();1486 } else {1487 throw e;...
index.js
Source:index.js
...36 console[opts.logLevel](msg);37 opts.msg = msg;38 prependLogMessage(opts);39}40function logError(msg, error){41 if(typeof error === 'object'){42 msg += ': ' + JSON.stringify(error);43 }else if(typeof error === 'string'){44 msg += ': ' + error;45 }46 log(msg, {47 logLevel: "error"48 });49}50function clearLog(){51 $output.empty();52}53// Init54function onDeviceReady(){55 FirebasePlugin = window.FirebasePlugin;56 $output = $('#log-output');57 log("deviceready");58 document.getElementById("cameraTakePicture").addEventListener 59 ("click", cameraTakePicture); 60 document.getElementById("cameraGetPicture").addEventListener("click", cameraGetPicture); 61 // Set global error handler to catch uncaught JS exceptions62 var appRootURL = window.location.href.replace("index.html",'');63 window.onerror = function(errorMsg, url, line, col, error) {64 var logMessage = errorMsg;65 var stackTrace = null;66 var sendError = function(){67 FirebasePlugin.logError(logMessage, stackTrace, function(){68 log("Sent JS exception trace");69 },function(error){70 logError("Failed to send JS exception trace", error);71 });72 };73 logMessage += ': url='+url.replace(appRootURL, '')+'; line='+line+'; col='+col;74 if(typeof error === 'object'){75 StackTrace.fromError(error).then(function(trace){76 stackTrace = trace;77 sendError()78 });79 }else{80 sendError();81 }82 };83 //Register handlers84 FirebasePlugin.onMessageReceived(function(message) {85 try{86 console.log("onMessageReceived");87 console.dir(message);88 if(message.messageType === "notification"){89 handleNotificationMessage(message);90 }else{91 handleDataMessage(message);92 }93 }catch(e){94 logError("Exception in onMessageReceived callback: "+e.message);95 }96 }, function(error) {97 logError("Failed receiving FirebasePlugin message", error);98 });99 FirebasePlugin.onTokenRefresh(function(token){100 log("Token refreshed: " + token)101 }, function(error) {102 logError("Failed to refresh token", error);103 });104 checkNotificationPermission(false); // Check permission then get token105 checkAutoInit();106 // Platform-specific107 $('body').addClass(cordova.platformId);108 if(cordova.platformId === "android"){109 initAndroid();110 }else if(cordova.platformId === "ios"){111 initIos();112 }113}114$(document).on('deviceready', onDeviceReady);115var initIos = function(){116 FirebasePlugin.onApnsTokenReceived(function(token){117 log("APNS token received: " + token)118 }, function(error) {119 logError("Failed to receive APNS token", error);120 });121};122var initAndroid = function(){123 // Custom FCM receiver plugin124 cordova.plugin.customfcmreceiver.registerReceiver(function(message){125 log("Received custom message: "+message);126 });127 // Define custom channel - all keys are except 'id' are optional.128 var customChannel = {129 // channel ID - must be unique per app package130 id: "my_channel_id",131 // Channel name. Default: empty string132 name: "My channel name",133 //The sound to play once a push comes. Default value: 'default'134 //Values allowed:135 //'default' - plays the default notification sound136 //'ringtone' - plays the currently set ringtone137 //filename - the filename of the sound file located in '/res/raw' without file extension (mysound.mp3 -> mysound)138 sound: "blackberry",139 //Vibrate on new notification. Default value: true140 //Possible values:141 //Boolean - vibrate or not142 //Array - vibration pattern - e.g. [500, 200, 500] - milliseconds vibrate, milliseconds pause, vibrate, pause, etc.143 vibration: [300, 200, 300],144 // Whether to blink the LED145 light: true,146 //LED color in ARGB format - this example BLUE color. If set to -1, light color will be default. Default value: -1.147 lightColor: "0xFF0000FF",148 //Importance - integer from 0 to 4. Default value: 3149 //0 - none - no sound, does not show in the shade150 //1 - min - no sound, only shows in the shade, below the fold151 //2 - low - no sound, shows in the shade, and potentially in the status bar152 //3 - default - shows everywhere, makes noise, but does not visually intrude153 //4 - high - shows everywhere, makes noise and peeks154 importance: 4,155 //Show badge over app icon when non handled pushes are present. Default value: true156 badge: true,157 //Show message on locked screen. Default value: 1158 //Possible values (default 1):159 //-1 - secret - Do not reveal any part of the notification on a secure lockscreen.160 //0 - private - Show the notification on all lockscreens, but conceal sensitive or private information on secure lockscreens.161 //1 - public - Show the notification in its entirety on all lockscreens.162 visibility: 1163 };164 FirebasePlugin.createChannel(customChannel,165 function() {166 log("Created custom channel: "+customChannel.id);167 FirebasePlugin.listChannels(168 function(channels) {169 if(typeof channels == "undefined") return;170 for(var i=0;i<channels.length;i++) {171 log("Channel id=" + channels[i].id + "; name=" + channels[i].name);172 }173 },174 function(error) {175 logError('List channels error: ' + error);176 }177 );178 },179 function(error) {180 logError("Create channel error", error);181 }182 );183};184// Notifications185var checkNotificationPermission = function(requested){186 FirebasePlugin.hasPermission(function(hasPermission){187 if(hasPermission){188 log("Remote notifications permission granted");189 // Granted190 getToken();191 }else if(!requested){192 // Request permission193 log("Requesting remote notifications permission");194 FirebasePlugin.grantPermission(checkNotificationPermission.bind(this, true));195 }else{196 // Denied197 logError("Notifications won't be shown as permission is denied");198 }199 });200};201var checkAutoInit = function(){202 FirebasePlugin.isAutoInitEnabled(function(enabled){203 log("Auto init is " + (enabled ? "enabled" : "disabled"));204 $('body')205 .addClass('autoinit-' + (enabled ? 'enabled' : 'disabled'))206 .removeClass('autoinit-' + (enabled ? 'disabled' : 'enabled'));207 }, function(error) {208 logError("Failed to check auto init", error);209 });210};211var enableAutoInit = function(){212 FirebasePlugin.setAutoInitEnabled(true, function(){213 log("Enabled auto init");214 checkAutoInit();215 }, function(error) {216 logError("Failed to enable auto init", error);217 });218};219var disableAutoInit = function(){220 FirebasePlugin.setAutoInitEnabled(false, function(){221 log("Disabled auto init");222 checkAutoInit();223 }, function(error) {224 logError("Failed to disable auto init", error);225 });226};227var getID = function(){228 FirebasePlugin.getId(function(id){229 log("Got FCM ID: " + id)230 }, function(error) {231 logError("Failed to get FCM ID", error);232 });233};234var getToken = function(){235 FirebasePlugin.getToken(function(token){236 log("Got FCM token: " + token);237 localStorage.setItem('FCMToken', token);238 }, function(error) {239 logError("Failed to get FCM token", error);240 });241};242var getAPNSToken = function(){243 FirebasePlugin.getAPNSToken(function(token){244 log("Got APNS token: " + token)245 }, function(error) {246 logError("Failed to get APNS token", error);247 });248};249var handleNotificationMessage = function(message){250 var title;251 if(message.title){252 title = message.title;253 }else if(message.notification && message.notification.title){254 title = message.notification.title;255 }else if(message.aps && message.aps.alert && message.aps.alert.title){256 title = message.aps.alert.title;257 }258 var body;259 if(message.body){260 body = message.body;261 }else if(message.notification && message.notification.body){262 body = message.notification.body;263 }else if(message.aps && message.aps.alert && message.aps.alert.body){264 body = message.aps.alert.body;265 }266 var msg = "Notification message received";267 if(message.tap){268 msg += " (tapped in " + message.tap + ")";269 }270 if(title){271 msg += '; title='+title;272 }273 if(body){274 msg += '; body='+body;275 }276 msg += ": "+ JSON.stringify(message);277 log(msg);278};279var handleDataMessage = function(message){280 log("Data message received: " + JSON.stringify(message));281};282function clearNotifications(){283 FirebasePlugin.clearAllNotifications(function(){284 log("Cleared all notifications");285 },function(error){286 logError("Failed to clear notifications", error);287 });288}289function subscribe(){290 FirebasePlugin.subscribe("my_topic", function(){291 log("Subscribed to topic");292 },function(error){293 logError("Failed to subscribe to topic", error);294 });295}296function unsubscribe(){297 FirebasePlugin.unsubscribe("my_topic", function(){298 log("Unsubscribed from topic");299 },function(error){300 logError("Failed to unsubscribe from topic", error);301 });302}303function getBadgeNumber(){304 FirebasePlugin.getBadgeNumber(function(number){305 log("Current badge number: "+number);306 },function(error){307 logError("Failed to get badge number", error);308 });309}310function incrementBadgeNumber(){311 FirebasePlugin.getBadgeNumber(function(current){312 var number = current+1;313 FirebasePlugin.setBadgeNumber(number, function(){314 log("Set badge number to: "+number);315 },function(error){316 logError("Failed to set badge number", error);317 });318 },function(error){319 logError("Failed to get badge number", error);320 });321}322function clearBadgeNumber(){323 FirebasePlugin.setBadgeNumber(0, function(){324 log("Cleared badge number");325 },function(error){326 logError("Failed to clear badge number", error);327 });328}329function unregister(){330 FirebasePlugin.unregister(function(){331 log("Unregistered from Firebase");332 },function(error){333 logError("Failed to unregister from Firebase", error);334 });335}336// Crashlytics337function setCrashlyticsCollectionEnabled(){338 FirebasePlugin.setCrashlyticsCollectionEnabled( function(){339 log("Enabled crashlytics data collection");340 },function(error){341 logError("Failed to enable crashlytics data collection", error);342 });343}344function setCrashlyticsUserId(){345 FirebasePlugin.setCrashlyticsUserId("crashlytics_user_id", function(){346 log("Set crashlytics user ID");347 },function(error){348 logError("Failed to set crashlytics user ID", error);349 });350}351function sendNonFatal(){352 FirebasePlugin.logError("This is a non-fatal error", function(){353 log("Sent non-fatal error");354 },function(error){355 logError("Failed to send non-fatal error", error);356 });357}358function causeJsException(){359 // Cause an uncaught JS exception360 var foo = someUndefinedVariable.bar;361}362function logCrashMessage(){363 FirebasePlugin.logMessage("A custom message about this crash", function(){364 console.log("Logged crash message - it will be sent with the next crash");365 },function(error){366 logError("Failed to log crash message", error);367 });368}369function sendCrash(){370 FirebasePlugin.sendCrash();371}372// Analytics373function setAnalyticsCollectionEnabled(){374 FirebasePlugin.setAnalyticsCollectionEnabled(true, function(){375 log("Enabled analytics data collection");376 },function(error){377 logError("Failed to enable analytics data collection", error);378 });379}380function logEvent(){381 FirebasePlugin.logEvent("my_event", {382 string: "bar",383 integer: 10,384 float: 1.234385 }, function(){386 log("Logged event");387 },function(error){388 logError("Failed to log event", error);389 });390}391function setScreenName(){392 FirebasePlugin.setScreenName("my_screen", function(){393 log("Sent screen name");394 },function(error){395 logError("Failed to send screen name", error);396 });397}398function setUserID(){399 FirebasePlugin.setUserId("user_id", function(){400 log("Set user ID");401 },function(error){402 logError("Failed to set user ID", error);403 });404}405function setUserProperty(){406 FirebasePlugin.setUserProperty("some_key", "some_value", function(){407 log("Set user property");408 },function(error){409 logError("Failed to set user property", error);410 });411}412// Performance413function setPerformanceCollectionEnabled(){414 FirebasePlugin.setPerformanceCollectionEnabled(true, function(){415 log("Enabled performance data collection");416 },function(error){417 logError("Failed to enable performance data collection", error);418 });419}420var traceName = "my_trace";421function startTrace(){422 FirebasePlugin.startTrace(traceName, function(){423 log("Trace started");424 },function(error){425 logError("Failed to start trace", error);426 });427}428function incrementCounter(){429 FirebasePlugin.incrementCounter(traceName, "my_counter", function(){430 log("Incremented trace counter");431 },function(error){432 logError("Failed to increment trace counter", error);433 });434}435function stopTrace(){436 FirebasePlugin.stopTrace(traceName, function(){437 log("Trace stopped");438 },function(error){439 logError("Failed to stop trace", error);440 });441}442// Remote config443function fetch(){444 FirebasePlugin.fetch(function(){445 log("Remote config fetched");446 $('#remote_activate').removeAttr('disabled');447 },function(error){448 logError("Failed to fetch remote config", error);449 });450}451function activateFetched(){452 FirebasePlugin.activateFetched(function(activated){453 log("Remote config was activated: " + activated);454 if(activated){455 $('#remote_getValue').removeAttr('disabled');456 }457 },function(error){458 logError("Failed to activate remote config", error);459 });460}461function getValue(){462 FirebasePlugin.getValue("background_color", function(value){463 log("Get remote config activated: " + value);464 if(value){465 $('body').css('background-color', value);466 }467 },function(error){468 logError("Failed to activate remote config", error);469 });470}471// Authentication472var verificationId;473function verifyPhoneNumber(){474 var phoneNumber = $('#phoneNumberInput').val().trim();475 if(!phoneNumber) return logError("Valid phone number must be entered");476 var timeoutInSeconds = 60;477 var fakeVerificationCode = $('#mockInstantVerificationInput')[0].checked ? '123456' : null;478 FirebasePlugin.verifyPhoneNumber(function(credential) {479 log("Received phone number verification credential");480 console.dir(credential);481 verificationId = credential.verificationId;482 if(credential.instantVerification){483 log("Using instant verification code");484 $('#verificationCodeInput').val(credential.code);485 }486 $('#useVerificationCode').show();487 }, function(error) {488 logError("Failed to verify phone number", error);489 }, phoneNumber, timeoutInSeconds, fakeVerificationCode,);490}491function signInWithCredential(){492 var code = $('#verificationCodeInput').val().trim();493 if(!code) return logError("Verification code must be entered");494 FirebasePlugin.signInWithCredential(verificationId, code, function() {495 log("Successfully signed in");496 }, function(error) {497 logError("Failed to sign in", error);498 });499}500function linkUserWithCredential(){501 var code = $('#verificationCodeInput').val().trim();502 if(!code) return logError("Verification code must be entered");503 FirebasePlugin.linkUserWithCredential(verificationId, code, function() {504 log("Successfully linked user");505 }, function(error) {506 logError("Failed to link user", error);507 });508}509function cameraTakePicture() { 510 navigator.camera.getPicture(onSuccess, onFail, { 511 quality: 50, 512 destinationType: Camera.DestinationType.DATA_URL 513 }); 514 515 function onSuccess(imageData) { 516 var image = document.getElementById('myImage'); 517 image.src = "data:image/jpeg;base64," + imageData; 518 } 519 520 function onFail(message) { ...
Compiler.js
Source:Compiler.js
1var Greytyphoon = { Characters: [] };2function logError(val) {3 let p = document.createElement("p");4 p.className = "error";5 p.innerHTML = val;6 document.querySelector("body > .container").appendChild(p);7}8/* Main */9function main() {10 for (let character of Greytyphoon.Characters) {11 // Check the name first12 let name = character.name;13 if (!name || name == "" || typeof name != "string") {14 logError("Found a character with no name: " + character);15 continue;16 }17 checkOverProperties(character);18 checkMeta(character);19 checkAlignment(character);20 checkAncestry(character);21 checkLevels(character);22 checkStat(character.str);23 checkStat(character.dex);24 checkStat(character.con);25 checkStat(character.int);26 checkStat(character.wis);27 checkStat(character.cha);28 checkTraits(character);29 checkStartingFeats(character);30 checkProgressFeats(character);31 checkTargetFeats(character);32 checkSpells(character);33 checkEquipment(character);34 checkLoot(character);35 if (character.flair) OptionalChecks.checkFlair(character);36 if (character.deity) OptionalChecks.checkDeity(character);37 if (character.languages) OptionalChecks.checkLanguages(character);38 // closing message39 let p = document.createElement("p");40 p.innerHTML = "Finished inspecting " + name;41 document.querySelector("body > .container").appendChild(p);42 }43}44function checkMeta(character) {45 // Self-check46 if (!character.meta || typeof character.meta != "object") {47 logError(character.name + "'s meta property is wrong");48 return;49 }50 // Accepted properties51 var metaAccepts = ["quest", "owner", "companion", "source"];52 for (let metaProp in character.meta)53 if (!metaAccepts.includes(metaProp))54 logError(character.name + "'s meta's " + prop + " property is not supported");55 // Simple properties56 if (!character.meta.quest || typeof character.meta.quest != "string")57 logError(character.name + "'s meta.quest property is wrong");58 if (!character.meta.owner || typeof character.meta.owner != "string")59 logError(character.name + "'s meta.owner property is wrong");60 // Complex/children properties61 if (character.meta.companion) OptionalChecks.checkCompanion(character);62 if (character.meta.source) OptionalChecks.checkSource(character);63}64function checkAlignment(character) {65 // Alignment is mandatory. Must be a valid, two-letters alignment.66 if (!character.alignment) {67 logError(character.name + " has no alignment");68 return;69 }70 var alignmentAccepts = ["LG", "NG", "CG", "LN", "N", "CN", "LE", "NE", "CE"];71 if (!alignmentAccepts.includes(character.alignment))72 logError(character.name + "'s alignment was not recognized");73}74function checkAncestry(character) {75 // Self-check76 if (!character.ancestry) {77 logError(character.name + " has no ancestry");78 return;79 }80 // Accepted properties81 var ancestryAccepts= ["name", "url", "archetypes"];82 for (let ancestryProp in character.ancestry)83 if (!ancestryAccepts.includes(ancestryProp))84 logError(character.name + "'s ancestry's " + ancestryProp + " property is not supported");85 // Simple properties86 if (!character.ancestry.name || typeof character.ancestry.name != "string")87 logError(character.name + "'s ancestry has no name.");88 if (!character.ancestry.url || typeof character.ancestry.url != "string")89 logError(character.name + "'s ancestry has no url.");90 // Complex/children properties91 if (character.ancestry.archetypes) {92 if (typeof character.ancestry.archetypes != "object" || character.ancestry.archetypes.constructor !== Array)93 logError(character.name + "'s ancestry's archetype is not formatted correctly");94 else95 for (let ancestryArch of character.ancestry.archetypes)96 checkAncestryArchetype(ancestryArch);97 }98}99function checkAncestryArchetype(archetype) {100 // Self-check101 if (!archetype || typeof archetype != "string") {102 logError("Bad Ancestry Archetype");103 }104}105function checkLevels(character) {106 if (typeof character.level != "object" || character.level.constructor !== Array) {107 logError(character.name + "'s level is not formatted correctly");108 return;109 }110 if (character.level.length < 1)111 logError(character.name + " has no levels");112 for (let level of character.level)113 checkSingleLevel(level);114}115function checkSingleLevel(level) {116 // Self-check117 if (!level || typeof level != "object") {118 logError("Bad level");119 return;120 }121 // Accepted properties122 var levelAccepts = ["name", "url", "quantity", "archetypes"];123 for (let levelProp in level)124 if (!levelAccepts.includes(levelProp))125 logError("Invalid level property: " + levelProp);126 // Simple properties127 if (!level.name || typeof level.name != "string")128 logError("Bad level name");129 if (!level.url || typeof level.url != "string")130 logError("Bad level url");131 if (!level.quantity || typeof level.quantity != "number" || level.quantity < 1 || level.quantity > 20)132 logError("Bad level quantity");133 // Complex/children properties134 if (level.archetypes)135 {136 if (typeof level.archetypes != "object" || level.archetypes.constructor !== Array)137 logError("Level Archetype is not an array");138 else139 for (let archetype of level.archetypes)140 checkLevelArchetype(archetype);141 }142}143function checkLevelArchetype(archetype) {144 // Self-check145 if (!archetype || typeof archetype != "object") {146 logError("Archetype has bad format");147 return;148 }149 // Accepted properties150 var lvlArchetypeAccepts = ["title", "name", "url"];151 for (let archProp in archetype)152 if (!lvlArchetypeAccepts.includes(archProp))153 logError("Unknown property: " + archProp);154 // Simple properties155 if (!archetype.name || typeof archetype.name != "string")156 logError("Bad Archetype Name");157 if (!archetype.url || typeof archetype.url != "string")158 logError("Bad Archetype url");159 if (archetype.title && typeof archetype.title != "string")160 logError("Bad Archetype Title");161}162function checkStat(stat) {163 // Stat is either an int (no mods) or an array [base, {mod}, {mod}]164 if (typeof stat == "number") {165 if (stat < 7 || stat > 17)166 logError("Impossible unmodded stat");167 return;168 }169 if (typeof stat != "object" || stat.constructor !== Array) {170 logError("Invalid stat format:" + stat);171 return172 }173 if (typeof stat[0] != "number" || stat[0] < 7 || stat[0] > 18)174 logError("Invalid first stat");175 for (let statMod of stat.splice(1, stat.length))176 checkStatModifier(statMod);177}178function checkStatModifier(mod) {179 // Self-check180 if (!mod || typeof mod != "object") {181 logError("Bad stat mod");182 return;183 }184 // Accepted properties185 var statModAccepts = ["points", "reason"];186 for (let modProp in mod)187 if (!statModAccepts.includes(modProp))188 logError("Unsupported stat modifier property: " + modProp);189 // Simple Properties190 if (!mod.points || typeof mod.points != "number" || mod.points > 6 || mod.points < -6)191 logError("Invalid stat modifier points");192 if (!mod.reason || typeof mod.reason != "string")193 logError("Invalid stat modifier reason");194}195function checkTraits(character) {196 if (!character.traits || typeof character.traits != "object" || character.traits.constructor !== Array)197 logError("Bad Traits");198 else199 for (let trait of character.traits)200 checkSingleTrait(trait);201}202function checkSingleTrait(trait) {203 // Self-check204 if (!trait || typeof trait != "object") {205 logError("Bad Trait");206 return;207 }208 // Accepted properties209 var traitAccepts = ["name", "url", "drawback"];210 for (let traitProp in trait)211 if (!traitAccepts.includes(traitProp))212 logError("Unexpected property in trait");213 // Simple properties214 if (!trait.name || typeof trait.name != "string")215 logError("Bad trait name");216 if (!trait.url || typeof trait.url != "string")217 logError("Bad trait url");218 if (trait.drawback && typeof trait.drawback != "boolean")219 logError("Bad trait drawback");220}221function checkStartingFeats(character) {222 if (!character.startingFeats || typeof character.startingFeats != "object" || character.startingFeats.constructor !== Array)223 logError("Bad Starting Feats");224 else225 for (let sf of character.startingFeats)226 checkSingleFeat(sf);227}228function checkProgressFeats(character) {229 if (!character.progressFeats || typeof character.progressFeats != "object" || character.progressFeats.constructor !== Array)230 logError("Bad Progress Feats");231 else232 for (let sf of character.progressFeats)233 checkSingleFeat(sf);234}235function checkTargetFeats(character) {236 if (!character.targetFeats || typeof character.targetFeats != "object" || character.targetFeats.constructor !== Array)237 logError("Bad Target Feats");238 else239 for (let sf of character.targetFeats)240 checkSingleFeat(sf, true);241}242function checkSingleFeat(feat, isReasonOptional) {243 // Self-check244 if (!feat || typeof feat != "object") {245 logError("Bad Feat: " + feat);246 return;247 }248 // Accepted properties249 var featAccepts = ["name", "url", "title", "reason"];250 for (let featProp in feat)251 if (!featAccepts.includes(featProp))252 logError("Unsupported feat property: " + featProp);253 // Simple properties254 if (!feat.name || typeof feat.name != "string")255 logError("Bad feat name");256 if (feat.url && typeof feat.url != "string")257 logError("Bad feat url");258 if (feat.title && typeof feat.title != "string")259 logError("Bad feat title");260 if (feat.reason && typeof feat.reason != "string") // reason is present but the type is wrong261 logError("Bad feat reason");262 if (!feat.reason && !isReasonOptional) // reason is absent but it shouldn't263 logError("Feat reason is not optional in this case");264 if (feat.name == "Skill Focus" || feat.name == "Spell Focus" || feat.name == "Weapon Focus")265 logError("Untyped " + feat.name);266}267function checkSpells(character) {268 if (!character.spells || typeof character.spells != "object" || character.spells.constructor !== Array)269 logError("Bad Spells");270 else271 for (let spell of character.spells)272 checkSingleSpell(spell);273}274function checkSingleSpell(spell) {275 // Self-check276 if (!spell || typeof spell != "object") {277 logError("Bad spell: " + spell);278 return;279 }280 // Accepted properties281 var spellAccepts = ["level", "name", "url", "tag"];282 for (let spellProp in spell)283 if (!spellAccepts.includes(spellProp))284 logError("Unsupported spell property: " + spellProp);285 // Simple properties286 if (spell.level === null || spell.level === undefined || typeof spell.level != "number" || spell.level < 0 || spell.level > 9)287 logError("Bad spell level");288 if (!spell.name || typeof spell.name != "string")289 logError("Bad spell name");290 if (!spell.url || typeof spell.url != "string")291 logError("Bad spell url");292 if (spell.tag && typeof spell.tag != "string")293 logError("Bad spell tag");294}295function checkEquipment(character) {296 if (!character.equips || typeof character.equips != "object" || character.equips.constructor !== Array)297 logError("Bad Equipment");298 else299 for (let equip of character.equips)300 checkSingleEquip(equip);301}302function checkSingleEquip(weapon) {303 // Self-check304 if (!weapon || typeof weapon != "object") {305 logError("Bad weapon: " + weapon);306 return;307 }308 // Accepted properties309 var equipAccepts = ["slot", "value", "name", "url", "material", "bonus", "enchants", "quantity"];310 for (let equipProp in weapon)311 if (!equipAccepts.includes(equipProp))312 logError("Unsupported equipment property: " + equipProp);313 // Simple properties314 var slotAccepts = ["weapon-m", "weapon-r", "armor", "shield"];315 if (!weapon.slot || !slotAccepts.includes(weapon.slot))316 logError("Bad equipment slot");317 if (!weapon.name || typeof weapon.name != "string")318 logError("Bad equipment name");319 else if (weapon.name.includes("masterwork"))320 logError("Masterwork equipments are assumed");321 if (weapon.url && typeof weapon.url != "string") // Optional: always https://d20pfsrd.com/equipment/weapons if omitted322 logError("Bad equipment url");323 if (weapon.value && (typeof weapon.value != "number" || weapon.value < 1)) // Optional: always 300 (mwk) if omitted324 logError("Bad equipment value");325 if (weapon.bonus && (typeof weapon.bonus != "number" || weapon.bonus < 0 || weapon.bonus > 5))326 logError("Bad equipment bonus");327 if (weapon.quantity && (typeof weapon.quantity != "number" || weapon.quantity < 0))328 logError("Bad equipment quantity");329 // Complex/children properties330 if (weapon.material)331 checkEquipMaterial(weapon.material);332 if (weapon.enchants) {333 if (!weapon.bonus)334 logError("Can't add enchantments to a weapon without a bonus");335 if (typeof weapon.enchants != "object" || weapon.enchants.constructor !== Array)336 logError("Bad equipment enchants: not an array");337 else338 for (let enchant of weapon.enchants)339 checkEquipEnchant(enchant);340 }341}342function checkEquipMaterial(material) {343 // Self-check344 if (typeof material != "object") {345 logError("Bad weapon material");346 return;347 }348 // Accepted properties349 var equipAccepts = ["value", "name", "url"];350 for (let equipProp in material)351 if (!equipAccepts.includes(equipProp))352 logError("Unsupported material property: " + equipProp);353 // Simple properties354 if (!material.name || typeof material.name != "string")355 logError("Bad material name");356 if (!material.url || typeof material.url != "string")357 logError("Bad material url");358 if (!material.value || typeof material.value != "number" || material.value < 1)359 logError("Bad material value");360}361function checkEquipEnchant(enchant) {362 // Self-check363 if (!enchant || typeof enchant != "object") {364 logError("Bad weapon enchant");365 return;366 }367 // Accepted properties368 var equipAccepts = ["valueB", "valueF", "name", "url"];369 for (let equipProp in enchant)370 if (!equipAccepts.includes(equipProp))371 logError("Unsupported enchant property: " + equipProp);372 // Simple properties373 if (!enchant.name || typeof enchant.name != "string")374 logError("Bad enchant name");375 if (!enchant.url || typeof enchant.url != "string")376 logError("Bad enchant url");377 if (enchant.valueF && (typeof enchant.valueF != "number" || enchant.valueF < 1))378 logError("Bad enchant value(F)");379 if (enchant.valueB && (typeof enchant.valueB != "number" || enchant.valueB < 1 || enchant.valueB > 5))380 logError("Bad enchant value(B)");381 if (enchant.valueF && enchant.valueB)382 logError("Enchantment cannot have two values");383 if (!enchant.valueF && !enchant.valueB)384 logError("Enchantment must have one value");385}386function checkLoot(character) {387 if (!character.loot || typeof character.loot != "object" || character.loot.constructor !== Array)388 logError("Bad Loot");389 else390 for (let item of character.loot)391 checkSingleItem(item);392}393function checkSingleItem(item) {394 // Self-check395 if (!item || typeof item != "object") {396 logError("Bad item: " + item);397 return;398 }399 // Accepted properties400 var itemAccepts = ["slot", "value", "name", "url"];401 for (let itemProp in item)402 if (!itemAccepts.includes(itemProp))403 logError("Unsupported item property: " + itemProp);404 // Simple properties405 var slotAccepts = ["none", "head", "headband", "eyes",406 "neck", "shoulders", "chest",407 "body", "belt", "wrists",408 "hands", "ring", "feet"];409 if (!item.slot || !slotAccepts.includes(item.slot))410 logError("Bad item slot");411 if (!item.value || typeof item.value != "number" || item.value < 0)412 logError("Bad item value");413 if (!item.name || typeof item.name != "string")414 logError("Bad item name");415 if (!item.url || typeof item.url != "string")416 logError("Bad item url");417}418var OptionalChecks = {419 checkCompanion: function (character) {420 // Self-check421 if (typeof character.meta.companion != "object") {422 logError(character.name + "'s companion is not defined properly");423 return;424 }425 // Accepted properties426 var companionAccepts = ["name", "flair", "url"];427 for (let companionProp in character.meta.companion)428 if (!companionAccepts.includes(companionProp))429 logError(character.name + "'s companion's " + companionProp + " property is not supported");430 // Simple properties431 if (!character.meta.companion.name || typeof character.meta.companion.name != "string")432 logError(character.name + "'s companion has no name.");433 if (!character.meta.companion.url || typeof character.meta.companion.url != "string")434 logError(character.name + "'s companion has no url.");435 if (character.meta.companion.flair && typeof character.meta.companion.flair != "string")436 logError(character.name + "'s companion has an invalid flair");437 },438 checkSource: function (character) {439 // Self-check440 if (typeof character.meta.source != "object") {441 logError(character.name + "'s source is not defined properly");442 return;443 }444 // Accepted properties445 var sourceAccepts = ["name", "url"];446 for (let sourceProp in character.meta.source)447 if (!sourceAccepts.includes(sourceProp))448 logError(character.name + "'s source's " + sourceProp + " property is not supported");449 // Simple properties450 if (!character.meta.source.name || typeof character.meta.source.name != "string")451 logError(character.name + "'s source has no name.");452 if (!character.meta.source.url || typeof character.meta.source.url != "string")453 logError(character.name + "'s source has no url.");454 },455 checkFlair: function (character) {456 // If Flair is present, it must be a string.457 if (typeof character.flair != "string")458 logError(character.name + "'s flair is not a string");459 },460 checkDeity: function (character) {461 // Deity is either a string (god's name) or an object {name, url}462 if (typeof character.deity == "string")463 return;464 if (typeof character.deity != "object") {465 logError(character.name + "'s deity is invalid");466 return;467 }468 // Accepted properties469 var deityAccepts = ["name", "url"];470 for (let deityProp in character.deity)471 if (!deityAccepts.includes(deityProp))472 logError(character.name + "'s deity's " + deityProp + " property is not supported");473 // Simple properties474 if (!character.deity.name || typeof character.deity.name != "string")475 logError(character.name + "'s deity has no name.");476 if (!character.deity.url || typeof character.deity.url != "string")477 logError(character.name + "'s deity has no url.");478 },479 checkLanguages: function (character) {480 // If Languages is present, it must be a string.481 if (typeof character.languages != "string")482 logError(character.name + "'s language is not a string");483 },484}485function checkOverProperties(character) {486 var allAccepted = [487 "name", "flair", "meta",488 "alignment", "deity", "languages",489 "ancestry", "level",490 "str", "dex", "con", "int", "wis", "cha",491 "traits", "startingFeats", "progressFeats", "targetFeats",492 "spells", "equips", "loot"493 ];494 for (let prop in character)495 if (!allAccepted.includes(prop))496 logError(character.name + "'s " + prop + " property is not supported");...
actions.js
Source:actions.js
...6 res => {7 if (res.response.status === 200) {8 commit(types.REFRESH_STAFF, res.result.data)9 } else {10 logError('è·ååå·¥å表失败', res.response.status)11 }12 },13 err => {14 logError('è·ååå·¥å表失败', err)15 }16 )17 },18 synchronizeOlist ({commit}) {19 let arr = []20 $fetch('notice/list?is_read=1').then(21 res => {22 if (res.response.status === 200) {23 res.result.data.forEach(v => {24 if (arr.length < 5) {25 arr.push(v)26 }27 })28 commit(types.MESSAGE_OLIST, arr)29 } else {30 logError('è·åæ¶æ¯å表失败', res.response.status)31 }32 },33 err => {34 logError('è·åæ¶æ¯å表失败', err)35 }36 )37 },38 synchronizeClearMsg ({commit}) {39 let arr = []40 commit(types.MESSAGE_OLIST, arr)41 // $fetch('notice/list?is_read=1').then(42 // res => {43 // if (res.response.status === 200) {44 // res.result.data.forEach(v => {45 // if (arr.length < 5) {46 // arr.push(v)47 // }48 // })49 // commit(types.MESSAGE_OLIST, arr)50 // } else {51 // logError('è·åæ¶æ¯å表失败', res.response.status)52 // }53 // },54 // err => {55 // logError('è·åæ¶æ¯å表失败', err)56 // }57 // )58 },59 synchronizeMsgCount ({commit}) {60 $fetch('notice/unread-count').then(61 res => {62 if (res.response.status === 200) {63 commit(types.MESSAGE_COUNT, res.result.data)64 } else {65 logError('è·åæªè¯»æ¶æ¯å¤±è´¥', res.response.status)66 }67 },68 err => {69 logError('è·åæªè¯»æ¶æ¯å¤±è´¥', err)70 }71 )72 },73 synchronizeStores ({commit}) {74 $fetch('store/list').then(75 res => {76 if (res.response.status === 200) {77 commit(types.REFRESH_STORES, res.result.data)78 } else {79 logError('è·åé¨åºå表失败', res.response.status)80 }81 },82 err => {83 logError('è·åé¨åºå表失败', err)84 }85 )86 },87 synchronizeInsurances ({commit}) {88 $fetch('insurance_companies').then(89 res => {90 if (res.response.status === 200) {91 commit(types.REFRESH_INSURANCES, res.result.data)92 } else {93 logError('è·åä¿é©å
¬å¸å表失败', res.response.status)94 }95 },96 err => {97 logError('è·åä¿é©å
¬å¸å表失败', err)98 }99 )100 },101 synchronizeBrands ({commit}) {102 $fetch('vehicles/brands').then(103 res => {104 if (res.response.status === 200) {105 commit(types.REFRESH_BRANDS, res.result.data)106 } else {107 logError('è·å汽车åçå表失败', res.response.status)108 }109 },110 err => {111 logError('è·å汽车åçå表失败', err)112 }113 )114 },115 synchronizeSalesAssistant ({commit}) {116 $fetch('sa/index_no_page', {query: {117 is_sa: true,118 }}).then(119 res => {120 if (res.response.status === 200) {121 commit(types.REFRESH_SALES_ASSISTANT, res.result.data)122 } else {123 logError('è·åéå®ç»çå表失败', res.response.status)124 }125 },126 err => {127 logError('è·åéå®ç»çå表失败', err)128 }129 )130 },131 synchronizeMechanic ({commit}) {132 $fetch('sa/index_no_page', {query: {133 is_mechanic: true,134 }}).then(135 res => {136 if (res.response.status === 200) {137 commit(types.REFRESH_MECHANIC, res.result.data)138 } else {139 logError('è·åæå·¥å表失败', res.response.status)140 }141 },142 err => {143 logError('è·åæå·¥å表失败', err)144 }145 )146 },147 synchronizeShopCategories ({commit}) {148 $fetch('shop/categories', {query: {149 with_items_count: true,150 }}).then(151 res => {152 if (res.response.status === 200) {153 commit(types.REFRESH_SHOP_CATEGORIES, res.result.data)154 } else {155 logError('è·ååç±»å表失败', res.response.status)156 }157 },158 err => {159 logError('è·ååç±»å表失败', err)160 }161 )162 },163 clearStores ({commit}) {164 commit(types.CLEAR__STORES)165 },166 // è·åä¼ä¸å¾®ä¿¡æ¯å¦ææ167 syncAuthorizeStatus ({commit}) {168 $fetch('quick/work/register_info').then(169 res => {170 if (res.response.status === 200) {171 commit(types.WX_STATUS, res.result.data)172 } else {173 logError('è·åä¼ä¸å¾®ä¿¡ææä¿¡æ¯å¤±è´¥', res.response.status)174 }175 },176 err => {177 logError('è·åä¼ä¸å¾®ä¿¡ææä¿¡æ¯å¤±è´¥', err)178 }179 )180 },181 // æ´æ°æ¯å¦å¼å¯è¯é³ææ¥ç¶æ182 updateAudio ({commit}, message) {183 commit(types.JUDGE_AUDIO, message)184 },185 // è·åå°ç¨åºç³è¯·äºå®¡æ ¸ç¶æ186 syncMiniStatus ({commit}) {187 $fetch('mini_program/get_update_mini_status', {188 method: 'POST',189 }).then(190 res => {191 if (res.response.status === 200) {192 commit(types.MINI_STATUS, res)193 } else {194 logError('è·åå°ç¨åºå®¡æ ¸ä¿¡æ¯å¤±è´¥', res.response.status)195 }196 },197 err => {198 logError('è·åå°ç¨åºå®¡æ ¸ä¿¡æ¯å¤±è´¥', err)199 }200 )201 },202}203function logError (title, error) {204 console.error(`[error] ${title}ï¼ ${(error && error.message) || 'æå¡å¼å¸¸'}ï¼${error && error.msgcode}ï¼`, error)...
ScouterDataService.js
Source:ScouterDataService.js
...38 data: data,39 dataType: 'json'40 }).fail(function (errdata)41 {42 ds.logError("save", errdata);43 });44 },45 saveHuman: function (data)46 {47 var48 type = httpVerbs.POST,49 url = '/api/HumanEventsApi';50 return $.ajax(51 {52 type: type,53 url: url,54 data: data,55 dataType: 'json'56 }).fail(function (errdata)57 {58 ds.logError("save", errdata);59 });60 },61 saveStack: function (data) {62 var63 type = httpVerbs.POST,64 url = '/api/ScouterApi';65 return $.ajax(66 {67 type: type,68 url: url,69 data: data,70 dataType: 'json'71 }).fail(function (errdata) {72 ds.logError("saveStack", errdata);73 });74 },75 getScoutData: function ()76 {77 return $.ajax(78 {79 type: httpVerbs.GET,80 url: '/api/ScouterApi'81 }).fail(function (errdata)82 {83 ds.logError("getScoutData", errdata);84 });85 },86 updateScoutData: function (data)87 {88 return $.ajax(89 {90 type: httpVerbs.PATCH,91 url: '/api/ScoutDataApi/',92 data: data,93 dataType: 'JSON'94 }).fail(function (errdata)95 {96 ds.logError("updateScoutData", errdata);97 });98 },99 getMatchData: function(num)100 {101 return $.ajax(102 {103 type: httpVerbs.GET,104 url: '/api/ScoutManagerApi/' + num,105 }).fail(function (errdata)106 {107 ds.logError("getMatchData", errdata);108 });109 },110 setMatch: function(data)111 {112 return $.ajax(113 {114 type: httpVerbs.PUT,115 url: '/api/ScoutManagerApi/',116 data: data,117 dataType: 'JSON'118 }).fail(function (errdata)119 {120 ds.logError("setMatch", errdata);121 });122 },123 addNotes: function(data)124 {125 return $.ajax(126 {127 type: httpVerbs.POST,128 url: '/api/NotesApi/',129 data: data,130 dataType: 'JSON'131 }).fail(function (errdata)132 {133 ds.logError("addNotes", errdata);134 });135 },136 undo: function(num)137 {138 return $.ajax(139 {140 type: httpVerbs.DEL,141 url: '/api/ScoutDataApi/' + num142 }).fail(function (errdata)143 {144 ds.logError("undo", errdata);145 });146 },147 undoHuman: function (num)148 {149 return $.ajax(150 {151 type: httpVerbs.DEL,152 url: '/api/HumanEventsApi/' + num153 }).fail(function (errdata)154 {155 ds.logError("undo", errdata);156 });157 },158 undoStack: function (num) {159 return $.ajax(160 {161 type: httpVerbs.DEL,162 url: '/api/ScouterApi/' + num163 }).fail(function (errdata) {164 ds.logError("undoStack", errdata);165 });166 },167 updateCounter: function(num)168 {169 return $.ajax(170 {171 type: httpVerbs.GET,172 url: '/api/ScoutDataApi/' + num173 }).fail(function (errdata)174 {175 ds.logError("updateCounter", errdata);176 });177 },178 updateHumanCounter: function (num)179 {180 return $.ajax(181 {182 type: httpVerbs.GET,183 url: '/api/HumanEventsApi/' + num184 }).fail(function (errdata)185 {186 ds.logError("updateHumanCounter", errdata);187 });188 }189 };190 _.bindAll(ds, 'save', 'saveHuman', 'saveStack', 'getScoutData', 'updateScoutData', 'getMatchData', 'setMatch', 'addNotes', 'undo', 'undo', 'undoStack', 'updateCounter', 'updateHumanCounter');191 return {192 logError: ds.logError,193 save: ds.save,194 saveHuman: ds.saveHuman,195 saveStack: ds.saveStack,196 getScoutData: ds.getScoutData,197 updateScoutData: ds.updateScoutData,198 getMatchData: ds.getMatchData,199 setMatch: ds.setMatch,200 addNotes: ds.addNotes,...
index.test.js
Source:index.test.js
...27 "Pellentesque gravida orci in tellus tristique, ac commodo nibh congue.";28 var error = new Error();29 error.name = name;30 error.message = message;31 logError("a label", error);32 assert(spy.called);33 assert(spy.calledWithMatch(name));34 assert(spy.calledWithMatch(message));35 });36 it("calls config.logger function with a stack", function() {37 var spy = this.sandbox.spy();38 var logError = configureLogError({39 logger: spy,40 setTimeout: this.timeOutStub,41 useImmediateExceptions: false42 });43 var stack =44 "Integer rutrum dictum elit, posuere accumsan nisi pretium vel. Phasellus adipiscing.";45 var error = new Error();46 error.stack = stack;47 logError("another label", error);48 assert(spy.called);49 assert(spy.calledWithMatch(stack));50 });51 it("should call config.setTimeout", function() {52 var logError = configureLogError({53 setTimeout: this.timeOutStub,54 useImmediateExceptions: false55 });56 var error = new Error();57 logError("some wonky label", error);58 assert(this.timeOutStub.calledOnce);59 });60 it("should pass a throwing function to config.setTimeout", function() {61 var logError = configureLogError({62 setTimeout: this.timeOutStub,63 useImmediateExceptions: false64 });65 var error = new Error();66 logError("async error", error);67 var func = this.timeOutStub.args[0][0];68 assert.exception(func);69 });70 describe("config.useImmediateExceptions", function() {71 beforeEach(function() {72 this.sandbox = sinon.createSandbox();73 this.timeOutStub = this.sandbox.stub();74 });75 afterEach(function() {76 this.sandbox.restore();77 });78 it("throws the logged error immediately, does not call logError.setTimeout when flag is true", function() {79 var error = new Error();80 var logError = configureLogError({81 setTimeout: this.timeOutStub,82 useImmediateExceptions: true83 });84 assert.exception(function() {85 logError("an error", error);86 });87 assert(this.timeOutStub.notCalled);88 });89 it("does not throw logged error immediately and calls logError.setTimeout when flag is false", function() {90 var error = new Error();91 var logError = configureLogError({92 setTimeout: this.timeOutStub,93 useImmediateExceptions: false94 });95 refute.exception(function() {96 logError("an error", error);97 });98 assert(this.timeOutStub.called);99 });100 });101 describe("#835", function() {102 it("logError() throws an exception if the passed err is read-only", function() {103 var logError = configureLogError({ useImmediateExceptions: true });104 // passes105 var err = {106 name: "TestError",107 message: "this is a proper exception"108 };109 assert.exception(110 function() {111 logError("#835 test", err);112 },113 {114 name: err.name115 }116 );117 // fails until this issue is fixed118 assert.exception(119 function() {120 logError(121 "#835 test",122 "this literal string is not a proper exception"123 );124 },125 {126 name: "#835 test"127 }128 );129 });130 });...
api.js
Source:api.js
...27 setToken = (token)=> {28 this.token = token29 this.isLoggedIn=true30 }31 logError(error){32 errorHandler(error)33 }34 35 getBanners(bid,success,error){36 this.http.get('getbanner',{params:{bid:bid}}).then(success,error)37 }38 getNewsBanner(){39 return this.http.get('getnewsbanner')40 }41 getNewsNav(success,error=this.logError){42 this.http.get('getNewsNav').then(success,error)43 }44 getNewsList(success,error=this.logError){45 this.http.get('getNewsList').then(success,error)...
make-transaction.js
Source:make-transaction.js
1const randomIntegerFromInterval = (min, max) => {2 return Math.floor(Math.random() * (max - min + 1) + min);3};4const makeTransaction = ({ id }) => {5 const delay = randomIntegerFromInterval(200, 500);6 return new Promise((resolve, reject) => {7 setTimeout(() => {8 const canProcess = Math.random() > 0.3;9 if (canProcess) {10 resolve({ id, time: delay });11 }12 reject(id);13 }, delay);14 });15};16const logSuccess = ({ id, time }) => {17 console.log(`Transaction ${id} processed in ${time}ms`);18};19const logError = (id) => {20 console.warn(`Error processing transaction ${id}. Please try again later.`);21};22/*23 * РабоÑÐ°ÐµÑ Ñак24 */25// makeTransaction({ id: 70, amount: 150 }, logSuccess, logError);26// makeTransaction({ id: 71, amount: 230 }, logSuccess, logError);27// makeTransaction({ id: 72, amount: 75 }, logSuccess, logError);28// makeTransaction({ id: 73, amount: 100 }, logSuccess, logError);29/*30 * Ðолжно ÑабоÑаÑÑ Ñак31 */32makeTransaction({ id: 70, amount: 150 }).then(logSuccess).catch(logError);33makeTransaction({ id: 71, amount: 230 }).then(logSuccess).catch(logError);34makeTransaction({ id: 72, amount: 75 }).then(logSuccess).catch(logError);...
Using AI Code Generation
1const { InternalLogger } = require('playwright');2InternalLogger.logError("This is an error message");3InternalLogger.logWarning("This is a warning message");4InternalLogger.logInfo("This is an info message");5InternalLogger.logDebug("This is a debug message");6const { Logger } = require('playwright');7Logger.logError("This is an error message");8Logger.logWarning("This is a warning message");9Logger.logInfo("This is an info message");10Logger.logDebug("This is a debug message");11const { ConsoleLogger } = require('playwright');12ConsoleLogger.logError("This is an error message");13ConsoleLogger.logWarning("This is a warning message");14ConsoleLogger.logInfo("This is an info message");15ConsoleLogger.logDebug("This is a debug message");16const { FileLogger } = require('playwright');17FileLogger.logError("This is an error message");18FileLogger.logWarning("This is a warning message");19FileLogger.logInfo("This is an info message");20FileLogger.logDebug("This is a debug message");21const { ConsoleLogger } = require('playwright');22const { FileLogger } = require('playwright');23const { Logger } = require('playwright');24Logger.logError("This is an error message");25Logger.logWarning("This is a warning message");26Logger.logInfo("This is an info message");27Logger.logDebug("This is a debug message");28ConsoleLogger.logError("This is an error message");29ConsoleLogger.logWarning("This is a warning message");30ConsoleLogger.logInfo("This is an info message");31ConsoleLogger.logDebug("This is a debug message");32FileLogger.logError("This is an error message");33FileLogger.logWarning("This is a warning message");34FileLogger.logInfo("This is an info message");35FileLogger.logDebug("This is a debug message");36Logger.logError("This is an error message");37Logger.logWarning("This is a warning message");38Logger.logInfo("This is an info message");39Logger.logDebug("
Using AI Code Generation
1const { logError } = require("playwright/lib/utils/logger");2logError("Error message");3const { logWarning } = require("playwright/lib/utils/logger");4logWarning("Warning message");5const { logDebug } = require("playwright/lib/utils/logger");6logDebug("Debug message");7const { logInfo } = require("playwright/lib/utils/logger");8logInfo("Info message");9const { logPolitely } = require("playwright/lib/utils/logger");10logPolitely("Politely message");11const { logError } = require("playwright/lib/utils/logger");12logError("Error message");13const { logWarning } = require("playwright/lib/utils/logger");14logWarning("Warning message");15const { logDebug } = require("playwright/lib/utils/logger");16logDebug("Debug message");17const { logInfo } = require("playwright/lib/utils/logger");18logInfo("Info message");19const { logPolitely } = require("playwright/lib/utils/logger");20logPolitely("Politely message");21const { logError } = require("playwright/lib/utils/logger");22logError("Error message");23const { logWarning } = require("playwright/lib/utils/logger");24logWarning("Warning message");25const { logDebug } = require("playwright/lib/utils/logger");26logDebug("Debug message");27const { logInfo } = require("playwright/lib/utils/logger");28logInfo("Info message");29const { logPolitely } = require("playwright/lib/utils/logger");30logPolitely("Politely message");
Using AI Code Generation
1const { logError } = require('playwright/lib/utils/stackTrace');2logError(new Error('Something went wrong'));3const { logError } = require('playwright/lib/utils/stackTrace');4logError(new Error('Something went wrong'));5const { logError } = require('playwright/lib/utils/stackTrace');6logError(new Error('Something went wrong'));7const { logError } = require('playwright/lib/utils/stackTrace');8logError(new Error('Something went wrong'));9const { logError } = require('playwright/lib/utils/stackTrace');10logError(new Error('Something went wrong'));11const { logError } = require('playwright/lib/utils/stackTrace');12logError(new Error('Something went wrong'));13const { logError } = require('playwright/lib/utils/stackTrace');14logError(new Error('Something went wrong'));15const { logError } = require('playwright/lib/utils/stackTrace');16logError(new Error('Something went wrong'));17const { logError } = require('playwright/lib/utils/stackTrace');18logError(new Error('Something went wrong'));19const { logError } = require('playwright/lib/utils/stackTrace');20logError(new Error('Something went wrong'));21const { logError } = require('playwright/lib/utils/stackTrace');22logError(new Error('Something went wrong'));23const { logError } = require('playwright/lib/utils/
Using AI Code Generation
1const { logError } = require('playwright/lib/server/trace/recorder/traceEvents');2logError('My error message');3const { logError } = require('playwright/lib/server/trace/recorder/traceEvents');4logError('My error message');5const { logError } = require('playwright/lib/server/trace/recorder/traceEvents');6logError('My error message');7const { logError } = require('playwright/lib/server/trace/recorder/traceEvents');8logError('My error message');9const { logError } = require('playwright/lib/server/trace/recorder/traceEvents');10logError('My error message');11const { logError } = require('playwright/lib/server/trace/recorder/traceEvents');12logError('My error message');13const { logError } = require('playwright/lib/server/trace/recorder/traceEvents');14logError('My error message');15const { logError } = require('playwright/lib/server/trace/recorder/traceEvents');16logError('My error message');17const { logError } = require('playwright/lib/server/trace/recorder/traceEvents');18logError('My error message');19const { logError } = require('playwright/lib/server/trace/recorder/traceEvents');20logError('My error message');21const { logError } = require('playwright/lib/server/trace/recorder/traceEvents');22logError('My error message');23const { log
Using AI Code Generation
1const { logError } = require('playwright/lib/utils/logger').helper;2logError('This is an error');3const { test, expect } = require('@playwright/test');4test('basic test', async ({ page }) => {5 const title = page.locator('text=Playwright');6 await expect(title).toBeVisible();7});8const { test, expect } = require('@playwright/test');9test('basic test', async ({ page }) => {10 const title = page.locator('text=Playwright');11 await expect(title).toBeVisible();12}, {13});14const { test, expect } = require('@playwright/test');15test('basic test', async ({ page }) => {16 const title = page.locator('text=Playwright');17 await expect(title).toBeVisible();18}, {19});20const { test, expect } = require('@playwright/test');21test('basic test', async ({ page }, testInfo) => {22 const title = page.locator('text=Playwright');23 await expect(title).toBeVisible();24}, {25 param: {26 }27});28const { test, expect } = require('@playwright/test');29test('basic test', async ({ page }) => {30 const title = page.locator('text=Playwright');31 await expect(title
Using AI Code Generation
1const { logError } = require('playwright-core/lib/server/trace/recorder');2logError(new Error('Test error'));3const { logError } = require('playwright-core/lib/server/trace/recorder');4const { helper } = require('playwright-core/lib/server/helper');5logError(helper.errorWithCallFrames(new Error('Test error')));6const { logError } = require('playwright-core/lib/server/trace/recorder');7const { helper } = require('playwright-core/lib/server/helper');8logError(helper.errorWithCallFrames(new Error('Test error')));9const { logError } = require('playwright-core/lib/server/trace/recorder');10const { helper } = require('playwright-core/lib/server/helper');11logError(helper.errorWithCallFrames(new Error('Test error')));12const { logError } = require('playwright-core/lib/server/trace/recorder');13const { helper } = require('playwright-core/lib/server/helper');14logError(helper.errorWithCallFrames(new Error('Test error')));15const { logError } = require('
Using AI Code Generation
1const { logError } = require('playwright/lib/utils/logger');2logError(new Error('Test Error'));3 at Object.<anonymous> (C:\Users\manoj\Documents\test.js:4:9)4 at Module._compile (internal/modules/cjs/loader.js:1063:30)5 at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)6 at Module.load (internal/modules/cjs/loader.js:928:32)7 at Function.Module._load (internal/modules/cjs/loader.js:769:14)8 at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)9logError(error)10const { logError } = require('playwright/lib/utils/logger');11logError(new Error('Test Error'));12 at Object.<anonymous> (C:\Users\manoj\Documents\test.js:4:9)13 at Module._compile (internal/modules/cjs/loader.js:1063:30)14 at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)15 at Module.load (internal/modules/cjs/loader.js:928:32)16 at Function.Module._load (internal/modules/cjs/loader.js:769:14)17 at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!