@isoftdata/svelte-table 2.8.1 → 2.8.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.
@@ -1,22 +1,10 @@
1
- import type { IsAny, UnknownArray, EmptyObject, GreaterThan, IsNever, Subtract } from 'type-fest';
2
- import type { NonRecursiveType, StaticPartOfArray, VariablePartOfArray, ToString } from 'type-fest/source/internal';
3
- import type { PathsOptions } from 'type-fest/source/paths';
1
+ import type { PathsOptions, Paths } from 'type-fest';
4
2
  /**
5
3
  Generate a union of all possible paths to properties in the given object, denoting the object structure with brackets.
6
4
 
7
5
  This is the `Paths` utility type from the `type-fest` package, but with brackets.
8
6
  */
9
- export type BracketPaths<Row, Options extends PathsOptions = {}> = Row extends NonRecursiveType | ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> ? never : IsAny<Row> extends true ? never : Row extends UnknownArray ? number extends Row['length'] ? InternalPaths<StaticPartOfArray<Row>, Options> | InternalPaths<Array<VariablePartOfArray<Row>[number]>, Options> : InternalPaths<Row, Options> : Row extends object ? InternalPaths<Row, Options> : never;
10
- interface InternalPathOptions extends PathsOptions {
11
- doEndBracket?: boolean;
12
- }
13
- type DoEndBracket<Key extends string | number, DoBracket extends boolean | undefined> = DoBracket extends true ? `${Key}]` : Key;
14
- type InternalPaths<T, Options extends InternalPathOptions = {}> = (Options['maxRecursionDepth'] extends number ? Options['maxRecursionDepth'] : 10) extends infer MaxDepth extends number ? Required<T> extends infer T ? T extends EmptyObject | readonly [] ? never : {
15
- [Key in keyof T]: Key extends string | number ? DoEndBracket<Key, Options['doEndBracket']> | DoEndBracket<ToString<Key>, Options['doEndBracket']> | (GreaterThan<MaxDepth, 0> extends true ? IsNever<BracketPaths<T[Key], {
16
- maxRecursionDepth: Subtract<MaxDepth, 1>;
17
- }>> extends false ? `${DoEndBracket<Key, Options['doEndBracket']>}[${BracketPaths<T[Key], {
18
- maxRecursionDepth: Subtract<MaxDepth, 1>;
19
- doEndBracket: true;
20
- }>}` : never : never) : never;
21
- }[keyof T & (T extends UnknownArray ? number : unknown)] : never : never;
7
+ export type BracketPaths<Row, Options extends PathsOptions = {}> = DotToBracket<Paths<Row, Options>>;
8
+ export type DotToBracket<S extends string | unknown> = S extends `${infer Head}.${infer Tail}` ? `${Head}${_DotToBracketTail<Tail>}` : S;
9
+ type _DotToBracketTail<S extends string> = S extends `${infer Part}.${infer Rest}` ? `[${Part}]${_DotToBracketTail<Rest>}` : `[${S}]`;
22
10
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isoftdata/svelte-table",
3
- "version": "2.8.1",
3
+ "version": "2.8.2",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./dist/index.d.ts",
@@ -40,7 +40,7 @@
40
40
  "svelte": "^5.22.1",
41
41
  "svelte-check": "^4.1.4",
42
42
  "tslib": "^2.8.1",
43
- "type-fest": "^4.37.0",
43
+ "type-fest": "^4.41.0",
44
44
  "typescript": "^5.8.2",
45
45
  "vite": "^6.2.0"
46
46
  },