Skip to content

Commit

Permalink
Merge pull request #27349 from software-mansion-labs/ts-migration/Per…
Browse files Browse the repository at this point in the history
…sistedRequests

[No QA][TS migration] Migrate 'PersistedRequests.js' lib to TypeScript
  • Loading branch information
tylerkaraszewski authored Sep 19, 2023
2 parents 12dbce8 + 5861283 commit 0603fe1
Showing 1 changed file with 8 additions and 16 deletions.
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
import Onyx from 'react-native-onyx';
import _ from 'underscore';
import isEqual from 'lodash/isEqual';
import ONYXKEYS from '../../ONYXKEYS';
import {Request} from '../../types/onyx';

let persistedRequests = [];
let persistedRequests: Request[] = [];

Onyx.connect({
key: ONYXKEYS.PERSISTED_REQUESTS,
callback: (val) => (persistedRequests = val || []),
callback: (val) => (persistedRequests = val ?? []),
});

function clear() {
Onyx.set(ONYXKEYS.PERSISTED_REQUESTS, []);
}

/**
* @param {Array} requestsToPersist
*/
function save(requestsToPersist) {
function save(requestsToPersist: Request[]) {
if (persistedRequests.length) {
persistedRequests = persistedRequests.concat(requestsToPersist);
} else {
Expand All @@ -25,16 +23,13 @@ function save(requestsToPersist) {
Onyx.set(ONYXKEYS.PERSISTED_REQUESTS, persistedRequests);
}

/**
* @param {Object} requestToRemove
*/
function remove(requestToRemove) {
function remove(requestToRemove: Request) {
/**
* We only remove the first matching request because the order of requests matters.
* If we were to remove all matching requests, we can end up with a final state that is different than what the user intended.
*/
const requests = [...persistedRequests];
const index = _.findIndex(requests, (persistedRequest) => _.isEqual(persistedRequest, requestToRemove));
const index = requests.findIndex((persistedRequest) => isEqual(persistedRequest, requestToRemove));
if (index !== -1) {
requests.splice(index, 1);
}
Expand All @@ -43,10 +38,7 @@ function remove(requestToRemove) {
Onyx.set(ONYXKEYS.PERSISTED_REQUESTS, requests);
}

/**
* @returns {Array}
*/
function getAll() {
function getAll(): Request[] {
return persistedRequests;
}

Expand Down

0 comments on commit 0603fe1

Please sign in to comment.