@fringeworks/react-utils 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ja.md CHANGED
@@ -50,6 +50,7 @@ import useLatestRef from '@fringeworks/react-utils/hooks/useLatestRef';
50
50
  | `extendElement(element, overrideProps?, ...children)` | `className` と `style` をマージしてエレメントを複製する |
51
51
  | `forEachContent(children, callback)` | Fragment を透過し、エレメント・文字列・数値を順に処理する |
52
52
  | `forEachElement(children, callback)` | Fragment を透過し、エレメントを順に処理する |
53
+ | `getComponentName(Component)` | HOC の `displayName` などに使う、コンポーネントの名前を返す |
53
54
  | `markAt()` | 呼び出すたびに増加する値を返す |
54
55
  | `setRefCurrent(value, ...refs)` | 複数の ref に値を設定し、クリーンアップ関数を返す |
55
56
  | `transformContent(children, callback)` | Fragment を透過し、エレメント・文字列・数値を変換した配列を返す |
@@ -242,6 +243,18 @@ Fragment を透過して `children` を順に処理します。`forEachContent`
242
243
  - 配列や iterable も展開します。
243
244
  - `index` は、Fragment をまたいだ連番です。
244
245
 
246
+ ### `getComponentName`
247
+
248
+ ```ts
249
+ getComponentName(Component: ElementType): string
250
+ ```
251
+
252
+ HOC の `displayName` などに使う、コンポーネントの名前を返します。
253
+
254
+ - 組み込みタグ(`'div'` など)はそのまま返します。
255
+ - `displayName` を関数名より優先します。
256
+ - どちらも無い(空文字の)場合は `Unknown` を返します。
257
+
245
258
  ### `markAt`
246
259
 
247
260
  ```ts
package/README.md CHANGED
@@ -50,6 +50,7 @@ import useLatestRef from '@fringeworks/react-utils/hooks/useLatestRef';
50
50
  | `extendElement(element, overrideProps?, ...children)` | Clones an element, merging `className` and `style` |
51
51
  | `forEachContent(children, callback)` | Iterates over elements, strings, and numbers, looking through Fragments |
52
52
  | `forEachElement(children, callback)` | Iterates over elements, looking through Fragments |
53
+ | `getComponentName(Component)` | Returns the name of a component, for use in an HOC's `displayName` |
53
54
  | `markAt()` | Returns a value that increases on every call |
54
55
  | `setRefCurrent(value, ...refs)` | Sets a value to multiple refs and returns a cleanup function |
55
56
  | `transformContent(children, callback)` | Maps elements, strings, and numbers to an array, looking through Fragments |
@@ -242,6 +243,18 @@ Iterates over `children`, looking through Fragments. `forEachContent` handles el
242
243
  - Arrays and iterables are also expanded.
243
244
  - `index` is a sequential number across Fragments.
244
245
 
246
+ ### `getComponentName`
247
+
248
+ ```ts
249
+ getComponentName(Component: ElementType): string
250
+ ```
251
+
252
+ Returns the name of a component, for use in an HOC's `displayName` and the like.
253
+
254
+ - A built-in tag (such as `'div'`) is returned as is.
255
+ - `displayName` takes precedence over the function name.
256
+ - Returns `Unknown` when neither is available (or both are empty).
257
+
245
258
  ### `markAt`
246
259
 
247
260
  ```ts
package/index.cjs CHANGED
@@ -14,6 +14,7 @@ const require_utils_ensureComponent_ensureComponent = require("./utils/ensureCom
14
14
  const require_utils_extendElement_extendElement = require("./utils/extendElement/extendElement.cjs");
15
15
  const require_utils_forEachContent_forEachContent = require("./utils/forEachContent/forEachContent.cjs");
16
16
  const require_utils_forEachElement_forEachElement = require("./utils/forEachElement/forEachElement.cjs");
17
+ const require_utils_getComponentName_getComponentName = require("./utils/getComponentName/getComponentName.cjs");
17
18
  const require_utils_transformContent_transformContent = require("./utils/transformContent/transformContent.cjs");
18
19
  const require_utils_transformElement_transformElement = require("./utils/transformElement/transformElement.cjs");
19
20
  require("./utils/index.cjs");
@@ -23,6 +24,7 @@ exports.ensureComponent = require_utils_ensureComponent_ensureComponent.default;
23
24
  exports.extendElement = require_utils_extendElement_extendElement.default;
24
25
  exports.forEachContent = require_utils_forEachContent_forEachContent.default;
25
26
  exports.forEachElement = require_utils_forEachElement_forEachElement.default;
27
+ exports.getComponentName = require_utils_getComponentName_getComponentName.default;
26
28
  exports.markAt = require_utils_markAt_markAt.default;
27
29
  exports.setRefCurrent = require_utils_setRefCurrent_setRefCurrent.default;
28
30
  exports.transformContent = require_utils_transformContent_transformContent.default;
package/index.d.cts CHANGED
@@ -19,8 +19,9 @@ import { ExtendableProps } from "./utils/extendElement/types.cjs";
19
19
  import extendElement from "./utils/extendElement/extendElement.cjs";
20
20
  import forEachContent from "./utils/forEachContent/forEachContent.cjs";
21
21
  import forEachElement from "./utils/forEachElement/forEachElement.cjs";
22
+ import getComponentName from "./utils/getComponentName/getComponentName.cjs";
22
23
  import setRefCurrent from "./utils/setRefCurrent/setRefCurrent.cjs";
23
24
  import transformContent from "./utils/transformContent/transformContent.cjs";
24
25
  import transformElement from "./utils/transformElement/transformElement.cjs";
25
26
  import "./utils/index.cjs";
26
- export { type AppliedProps, type CSSPropertiesWithVars, type ExecutionFunction, type ExecutionRequest, type ExtendableProps, type LatestRef, type MarkAtResult, type SkippedDefaults, type UseExecutionAtOptions, type UseExecutionAtResult, type UsePreviousValueOptions, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, markAt, setRefCurrent, transformContent, transformElement, useCombinedRefs, useConstant, useExecutionAt, useIsMounted, useLatestRef, usePreviousValue, useStableLength };
27
+ export { type AppliedProps, type CSSPropertiesWithVars, type ExecutionFunction, type ExecutionRequest, type ExtendableProps, type LatestRef, type MarkAtResult, type SkippedDefaults, type UseExecutionAtOptions, type UseExecutionAtResult, type UsePreviousValueOptions, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement, useCombinedRefs, useConstant, useExecutionAt, useIsMounted, useLatestRef, usePreviousValue, useStableLength };
package/index.d.mts CHANGED
@@ -19,8 +19,9 @@ import { ExtendableProps } from "./utils/extendElement/types.mjs";
19
19
  import extendElement from "./utils/extendElement/extendElement.mjs";
20
20
  import forEachContent from "./utils/forEachContent/forEachContent.mjs";
21
21
  import forEachElement from "./utils/forEachElement/forEachElement.mjs";
22
+ import getComponentName from "./utils/getComponentName/getComponentName.mjs";
22
23
  import setRefCurrent from "./utils/setRefCurrent/setRefCurrent.mjs";
23
24
  import transformContent from "./utils/transformContent/transformContent.mjs";
24
25
  import transformElement from "./utils/transformElement/transformElement.mjs";
25
26
  import "./utils/index.mjs";
26
- export { type AppliedProps, type CSSPropertiesWithVars, type ExecutionFunction, type ExecutionRequest, type ExtendableProps, type LatestRef, type MarkAtResult, type SkippedDefaults, type UseExecutionAtOptions, type UseExecutionAtResult, type UsePreviousValueOptions, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, markAt, setRefCurrent, transformContent, transformElement, useCombinedRefs, useConstant, useExecutionAt, useIsMounted, useLatestRef, usePreviousValue, useStableLength };
27
+ export { type AppliedProps, type CSSPropertiesWithVars, type ExecutionFunction, type ExecutionRequest, type ExtendableProps, type LatestRef, type MarkAtResult, type SkippedDefaults, type UseExecutionAtOptions, type UseExecutionAtResult, type UsePreviousValueOptions, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement, useCombinedRefs, useConstant, useExecutionAt, useIsMounted, useLatestRef, usePreviousValue, useStableLength };
package/index.mjs CHANGED
@@ -13,8 +13,9 @@ import ensureComponent from "./utils/ensureComponent/ensureComponent.mjs";
13
13
  import extendElement from "./utils/extendElement/extendElement.mjs";
14
14
  import forEachContent from "./utils/forEachContent/forEachContent.mjs";
15
15
  import forEachElement from "./utils/forEachElement/forEachElement.mjs";
16
+ import getComponentName from "./utils/getComponentName/getComponentName.mjs";
16
17
  import transformContent from "./utils/transformContent/transformContent.mjs";
17
18
  import transformElement from "./utils/transformElement/transformElement.mjs";
18
19
  import "./utils/index.mjs";
19
20
 
20
- export { applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, markAt, setRefCurrent, transformContent, transformElement, useCombinedRefs, useConstant, useExecutionAt, useIsMounted, useLatestRef, usePreviousValue, useStableLength };
21
+ export { applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement, useCombinedRefs, useConstant, useExecutionAt, useIsMounted, useLatestRef, usePreviousValue, useStableLength };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fringeworks/react-utils",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "A library some will find handy, providing utilities for React.",
5
5
  "keywords": [
6
6
  "react"
@@ -164,6 +164,16 @@
164
164
  "default": "./utils/forEachElement/index.cjs"
165
165
  }
166
166
  },
167
+ "./utils/getComponentName": {
168
+ "import": {
169
+ "types": "./utils/getComponentName/index.d.mts",
170
+ "default": "./utils/getComponentName/index.mjs"
171
+ },
172
+ "require": {
173
+ "types": "./utils/getComponentName/index.d.cts",
174
+ "default": "./utils/getComponentName/index.cjs"
175
+ }
176
+ },
167
177
  "./utils/markAt": {
168
178
  "import": {
169
179
  "types": "./utils/markAt/index.d.mts",
@@ -0,0 +1,18 @@
1
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
2
+ //#region src/utils/getComponentName/getComponentName.ts
3
+ /**
4
+ * コンポーネントの名前を取得する(HOCのdisplayNameなどに使う)
5
+ *
6
+ * - HTMLの要素名はそのまま使う
7
+ * - displayName・関数名が無い(空文字の)場合は`Unknown`
8
+ * @param Component コンポーネント
9
+ * @returns
10
+ */
11
+ function getComponentName(Component) {
12
+ if (typeof Component === "string") return Component;
13
+ const { displayName, name } = Component;
14
+ return displayName || name || "Unknown";
15
+ }
16
+
17
+ //#endregion
18
+ exports.default = getComponentName;
@@ -0,0 +1,12 @@
1
+ import { ElementType } from "react";
2
+ //#region src/utils/getComponentName/getComponentName.d.ts
3
+ /**
4
+ * コンポーネントの名前を取得する(HOCのdisplayNameなどに使う)
5
+ *
6
+ * - HTMLの要素名はそのまま使う
7
+ * - displayName・関数名が無い(空文字の)場合は`Unknown`
8
+ * @param Component コンポーネント
9
+ * @returns
10
+ */
11
+ declare function getComponentName(Component: ElementType): string;
12
+ export = getComponentName;
@@ -0,0 +1,12 @@
1
+ import { ElementType } from "react";
2
+ //#region src/utils/getComponentName/getComponentName.d.ts
3
+ /**
4
+ * コンポーネントの名前を取得する(HOCのdisplayNameなどに使う)
5
+ *
6
+ * - HTMLの要素名はそのまま使う
7
+ * - displayName・関数名が無い(空文字の)場合は`Unknown`
8
+ * @param Component コンポーネント
9
+ * @returns
10
+ */
11
+ export default function getComponentName(Component: ElementType): string;
12
+ //#endregion
@@ -0,0 +1,17 @@
1
+ //#region src/utils/getComponentName/getComponentName.ts
2
+ /**
3
+ * コンポーネントの名前を取得する(HOCのdisplayNameなどに使う)
4
+ *
5
+ * - HTMLの要素名はそのまま使う
6
+ * - displayName・関数名が無い(空文字の)場合は`Unknown`
7
+ * @param Component コンポーネント
8
+ * @returns
9
+ */
10
+ function getComponentName(Component) {
11
+ if (typeof Component === "string") return Component;
12
+ const { displayName, name } = Component;
13
+ return displayName || name || "Unknown";
14
+ }
15
+
16
+ //#endregion
17
+ export { getComponentName as default };
@@ -0,0 +1,5 @@
1
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
2
+ const require_utils_getComponentName_getComponentName = require("./getComponentName.cjs");
3
+
4
+ exports.default = require_utils_getComponentName_getComponentName.default;
5
+ exports.getComponentName = require_utils_getComponentName_getComponentName.default;
@@ -0,0 +1,2 @@
1
+ import getComponentName from "./getComponentName.cjs";
2
+ export { getComponentName as default, getComponentName };
@@ -0,0 +1,2 @@
1
+ import getComponentName from "./getComponentName.mjs";
2
+ export { getComponentName as default, getComponentName };
@@ -0,0 +1,3 @@
1
+ import getComponentName from "./getComponentName.mjs";
2
+
3
+ export { getComponentName as default, getComponentName };
package/utils/index.cjs CHANGED
@@ -10,6 +10,7 @@ const require_utils_forEachContent_forEachContent = require("./forEachContent/fo
10
10
  require("./forEachContent/index.cjs");
11
11
  const require_utils_forEachElement_forEachElement = require("./forEachElement/forEachElement.cjs");
12
12
  require("./forEachElement/index.cjs");
13
+ const require_utils_getComponentName_getComponentName = require("./getComponentName/getComponentName.cjs");
13
14
  const require_utils_transformContent_transformContent = require("./transformContent/transformContent.cjs");
14
15
  require("./transformContent/index.cjs");
15
16
  const require_utils_transformElement_transformElement = require("./transformElement/transformElement.cjs");
@@ -20,6 +21,7 @@ exports.ensureComponent = require_utils_ensureComponent_ensureComponent.default;
20
21
  exports.extendElement = require_utils_extendElement_extendElement.default;
21
22
  exports.forEachContent = require_utils_forEachContent_forEachContent.default;
22
23
  exports.forEachElement = require_utils_forEachElement_forEachElement.default;
24
+ exports.getComponentName = require_utils_getComponentName_getComponentName.default;
23
25
  exports.markAt = require_utils_markAt_markAt.default;
24
26
  exports.setRefCurrent = require_utils_setRefCurrent_setRefCurrent.default;
25
27
  exports.transformContent = require_utils_transformContent_transformContent.default;
package/utils/index.d.cts CHANGED
@@ -11,10 +11,12 @@ import forEachContent from "./forEachContent/forEachContent.cjs";
11
11
  import "./forEachContent/index.cjs";
12
12
  import forEachElement from "./forEachElement/forEachElement.cjs";
13
13
  import "./forEachElement/index.cjs";
14
+ import getComponentName from "./getComponentName/getComponentName.cjs";
15
+ import "./getComponentName/index.cjs";
14
16
  import setRefCurrent from "./setRefCurrent/setRefCurrent.cjs";
15
17
  import "./setRefCurrent/index.cjs";
16
18
  import transformContent from "./transformContent/transformContent.cjs";
17
19
  import "./transformContent/index.cjs";
18
20
  import transformElement from "./transformElement/transformElement.cjs";
19
21
  import "./transformElement/index.cjs";
20
- export { type AppliedProps, type ExtendableProps, type MarkAtResult, type SkippedDefaults, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, markAt, setRefCurrent, transformContent, transformElement };
22
+ export { type AppliedProps, type ExtendableProps, type MarkAtResult, type SkippedDefaults, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement };
package/utils/index.d.mts CHANGED
@@ -11,10 +11,12 @@ import forEachContent from "./forEachContent/forEachContent.mjs";
11
11
  import "./forEachContent/index.mjs";
12
12
  import forEachElement from "./forEachElement/forEachElement.mjs";
13
13
  import "./forEachElement/index.mjs";
14
+ import getComponentName from "./getComponentName/getComponentName.mjs";
15
+ import "./getComponentName/index.mjs";
14
16
  import setRefCurrent from "./setRefCurrent/setRefCurrent.mjs";
15
17
  import "./setRefCurrent/index.mjs";
16
18
  import transformContent from "./transformContent/transformContent.mjs";
17
19
  import "./transformContent/index.mjs";
18
20
  import transformElement from "./transformElement/transformElement.mjs";
19
21
  import "./transformElement/index.mjs";
20
- export { type AppliedProps, type ExtendableProps, type MarkAtResult, type SkippedDefaults, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, markAt, setRefCurrent, transformContent, transformElement };
22
+ export { type AppliedProps, type ExtendableProps, type MarkAtResult, type SkippedDefaults, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement };
package/utils/index.mjs CHANGED
@@ -9,9 +9,10 @@ import forEachContent from "./forEachContent/forEachContent.mjs";
9
9
  import "./forEachContent/index.mjs";
10
10
  import forEachElement from "./forEachElement/forEachElement.mjs";
11
11
  import "./forEachElement/index.mjs";
12
+ import getComponentName from "./getComponentName/getComponentName.mjs";
12
13
  import transformContent from "./transformContent/transformContent.mjs";
13
14
  import "./transformContent/index.mjs";
14
15
  import transformElement from "./transformElement/transformElement.mjs";
15
16
  import "./transformElement/index.mjs";
16
17
 
17
- export { applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, markAt, setRefCurrent, transformContent, transformElement };
18
+ export { applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement };