mirror of
https://github.com/apache/superset.git
synced 2026-04-19 16:14:52 +00:00
refactor(monorepo): stage 1 (#17427)
* skip geojson in pre-commit update prettier * update package.json update package.json u package pkg pkg2 * lint main repo 2 lint main repo lint * lintrc lintrc 2 lintrc2 lintrc 3 lintrc * fix import * refresh lock file * fix break line make @ts-ignore invalid * update rat-excludes rat-excludes update rat-excludes * update eslintrc.js * lint lint lint
This commit is contained in:
@@ -17,16 +17,18 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
export const cacheWrapper = <T extends Array<any>, U>(
|
||||
fn: (...args: T) => U,
|
||||
cache: Map<string, any>,
|
||||
keyFn: (...args: T) => string = (...args: T) => JSON.stringify([...args]),
|
||||
) => (...args: T): U => {
|
||||
const key = keyFn(...args);
|
||||
if (cache.has(key)) {
|
||||
return cache.get(key);
|
||||
}
|
||||
const result = fn(...args);
|
||||
cache.set(key, result);
|
||||
return result;
|
||||
};
|
||||
export const cacheWrapper =
|
||||
<T extends Array<any>, U>(
|
||||
fn: (...args: T) => U,
|
||||
cache: Map<string, any>,
|
||||
keyFn: (...args: T) => string = (...args: T) => JSON.stringify([...args]),
|
||||
) =>
|
||||
(...args: T): U => {
|
||||
const key = keyFn(...args);
|
||||
if (cache.has(key)) {
|
||||
return cache.get(key);
|
||||
}
|
||||
const result = fn(...args);
|
||||
cache.set(key, result);
|
||||
return result;
|
||||
};
|
||||
|
||||
@@ -21,23 +21,25 @@ import { JsonObject } from '@superset-ui/core';
|
||||
type TestWithIdType<T> = T extends string ? string : { 'data-test': string };
|
||||
|
||||
// Using bem standard
|
||||
export const testWithId = <T extends string | JsonObject = JsonObject>(
|
||||
prefix?: string,
|
||||
idOnly = false,
|
||||
) => (id?: string, localIdOnly = false): TestWithIdType<T> => {
|
||||
const resultIdOnly = localIdOnly || idOnly;
|
||||
if (!id && prefix) {
|
||||
return (resultIdOnly
|
||||
? prefix
|
||||
: { 'data-test': prefix }) as TestWithIdType<T>;
|
||||
}
|
||||
if (id && !prefix) {
|
||||
return (resultIdOnly ? id : { 'data-test': id }) as TestWithIdType<T>;
|
||||
}
|
||||
if (!id && !prefix) {
|
||||
console.warn('testWithId function has missed "prefix" and "id" params');
|
||||
return (resultIdOnly ? '' : { 'data-test': '' }) as TestWithIdType<T>;
|
||||
}
|
||||
const newId = `${prefix}__${id}`;
|
||||
return (resultIdOnly ? newId : { 'data-test': newId }) as TestWithIdType<T>;
|
||||
};
|
||||
export const testWithId =
|
||||
<T extends string | JsonObject = JsonObject>(
|
||||
prefix?: string,
|
||||
idOnly = false,
|
||||
) =>
|
||||
(id?: string, localIdOnly = false): TestWithIdType<T> => {
|
||||
const resultIdOnly = localIdOnly || idOnly;
|
||||
if (!id && prefix) {
|
||||
return (
|
||||
resultIdOnly ? prefix : { 'data-test': prefix }
|
||||
) as TestWithIdType<T>;
|
||||
}
|
||||
if (id && !prefix) {
|
||||
return (resultIdOnly ? id : { 'data-test': id }) as TestWithIdType<T>;
|
||||
}
|
||||
if (!id && !prefix) {
|
||||
console.warn('testWithId function has missed "prefix" and "id" params');
|
||||
return (resultIdOnly ? '' : { 'data-test': '' }) as TestWithIdType<T>;
|
||||
}
|
||||
const newId = `${prefix}__${id}`;
|
||||
return (resultIdOnly ? newId : { 'data-test': newId }) as TestWithIdType<T>;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user