From 13eacf88588694eca86647a8e55389f416396d89 Mon Sep 17 00:00:00 2001 From: Dmitry Ivakhnenko Date: Mon, 20 Feb 2023 19:54:03 -0800 Subject: [PATCH] es6 compatable enums (#1229) Summary: I wanna repeat the constants export in `yoga-wasm-web`, to achieve ```js import { ALIGN_CENTER } from "yoga-layout"; ``` And I failed. it is impossible because `rollup` and other tools can't transform commonjs `module.exports = { WHATEVER: 1 }` into ECMAScript modules. however, they can work with separate exports like `exports.WHATEVER = 1` and this PR transforms yoga constants into this convertible format This doesn't change anything for the yoga package, but it makes it possible to reexport constants without any modification and hacks, like this ```js export * from "./javascript/src_js/generated/YGEnums.js"; ``` [discussion in yoga-layout-wasm](https://github.com/shuding/yoga-wasm-web/pull/15) Pull Request resolved: https://github.com/facebook/yoga/pull/1229 Reviewed By: NickGerleman Differential Revision: D43437177 Pulled By: rshest fbshipit-source-id: bfe1404d1b48779f404e6510f2aafadd7fd4e774 --- enums.py | 4 +- javascript/.prettierignore | 1 + javascript/src_js/generated/YGEnums.js | 136 ++++++++++++------------- 3 files changed, 69 insertions(+), 72 deletions(-) diff --git a/enums.py b/enums.py index e87f6f79..d836ff5e 100644 --- a/enums.py +++ b/enums.py @@ -228,7 +228,6 @@ for name, values in sorted(ENUMS.items()): # write out javascript file with open(root + "/javascript/src_js/generated/YGEnums.js", "w") as f: f.write(get_license("js")) - f.write("module.exports = {\n") items = sorted(ENUMS.items()) for name, values in items: base = 0 @@ -237,14 +236,13 @@ with open(root + "/javascript/src_js/generated/YGEnums.js", "w") as f: ordinal_arg = value[1] if isinstance(value, tuple) else base f.write( - " %s_%s: %d,\n" + "exports.%s_%s = %d;\n" % (to_java_upper(name), to_java_upper(value_arg), ordinal_arg) ) base = ordinal_arg + 1 if name != items[-1][0]: f.write("\n") - f.write("};\n") with open(root + "/javascript/src_js/generated/YGEnums.d.ts", "w") as f: f.write(get_license("js")) diff --git a/javascript/.prettierignore b/javascript/.prettierignore index a70ec0e5..81f49fc9 100644 --- a/javascript/.prettierignore +++ b/javascript/.prettierignore @@ -1 +1,2 @@ tests/generated/ +src_js/generated/ diff --git a/javascript/src_js/generated/YGEnums.js b/javascript/src_js/generated/YGEnums.js index ac93434e..0caa931d 100644 --- a/javascript/src_js/generated/YGEnums.js +++ b/javascript/src_js/generated/YGEnums.js @@ -7,88 +7,86 @@ // @generated by enums.py -module.exports = { - ALIGN_AUTO: 0, - ALIGN_FLEX_START: 1, - ALIGN_CENTER: 2, - ALIGN_FLEX_END: 3, - ALIGN_STRETCH: 4, - ALIGN_BASELINE: 5, - ALIGN_SPACE_BETWEEN: 6, - ALIGN_SPACE_AROUND: 7, +exports.ALIGN_AUTO = 0; +exports.ALIGN_FLEX_START = 1; +exports.ALIGN_CENTER = 2; +exports.ALIGN_FLEX_END = 3; +exports.ALIGN_STRETCH = 4; +exports.ALIGN_BASELINE = 5; +exports.ALIGN_SPACE_BETWEEN = 6; +exports.ALIGN_SPACE_AROUND = 7; - DIMENSION_WIDTH: 0, - DIMENSION_HEIGHT: 1, +exports.DIMENSION_WIDTH = 0; +exports.DIMENSION_HEIGHT = 1; - DIRECTION_INHERIT: 0, - DIRECTION_LTR: 1, - DIRECTION_RTL: 2, +exports.DIRECTION_INHERIT = 0; +exports.DIRECTION_LTR = 1; +exports.DIRECTION_RTL = 2; - DISPLAY_FLEX: 0, - DISPLAY_NONE: 1, +exports.DISPLAY_FLEX = 0; +exports.DISPLAY_NONE = 1; - EDGE_LEFT: 0, - EDGE_TOP: 1, - EDGE_RIGHT: 2, - EDGE_BOTTOM: 3, - EDGE_START: 4, - EDGE_END: 5, - EDGE_HORIZONTAL: 6, - EDGE_VERTICAL: 7, - EDGE_ALL: 8, +exports.EDGE_LEFT = 0; +exports.EDGE_TOP = 1; +exports.EDGE_RIGHT = 2; +exports.EDGE_BOTTOM = 3; +exports.EDGE_START = 4; +exports.EDGE_END = 5; +exports.EDGE_HORIZONTAL = 6; +exports.EDGE_VERTICAL = 7; +exports.EDGE_ALL = 8; - EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: 0, - EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE: 1, - EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN: 2, +exports.EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS = 0; +exports.EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE = 1; +exports.EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN = 2; - FLEX_DIRECTION_COLUMN: 0, - FLEX_DIRECTION_COLUMN_REVERSE: 1, - FLEX_DIRECTION_ROW: 2, - FLEX_DIRECTION_ROW_REVERSE: 3, +exports.FLEX_DIRECTION_COLUMN = 0; +exports.FLEX_DIRECTION_COLUMN_REVERSE = 1; +exports.FLEX_DIRECTION_ROW = 2; +exports.FLEX_DIRECTION_ROW_REVERSE = 3; - GUTTER_COLUMN: 0, - GUTTER_ROW: 1, - GUTTER_ALL: 2, +exports.GUTTER_COLUMN = 0; +exports.GUTTER_ROW = 1; +exports.GUTTER_ALL = 2; - JUSTIFY_FLEX_START: 0, - JUSTIFY_CENTER: 1, - JUSTIFY_FLEX_END: 2, - JUSTIFY_SPACE_BETWEEN: 3, - JUSTIFY_SPACE_AROUND: 4, - JUSTIFY_SPACE_EVENLY: 5, +exports.JUSTIFY_FLEX_START = 0; +exports.JUSTIFY_CENTER = 1; +exports.JUSTIFY_FLEX_END = 2; +exports.JUSTIFY_SPACE_BETWEEN = 3; +exports.JUSTIFY_SPACE_AROUND = 4; +exports.JUSTIFY_SPACE_EVENLY = 5; - LOG_LEVEL_ERROR: 0, - LOG_LEVEL_WARN: 1, - LOG_LEVEL_INFO: 2, - LOG_LEVEL_DEBUG: 3, - LOG_LEVEL_VERBOSE: 4, - LOG_LEVEL_FATAL: 5, +exports.LOG_LEVEL_ERROR = 0; +exports.LOG_LEVEL_WARN = 1; +exports.LOG_LEVEL_INFO = 2; +exports.LOG_LEVEL_DEBUG = 3; +exports.LOG_LEVEL_VERBOSE = 4; +exports.LOG_LEVEL_FATAL = 5; - MEASURE_MODE_UNDEFINED: 0, - MEASURE_MODE_EXACTLY: 1, - MEASURE_MODE_AT_MOST: 2, +exports.MEASURE_MODE_UNDEFINED = 0; +exports.MEASURE_MODE_EXACTLY = 1; +exports.MEASURE_MODE_AT_MOST = 2; - NODE_TYPE_DEFAULT: 0, - NODE_TYPE_TEXT: 1, +exports.NODE_TYPE_DEFAULT = 0; +exports.NODE_TYPE_TEXT = 1; - OVERFLOW_VISIBLE: 0, - OVERFLOW_HIDDEN: 1, - OVERFLOW_SCROLL: 2, +exports.OVERFLOW_VISIBLE = 0; +exports.OVERFLOW_HIDDEN = 1; +exports.OVERFLOW_SCROLL = 2; - POSITION_TYPE_STATIC: 0, - POSITION_TYPE_RELATIVE: 1, - POSITION_TYPE_ABSOLUTE: 2, +exports.POSITION_TYPE_STATIC = 0; +exports.POSITION_TYPE_RELATIVE = 1; +exports.POSITION_TYPE_ABSOLUTE = 2; - PRINT_OPTIONS_LAYOUT: 1, - PRINT_OPTIONS_STYLE: 2, - PRINT_OPTIONS_CHILDREN: 4, +exports.PRINT_OPTIONS_LAYOUT = 1; +exports.PRINT_OPTIONS_STYLE = 2; +exports.PRINT_OPTIONS_CHILDREN = 4; - UNIT_UNDEFINED: 0, - UNIT_POINT: 1, - UNIT_PERCENT: 2, - UNIT_AUTO: 3, +exports.UNIT_UNDEFINED = 0; +exports.UNIT_POINT = 1; +exports.UNIT_PERCENT = 2; +exports.UNIT_AUTO = 3; - WRAP_NO_WRAP: 0, - WRAP_WRAP: 1, - WRAP_WRAP_REVERSE: 2, -}; +exports.WRAP_NO_WRAP = 0; +exports.WRAP_WRAP = 1; +exports.WRAP_WRAP_REVERSE = 2;