After upgrading to typescript 3.2.1 I started to get this:
RangeError: Maximum call stack size exceeded
at resolveNameHelper (D:\NODEJS\workbench-ts\node_modules\typescript\lib\typescript.js:31831:35)
at resolveName (D:\NODEJS\workbench-ts\node_modules\typescript\lib\typescript.js:31829:20)
at resolveEntityName (D:\NODEJS\workbench-ts\node_modules\typescript\lib\typescript.js:32680:26)
at resolveTypeReferenceName (D:\NODEJS\workbench-ts\node_modules\typescript\lib\typescript.js:38485:20)
at getTypeFromTypeReference (D:\NODEJS\workbench-ts\node_modules\typescript\lib\typescript.js:38670:30)
at getTypeFromTypeNode (D:\NODEJS\workbench-ts\node_modules\typescript\lib\typescript.js:40178:28)
at getConstraintFromTypeParameter (D:\NODEJS\workbench-ts\node_modules\typescript\lib\typescript.js:38328:72)
at fillMissingTypeArguments (D:\NODEJS\workbench-ts\node_modules\typescript\lib\typescript.js:37877:49)
at getTypeFromClassOrInterfaceReference (D:\NODEJS\workbench-ts\node_modules\typescript\lib\typescript.js:38429:78)
at getTypeReferenceTypeWorker (D:\NODEJS\workbench-ts\node_modules\typescript\lib\typescript.js:38559:24)
Investigating I found that it happens when I'm creating a class that extends from PortModel.
How to reproduce:
import {
LinkModel,
DiagramEngine,
PortModel,
DefaultLinkModel
} from "storm-react-diagrams";
export class DiamondPortModel extends PortModel {
public position: string | "top" | "bottom" | "left" | "right";
constructor(pos: string = "top") {
super(pos, "diamond");
this.position = pos;
}
public serialize() {
return Object.assign(super.serialize(), {
position: this.position
});
}
public deSerialize(data: any, engine: DiagramEngine) {
super.deSerialize(data, engine);
this.position = data.position;
}
public createLinkModel(): LinkModel {
return new DefaultLinkModel();
}
}
Version:
"react": "^16.6.3",
"react-dom": "^16.6.3",
"storm-react-diagrams": "^5.2.1",
"typescript": "^3.2.1",
After forking the project and updating few dependencies I found this in BaseEntity.ts
export interface BaseEvent<T extends BaseEntity = any> {
entity: BaseEntity<BaseListener>;
stopPropagation: () => any;
firing: boolean;
id: string;
}
<T extends BaseEntity = any>
The generic T is not used though and removing it fixes the infinite loop.
This is just to give you as much information as possible.
Let me know if I can help in any way.
Cheers.
For what it's worth I'm seeing similar call stack errors simply by building the storybook on a fresh clone of the repo. Looks like nothing is currently building with any version of Typescript >= 3.2.0. Revert back to [email protected] and things seem to build fine again.
```
$ git clone https://github.com/projectstorm/react-diagrams.git
$ cd react-diagrams
$ yarn install
$ yarn upgrade typescript@latest
$ yarn run storybook
yarn run v1.12.3
$ start-storybook -p 9001 -c .storybook
info @storybook/react v3.4.3
info
info => Loading custom addons config.
info => Loading custom webpack config (extending mode).
15% building modules 46/49 modules 3 active ...odules/react/cjs/react.development.js
[at-loader] Using [email protected] from typescript and "tsconfig.json" from react-diagrams/tsconfig.json.
22% building modules 107/127 modules 20 active ...ct-diagrams/demos/demo-simple/docs.md[at-loader]: Child process failed to process the request: RangeError: Maximum call stack size exceeded
at getSymbolOfNode (react-diagrams/node_modules/typescript/lib/typescript.js:33073:20)
at resolveNameHelper (react-diagrams/node_modules/typescript/lib/typescript.js:31900:45)
at resolveName (react-diagrams/node_modules/typescript/lib/typescript.js:31829:20)
at resolveEntityName (react-diagrams/node_modules/typescript/lib/typescript.js:32680:26)
at resolveTypeReferenceName (react-diagrams/node_modules/typescript/lib/typescript.js:38485:20)
at getTypeFromTypeReference (react-diagrams/node_modules/typescript/lib/typescript.js:38670:30)
at getTypeFromTypeNode (react-diagrams/node_modules/typescript/lib/typescript.js:40178:28)
at getConstraintFromTypeParameter (react-diagrams/node_modules/typescript/lib/typescript.js:38328:72)
at fillMissingTypeArguments (react-diagrams/node_modules/typescript/lib/typescript.js:37877:49)
at getTypeFromClassOrInterfaceReference (react-diagrams/node_modules/typescript/lib/typescript.js:38429:78)
at getTypeReferenceTypeWorker (react-diagrams/node_modules/typescript/lib/typescript.js:38559:24)
at getTypeReferenceType (react-diagrams/node_modules/typescript/lib/typescript.js:38492:24)
at getTypeFromTypeReference (react-diagrams/node_modules/typescript/lib/typescript.js:38671:28)
at getTypeFromTypeNode (react-diagrams/node_modules/typescript/lib/typescript.js:40178:28)
at getConstraintFromTypeParameter (react-diagrams/node_modules/typescript/lib/typescript.js:38328:72)
at fillMissingTypeArguments (react-diagrams/node_modules/typescript/lib/typescript.js:37877:49)
22% building modules 108/127 modules 19 active ...ct-diagrams/demos/demo-simple/docs.md[at-loader]: Child process failed to process the request: RangeError: Maximum call stack size exceeded
at getLateBoundSymbol (react-diagrams/node_modules/typescript/lib/typescript.js:36707:36)
at getSymbolOfNode (react-diagrams/node_modules/typescript/lib/typescript.js:33073:51)
at resolveNameHelper (react-diagrams/node_modules/typescript/lib/typescript.js:31968:45)
at resolveName (react-diagrams/node_modules/typescript/lib/typescript.js:31829:20)
at resolveEntityName (react-diagrams/node_modules/typescript/lib/typescript.js:32680:26)
at resolveTypeReferenceName (react-diagrams/node_modules/typescript/lib/typescript.js:38485:20)
at getTypeFromTypeReference (react-diagrams/node_modules/typescript/lib/typescript.js:38670:30)
at getTypeFromTypeNode (react-diagrams/node_modules/typescript/lib/typescript.js:40178:28)
at getConstraintFromTypeParameter (react-diagrams/node_modules/typescript/lib/typescript.js:38328:72)
at fillMissingTypeArguments (react-diagrams/node_modules/typescript/lib/typescript.js:37877:49)
at getTypeFromClassOrInterfaceReference (react-diagrams/node_modules/typescript/lib/typescript.js:38429:78)
at getTypeReferenceTypeWorker (react-diagrams/node_modules/typescript/lib/typescript.js:38559:24)
at getTypeReferenceType (react-diagrams/node_modules/typescript/lib/typescript.js:38492:24)
at getTypeFromTypeReference (react-diagrams/node_modules/typescript/lib/typescript.js:38671:28)
at getTypeFromTypeNode (react-diagrams/node_modules/typescript/lib/typescript.js:40178:28)
at getConstraintFromTypeParameter (react-diagrams/node_modules/typescript/lib/typescript.js:38328:72)
...
```
Should be fixed now in 6 beta, going to close for now
Most helpful comment
After forking the project and updating few dependencies I found this in BaseEntity.ts
<T extends BaseEntity = any>The generic T is not used though and removing it fixes the infinite loop.
This is just to give you as much information as possible.
Let me know if I can help in any way.
Cheers.