stylex icon indicating copy to clipboard operation
stylex copied to clipboard

[eslint-plugin] Enable the `valid-styles` lint rule to evaluate all static expressions

Open nmn opened this issue 1 year ago • 0 comments

Background

The Babel plugin uses a forked version of path.evaluate() from Babel to be able to statically evaluate a large number of static expressions during compilation. In addition to being able to evaluate simple expressions such as addition and string interpolation, the forked functionality can also:

  • Evaluate imports from .stylex.js files without actually reading the file. It resolves the file path, and the uses the locally known export name and key to hash and re-compute the original variable strings.
  • Evaluate simple pure arrow functions that do not have a function body (wrapped in {}) and return a simple expression instead.

Task

The Eslint valid-styles rule should be refactor and enhanced to be able to do the same evaluation that the Babel plugin does so it is able to more effectively validate the styles being used.

nmn avatar Oct 09 '24 03:10 nmn