Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing autofix for methods offered on the global jQuery object can be replaced by native browser APIs #590

Open
19 tasks
flovogt opened this issue Mar 5, 2025 · 1 comment
Labels
autofix An issue related to the autofix capabilities

Comments

@flovogt
Copy link
Member

flovogt commented Mar 5, 2025

Missing autofix for methods offered on the global jQuery object can be replaced by native browser APIs

Methods offered on the global jQuery object can be replaced by native browser APIs are deprecated. Therefore an autofix should be offered by UI5 linter.

Deprecated APIs:

  • jQuery.sap.resources.isBundle
  • jQuery.device.is.standalone
  • jQuery.support.retina
  • jQuery.sap.startsWith
  • jQuery.sap.startsWithIgnoreCase
  • jQuery.sap.endsWith
  • jQuery.sap.endsWithIgnoreCase
  • jQuery.sap.padLeft
  • jQuery.sap.padRight
  • jQuery.sap.delayedCall
  • jQuery.sap.clearDelayedCall
  • jQuery.sap.clearIntervalCall
  • jQuery.sap.intervalCall
  • jQuery.sap.domById
  • jQuery.sap.isEqualNode
  • jQuery.sap.newObject
  • jQuery.sap.getter
  • jQuery.inArray
  • jQuery.isArray

Deprecated Usage

var isBundle = jQuery.sap.resources.isBundle(new sap.base.i18n.ResourceBundle());

var isStandAlone = jQuery.device.is.standalone;
var retinaDisplay = jQuery.support.retina;
var startsWithH = jQuery.sap.startsWith("Hello", "H");
var startsWithHOrh = jQuery.sap.startsWithIgnoreCase("Hello", "h");
var endsWithY = jQuery.sap.endsWith("Hello Y", "Y");
var endsWithYOry = jQuery.sap.endssWithIgnoreCase("Hello Y", "y");
var padLeft = jQuery.sap.padLeft("a", "0", 4); // returns "000a";
var padRight = jQuery.sap.padRight("a", "0", 4); // returns "a000";

var myObject = {};
myObject.myFunction = function(param1, param2) {};
var delayedCallId = jQuery.sap.delayedCall(1000, myObject, "myFunction", ["myParam1", "myParam2"]);
jQuery.sap.clearDelayedCall(delayedCallId);
var intervalCallId = jQuery.sap.intervalCall(1000, myObject, "myFunction", ["myParam1", "myParam2"]);
jQuery.sap.clearIntervalCall(intervalCallId);

var element = jQuery.sap.domById("popup");
const divList = document.getElementsByTagName("div");
var isEqNode = jQuery.sap.isEqualNode(divList[0], divList[0]);

var person = {firstname: "Peter", lastname: "Miller" };
var newObj = jQuery.sap.newObject(person);
var getPerson = jQuery.sap.getter(person);

var myData = ["a", "b", "c"];
var indexOfEntity = jQuery.inArray("b", myData);
var isValueAnArray = jQuery.isArray(myData);

Recommended Usage

sap.ui.define([
  "sap/base/i18n/ResourceBundle"
], (ResourceBundle) => {
  "use strict";
  var isBundle = new ResourceBundle() instanceof ResourceBundle;

  var isStandAlone = window.navigator.standalone;
  var retinaDisplay = window.devicePixelRatio >= 2;
  var startsWithH = "Hello".startsWith("H");
  var startsWithHOrh = "Hello".toLowerCase().startsWith("h".toLowerCase());
  var endsWithH = "Hello Y".endsWith("Y");
  var endssWithHOrh = "Hello Y".toLowerCase().endsWith("y".toLowerCase());
  var padLeft = "a".padStart(4, "0"); // returns "000a";
  var padRight = "a".padEnd(4, "0"); // returns "a000";

  var myObject = {};
  myObject.myFunction = function(param1, param2) {};
  var delayedCallId = window.setTimeout(myObject.myFunction, 1000, "myParam1", "myParam2");
  window.clearTimout(delayedCallId);
  var intervalCallId =  window.setTimeout(myObject.myFunction, 1000, "myParam1", "myParam2");
  window.clearInterval(intervalCallId);

  var element = window.document.getElementById("popup");
  var divList = document.getElementsByTagName("div");
  var isEqNode = divList[0].isEqualNode(divList[0]);
  
  var getPerson = function(value) { return function() { return value; }; }(person);
  var myData = ["a", "b", "c"];
  var indexOfEntity = (myData ? Array.prototype.indexOf.call(myData, "b") : -1);
  var isValueAnArray = Array.isArray(myData);
});
@flovogt flovogt added autofix An issue related to the autofix capabilities enhancement labels Mar 5, 2025
@flovogt
Copy link
Member Author

flovogt commented Mar 5, 2025

Will be implemented in CPOUI5FOUNDATION-990.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autofix An issue related to the autofix capabilities
Projects
None yet
Development

No branches or pull requests

1 participant