mirror of
https://github.com/apache/superset.git
synced 2026-04-22 01:24:43 +00:00
* 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
46 lines
1.7 KiB
TypeScript
46 lines
1.7 KiB
TypeScript
/**
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*/
|
|
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>;
|
|
};
|