diff --git a/README.md b/README.md index 3223228..292463c 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,8 @@ When in doubt simplify. * [Unified Turing Machine](https://github.com/Phuire-Research/Stratimux/blob/main/The-Unified-Turing-Machine.md) - The governing concept for this entire framework. ## Change Log ![Tests](https://github.com/Phuire-Research/Stratimux/actions/workflows/node.js.yml/badge.svg) +### v0.1.65 5/13/2024 +* Removed one more level of deepness from DotPath(6 levels now), projects should now compile without the excessively deep error. ### v0.1.64 5/13/2024 * Added Action Priority: This will allow action's assigned a priority of not 0 to be placed accordingly into the action ques. * Adjusted DotPath type to improve type checking performance. Massively degrades with an additional level. diff --git a/package.json b/package.json index 73e10c8..dd56004 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "stratimux", "license": "GPL-3.0", - "version": "0.1.64", + "version": "0.1.65", "description": "Unified Turing Machine", "main": "dist/index.js", "module": "dist/index.mjs", diff --git a/src/model/dotPath.ts b/src/model/dotPath.ts index 78f2cdd..74f26d2 100644 --- a/src/model/dotPath.ts +++ b/src/model/dotPath.ts @@ -139,29 +139,30 @@ type DotPathFive< : Required[K] extends ValidObject[K]> ? - DotPathSix[K], Union, Join, PrevTypes | T> - : - Union, Join>; - }[keyof T]; - -type DotPathSix< - T extends object, - Prev extends Key | undefined = undefined, - Path extends Key | undefined = undefined, - PrevTypes extends object = T -> = string & - { - [K in keyof T]: - T[K] extends PrevTypes | T - ? Union, Join> - : - Required[K] extends ValidObject[K]> - ? - // DotPathSevenEnd[K], Union, Join, PrevTypes | T> + // DotPathSix[K], Union, Join, PrevTypes | T> Union, Join> : Union, Join>; }[keyof T]; +// 7 levels does not allow for builds +// type DotPathSix< +// T extends object, +// Prev extends Key | undefined = undefined, +// Path extends Key | undefined = undefined, +// PrevTypes extends object = T +// > = string & +// { +// [K in keyof T]: +// T[K] extends PrevTypes | T +// ? Union, Join> +// : +// Required[K] extends ValidObject[K]> +// ? +// // DotPathSevenEnd[K], Union, Join, PrevTypes | T> +// Union, Join> +// : +// Union, Join>; +// }[keyof T]; // Beyond this point Typescript massively slows down during type checking. // // After this point will trigger TS excessively deep error and can no longer use DotPath as circular reference. // type DotPathSevenEnd< diff --git a/src/model/selector.ts b/src/model/selector.ts index d0b29c7..4c5dc4e 100644 --- a/src/model/selector.ts +++ b/src/model/selector.ts @@ -23,7 +23,7 @@ export type KeyedSelector = { /** * Will create a new KeyedSelector based on a concept name comparison during runtime, mainly used for external usage * @param keys - type string - Format is 'key0.key1.key3' for deep nested key values - * @tutorial *Note* This will only extend 7 levels into a deeply nested record. + * @tutorial *Note* This will only extend 6 levels into a deeply nested record. * @tutorial **Use createAdvancedKeys** function in place of keys if attempted to scaffold into through arrays */ export const createConceptKeyedSelector = @@ -52,7 +52,7 @@ export const createConceptKeyedSelector = * Will create a new KeyedSelector during runtime, for usage throughout Stratimux * @param keys - type string - Format is 'key0.key1.key3' for deep nested key values * Uses type DotPath to enable some DX in the IDE to quickly create the desired string format. - * @tutorial *Note* This will only extend 7 levels into a deeply nested record. + * @tutorial *Note* This will only extend 6 levels into a deeply nested record. * @tutorial **Use createAdvancedKeys** function in place of keys if attempted to scaffold into through arrays */ export const createUnifiedKeyedSelector = >(