Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RangeError: Maximum call stack size exceeded #1105

Open
doug-wade opened this issue Feb 15, 2024 · 2 comments
Open

RangeError: Maximum call stack size exceeded #1105

doug-wade opened this issue Feb 15, 2024 · 2 comments

Comments

@doug-wade
Copy link

I'm trying to set up a new project, with the following file structure

» tree
.
├── README.md
├── config.json
├── package.json
├── tokens
│   ├── border.json
│   ├── color
│   │   ├── base.json
│   │   └── font.json
│   └── size
│       └── font.json
└── yarn.lock

4 directories, 8 files

However, I'm getting an error from lodash when I try to build the project. To reproduce

1.) Create a new project
2.) Copy-paste the complete config.json example
3.) Run style-dictionary build

» npx style-dictionary@3.9.2 build

ios
✔︎ ios/Classes/Generated/StyleDictionarySize.h
✔︎ ios/Classes/Generated/StyleDictionarySize.m
No properties for StyleDictionaryIcons.h. File not created.
No properties for StyleDictionaryIcons.m. File not created.
✔︎ ios/Classes/Generated/StyleDictionaryColor.h
✔︎ ios/Classes/Generated/StyleDictionaryColor.m
✔︎ ios/Classes/Generated/StyleDictionaryProperties.h
undefined:35
 function buildDictionary(props, indent) {
                         ^

RangeError: Maximum call stack size exceeded
    at buildDictionary (eval at <anonymous> (/Users/doug/code/odyssey-tokens/node_modules/lodash/template.js:259:12), <anonymous>:35:26)
    at buildDictionary (eval at <anonymous> (/Users/doug/code/odyssey-tokens/node_modules/lodash/template.js:259:12), <anonymous>:53:48)
    at buildDictionary (eval at <anonymous> (/Users/doug/code/odyssey-tokens/node_modules/lodash/template.js:259:12), <anonymous>:53:48)
    at buildDictionary (eval at <anonymous> (/Users/doug/code/odyssey-tokens/node_modules/lodash/template.js:259:12), <anonymous>:53:48)
    at buildDictionary (eval at <anonymous> (/Users/doug/code/odyssey-tokens/node_modules/lodash/template.js:259:12), <anonymous>:53:48)
    at buildDictionary (eval at <anonymous> (/Users/doug/code/odyssey-tokens/node_modules/lodash/template.js:259:12), <anonymous>:53:48)
    at buildDictionary (eval at <anonymous> (/Users/doug/code/odyssey-tokens/node_modules/lodash/template.js:259:12), <anonymous>:53:48)
    at buildDictionary (eval at <anonymous> (/Users/doug/code/odyssey-tokens/node_modules/lodash/template.js:259:12), <anonymous>:53:48)
    at buildDictionary (eval at <anonymous> (/Users/doug/code/odyssey-tokens/node_modules/lodash/template.js:259:12), <anonymous>:53:48)
    at buildDictionary (eval at <anonymous> (/Users/doug/code/odyssey-tokens/node_modules/lodash/template.js:259:12), <anonymous>:53:48)

Node.js v20.11.0
@jorenbroekema
Copy link
Collaborator

Could you try on the v4 branch perhaps to see if it's still a problem there? the offending code has been refactored a fair bit.

See changelog for the breaking changes, needed when migrating https://github.com/amzn/style-dictionary/blob/v4/CHANGELOG.md

@doug-wade
Copy link
Author

doug-wade commented Mar 28, 2024

I tried it out on my project and while it does not resolve the issue, it does change the stack trace somewhat

» npx style-dictionary@4.0.0-prerelease.23 build

ios

android

android-asset
No tokens for StyleDictionaryIcons.h. File not created.
No tokens for StyleDictionaryIcons.m. File not created.
undefined:38
  if (Object.hasOwn(token, `${options.usesDtcg ? '$' : ''}value`)) {
             ^

RangeError: Maximum call stack size exceeded
    at String.hasOwn (<anonymous>)
    at Function.hasOwn (<anonymous>)
    at buildDictionary (eval at <anonymous> (file:///Users/doug/code/odyssey-tokens/node_modules/lodash-es/template.js:259:12), <anonymous>:38:14)
    at buildDictionary (eval at <anonymous> (file:///Users/doug/code/odyssey-tokens/node_modules/lodash-es/template.js:259:12), <anonymous>:56:48)
    at buildDictionary (eval at <anonymous> (file:///Users/doug/code/odyssey-tokens/node_modules/lodash-es/template.js:259:12), <anonymous>:56:48)
    at buildDictionary (eval at <anonymous> (file:///Users/doug/code/odyssey-tokens/node_modules/lodash-es/template.js:259:12), <anonymous>:56:48)
    at buildDictionary (eval at <anonymous> (file:///Users/doug/code/odyssey-tokens/node_modules/lodash-es/template.js:259:12), <anonymous>:56:48)
    at buildDictionary (eval at <anonymous> (file:///Users/doug/code/odyssey-tokens/node_modules/lodash-es/template.js:259:12), <anonymous>:56:48)
    at buildDictionary (eval at <anonymous> (file:///Users/doug/code/odyssey-tokens/node_modules/lodash-es/template.js:259:12), <anonymous>:56:48)
    at buildDictionary (eval at <anonymous> (file:///Users/doug/code/odyssey-tokens/node_modules/lodash-es/template.js:259:12), <anonymous>:56:48)

Node.js v20.12.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants