In-place JS environment

Summary:
This change restructures the package to try to remove the JS build step from the inner loop. Instead, we have a single `src` directory that we babel transform when using, then apply the same transform inline during prepublish.

At the end, we will be publishing a source directory with Babel transformed TS, JS, and TS declarations.

We do a little spring cleaning when doing this. Fixing up some of the folder/file conventions, and removing the non-export-map fallbacks.

We cannot remove the need for a native build.

Reviewed By: yungsters

Differential Revision: D45682153

fbshipit-source-id: ea2dd75c2dd6e3529b1ef6cf6ac6a64a270049a4
This commit is contained in:
Nick Gerleman
2023-05-09 15:35:42 -07:00
committed by Facebook GitHub Bot
parent 0a6a581936
commit aa812d0e48
28 changed files with 130 additions and 124 deletions

View File

@@ -247,7 +247,7 @@ for name, values in sorted(ENUMS.items()):
f.write("}\n")
# write out javascript file
with open(root + "/javascript/src_js/generated/YGEnums.js", "w") as f:
with open(root + "/javascript/src/generated/YGEnums.js", "w") as f:
f.write(get_license("js"))
items = sorted(ENUMS.items())
for name, values in items:
@@ -265,7 +265,7 @@ with open(root + "/javascript/src_js/generated/YGEnums.js", "w") as f:
if name != items[-1][0]:
f.write("\n")
with open(root + "/javascript/src_js/generated/YGEnums.d.ts", "w") as f:
with open(root + "/javascript/src/generated/YGEnums.d.ts", "w") as f:
f.write(get_license("js"))
for name, values in sorted(ENUMS.items()):
@@ -277,7 +277,7 @@ with open(root + "/javascript/src_js/generated/YGEnums.d.ts", "w") as f:
f.write(
(
"type {name}_{value} = {ordinal} & ['{name}']\n"
+ "export const {name}_{value}: {name}_{value};\n\n"
+ "export declare const {name}_{value}: {name}_{value};\n\n"
).format(
name=to_java_upper(name),
value=to_java_upper(value_arg),

View File

@@ -1,2 +1,2 @@
tests/generated/
src_js/generated/
src/generated/

View File

@@ -10,7 +10,7 @@ project(yoga)
file(GLOB SOURCES CONFIGURE_DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../yoga/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../yoga/**/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src_native/*.cc)
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
include_directories(..)

View File

@@ -10,7 +10,6 @@
import {
argv,
cleanTask,
copyTask,
eslintTask,
logger,
jestTask,
@@ -32,15 +31,6 @@ option('fix');
task('clean', cleanTask({paths: ['build', 'dist']}));
task(
'prepare-for-build',
parallel(
babelTransformTask({paths: ['src_js'], dest: 'dist'}),
copyTask({paths: ['src_js/**/*.d.ts'], dest: 'dist'}),
emcmakeGenerateTask(),
),
);
function defineFlavor(flavor: string, env: NodeJS.ProcessEnv) {
task(`cmake-build:${flavor}`, cmakeBuildTask({targets: [flavor]}));
task(
@@ -49,7 +39,7 @@ function defineFlavor(flavor: string, env: NodeJS.ProcessEnv) {
);
task(
`test:${flavor}`,
series('prepare-for-build', `cmake-build:${flavor}`, `jest:${flavor}`),
series(emcmakeGenerateTask(), `cmake-build:${flavor}`, `jest:${flavor}`),
);
}
@@ -68,12 +58,12 @@ task(
cmakeBuildTask({targets: ['asmjs-sync', 'wasm-sync']}),
);
task('build', series('prepare-for-build', 'cmake-build:all'));
task('build', series(emcmakeGenerateTask(), 'cmake-build:all'));
task(
'test',
series(
'prepare-for-build',
emcmakeGenerateTask(),
series('cmake-build:asmjs-async', 'jest:asmjs-async'),
series('cmake-build:asmjs-sync', 'jest:asmjs-sync'),
series('cmake-build:wasm-async', 'jest:wasm-async'),
@@ -83,26 +73,41 @@ task(
task(
'benchmark',
series('prepare-for-build', 'cmake-build:sync', runBenchTask()),
series(emcmakeGenerateTask(), 'cmake-build:sync', runBenchTask()),
);
task(
'lint',
parallel(
tscTask(),
tscTask({noEmit: true}),
series(eslintTask({fix: argv().fix}), clangFormatTask({fix: argv().fix})),
),
);
function babelTransformTask(opts: {
paths: ReadonlyArray<string>;
dest: string;
}) {
return () => {
const args = [...opts.paths, '--source-maps', '--out-dir', opts.dest];
logger.info(`Transforming [${opts.paths.join(',')}] to '${opts.dest}'`);
task(
'prepublish',
parallel(
'build',
tscTask({emitDeclarationOnly: true}),
babelTransformTask({dir: 'src'}),
),
);
return spawn(node, [require.resolve('@babel/cli/bin/babel'), ...args]);
function babelTransformTask(opts: {dir: string}) {
return () => {
const args = [
opts.dir,
'--source-maps',
'--out-dir',
opts.dir,
'--extensions',
'.js,.ts',
];
logger.info(`Transforming "${path.resolve(opts.dir)}"`);
return spawn(node, [require.resolve('@babel/cli/bin/babel'), ...args], {
cwd: __dirname,
});
};
}

View File

@@ -7,23 +7,23 @@
"type": "git",
"url": "git@github.com:facebook/yoga.git"
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"main": "./src/index.js",
"types": "./src/index.d.ts",
"exports": {
".": {
"browser": "./dist/entrypoint/wasm-async.js",
"node": "./dist/entrypoint/wasm-async.js",
"default": "./dist/entrypoint/asmjs-async.js"
"browser": "./src/entrypoint/wasm-async.js",
"node": "./src/entrypoint/wasm-async.js",
"default": "./src/entrypoint/asmjs-async.js"
},
"./sync": {
"browser": "./dist/entrypoint/asmjs-sync.js",
"node": "./dist/entrypoint/wasm-sync.js",
"default": "./dist/entrypoint/asmjs-sync.js"
"browser": "./src/entrypoint/asmjs-sync.js",
"node": "./src/entrypoint/wasm-sync.js",
"default": "./src/entrypoint/asmjs-sync.js"
}
},
"files": [
"dist/**",
"src_js/**"
"src/**"
],
"scripts": {
"benchmark": "just benchmark",
@@ -31,6 +31,7 @@
"clean": "just clean",
"lint": "just lint",
"lint:fix": "just lint --fix",
"prepublish": "just prepublish",
"test": "just test",
"test:asmjs-async": "just test:asmjs-async",
"test:asmjs-sync": "just test:asmjs-sync",

View File

@@ -7,7 +7,7 @@
#include <yoga/Yoga.h>
#include "./Config.hh"
#include "./Config.h"
/* static */ Config* Config::create(void) {
return new Config();

View File

@@ -9,10 +9,10 @@
#include <yoga/Yoga.h>
#include "./Node.hh"
#include "./Layout.hh"
#include "./Size.hh"
#include "./Config.hh"
#include "./Node.h"
#include "./Layout.h"
#include "./Size.h"
#include "./Config.h"
static YGSize globalMeasureFunc(
YGNodeRef nodeRef,

View File

@@ -12,10 +12,10 @@
#include <emscripten/bind.h>
#include <yoga/Yoga.h>
#include "./Layout.hh"
#include "./Size.hh"
#include "./Value.hh"
#include "./Config.hh"
#include "./Layout.h"
#include "./Size.h"
#include "./Value.h"
#include "./Config.h"
class MeasureCallback {
public:

View File

@@ -5,11 +5,11 @@
* LICENSE file in the root directory of this source tree.
*/
#include "./Node.hh"
#include "./Layout.hh"
#include "./Size.hh"
#include "./Value.hh"
#include "./Config.hh"
#include "./Node.h"
#include "./Layout.h"
#include "./Size.h"
#include "./Value.h"
#include "./Config.h"
#include <yoga/Yoga.h>
#include <emscripten/bind.h>

View File

@@ -8,234 +8,234 @@
// @generated by enums.py
type ALIGN_AUTO = 0 & ['ALIGN']
export const ALIGN_AUTO: ALIGN_AUTO;
export declare const ALIGN_AUTO: ALIGN_AUTO;
type ALIGN_FLEX_START = 1 & ['ALIGN']
export const ALIGN_FLEX_START: ALIGN_FLEX_START;
export declare const ALIGN_FLEX_START: ALIGN_FLEX_START;
type ALIGN_CENTER = 2 & ['ALIGN']
export const ALIGN_CENTER: ALIGN_CENTER;
export declare const ALIGN_CENTER: ALIGN_CENTER;
type ALIGN_FLEX_END = 3 & ['ALIGN']
export const ALIGN_FLEX_END: ALIGN_FLEX_END;
export declare const ALIGN_FLEX_END: ALIGN_FLEX_END;
type ALIGN_STRETCH = 4 & ['ALIGN']
export const ALIGN_STRETCH: ALIGN_STRETCH;
export declare const ALIGN_STRETCH: ALIGN_STRETCH;
type ALIGN_BASELINE = 5 & ['ALIGN']
export const ALIGN_BASELINE: ALIGN_BASELINE;
export declare const ALIGN_BASELINE: ALIGN_BASELINE;
type ALIGN_SPACE_BETWEEN = 6 & ['ALIGN']
export const ALIGN_SPACE_BETWEEN: ALIGN_SPACE_BETWEEN;
export declare const ALIGN_SPACE_BETWEEN: ALIGN_SPACE_BETWEEN;
type ALIGN_SPACE_AROUND = 7 & ['ALIGN']
export const ALIGN_SPACE_AROUND: ALIGN_SPACE_AROUND;
export declare const ALIGN_SPACE_AROUND: ALIGN_SPACE_AROUND;
type DIMENSION_WIDTH = 0 & ['DIMENSION']
export const DIMENSION_WIDTH: DIMENSION_WIDTH;
export declare const DIMENSION_WIDTH: DIMENSION_WIDTH;
type DIMENSION_HEIGHT = 1 & ['DIMENSION']
export const DIMENSION_HEIGHT: DIMENSION_HEIGHT;
export declare const DIMENSION_HEIGHT: DIMENSION_HEIGHT;
type DIRECTION_INHERIT = 0 & ['DIRECTION']
export const DIRECTION_INHERIT: DIRECTION_INHERIT;
export declare const DIRECTION_INHERIT: DIRECTION_INHERIT;
type DIRECTION_LTR = 1 & ['DIRECTION']
export const DIRECTION_LTR: DIRECTION_LTR;
export declare const DIRECTION_LTR: DIRECTION_LTR;
type DIRECTION_RTL = 2 & ['DIRECTION']
export const DIRECTION_RTL: DIRECTION_RTL;
export declare const DIRECTION_RTL: DIRECTION_RTL;
type DISPLAY_FLEX = 0 & ['DISPLAY']
export const DISPLAY_FLEX: DISPLAY_FLEX;
export declare const DISPLAY_FLEX: DISPLAY_FLEX;
type DISPLAY_NONE = 1 & ['DISPLAY']
export const DISPLAY_NONE: DISPLAY_NONE;
export declare const DISPLAY_NONE: DISPLAY_NONE;
type EDGE_LEFT = 0 & ['EDGE']
export const EDGE_LEFT: EDGE_LEFT;
export declare const EDGE_LEFT: EDGE_LEFT;
type EDGE_TOP = 1 & ['EDGE']
export const EDGE_TOP: EDGE_TOP;
export declare const EDGE_TOP: EDGE_TOP;
type EDGE_RIGHT = 2 & ['EDGE']
export const EDGE_RIGHT: EDGE_RIGHT;
export declare const EDGE_RIGHT: EDGE_RIGHT;
type EDGE_BOTTOM = 3 & ['EDGE']
export const EDGE_BOTTOM: EDGE_BOTTOM;
export declare const EDGE_BOTTOM: EDGE_BOTTOM;
type EDGE_START = 4 & ['EDGE']
export const EDGE_START: EDGE_START;
export declare const EDGE_START: EDGE_START;
type EDGE_END = 5 & ['EDGE']
export const EDGE_END: EDGE_END;
export declare const EDGE_END: EDGE_END;
type EDGE_HORIZONTAL = 6 & ['EDGE']
export const EDGE_HORIZONTAL: EDGE_HORIZONTAL;
export declare const EDGE_HORIZONTAL: EDGE_HORIZONTAL;
type EDGE_VERTICAL = 7 & ['EDGE']
export const EDGE_VERTICAL: EDGE_VERTICAL;
export declare const EDGE_VERTICAL: EDGE_VERTICAL;
type EDGE_ALL = 8 & ['EDGE']
export const EDGE_ALL: EDGE_ALL;
export declare const EDGE_ALL: EDGE_ALL;
type ERRATA_NONE = 0 & ['ERRATA']
export const ERRATA_NONE: ERRATA_NONE;
export declare const ERRATA_NONE: ERRATA_NONE;
type ERRATA_STRETCH_FLEX_BASIS = 1 & ['ERRATA']
export const ERRATA_STRETCH_FLEX_BASIS: ERRATA_STRETCH_FLEX_BASIS;
export declare const ERRATA_STRETCH_FLEX_BASIS: ERRATA_STRETCH_FLEX_BASIS;
type ERRATA_ALL = 2147483647 & ['ERRATA']
export const ERRATA_ALL: ERRATA_ALL;
export declare const ERRATA_ALL: ERRATA_ALL;
type ERRATA_CLASSIC = 2147483646 & ['ERRATA']
export const ERRATA_CLASSIC: ERRATA_CLASSIC;
export declare const ERRATA_CLASSIC: ERRATA_CLASSIC;
type EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS = 0 & ['EXPERIMENTAL_FEATURE']
export const EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS;
export declare const EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS;
type EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE = 1 & ['EXPERIMENTAL_FEATURE']
export const EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE: EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE;
export declare const EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE: EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE;
type EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN = 2 & ['EXPERIMENTAL_FEATURE']
export const EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN: EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN;
export declare const EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN: EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN;
type FLEX_DIRECTION_COLUMN = 0 & ['FLEX_DIRECTION']
export const FLEX_DIRECTION_COLUMN: FLEX_DIRECTION_COLUMN;
export declare const FLEX_DIRECTION_COLUMN: FLEX_DIRECTION_COLUMN;
type FLEX_DIRECTION_COLUMN_REVERSE = 1 & ['FLEX_DIRECTION']
export const FLEX_DIRECTION_COLUMN_REVERSE: FLEX_DIRECTION_COLUMN_REVERSE;
export declare const FLEX_DIRECTION_COLUMN_REVERSE: FLEX_DIRECTION_COLUMN_REVERSE;
type FLEX_DIRECTION_ROW = 2 & ['FLEX_DIRECTION']
export const FLEX_DIRECTION_ROW: FLEX_DIRECTION_ROW;
export declare const FLEX_DIRECTION_ROW: FLEX_DIRECTION_ROW;
type FLEX_DIRECTION_ROW_REVERSE = 3 & ['FLEX_DIRECTION']
export const FLEX_DIRECTION_ROW_REVERSE: FLEX_DIRECTION_ROW_REVERSE;
export declare const FLEX_DIRECTION_ROW_REVERSE: FLEX_DIRECTION_ROW_REVERSE;
type GUTTER_COLUMN = 0 & ['GUTTER']
export const GUTTER_COLUMN: GUTTER_COLUMN;
export declare const GUTTER_COLUMN: GUTTER_COLUMN;
type GUTTER_ROW = 1 & ['GUTTER']
export const GUTTER_ROW: GUTTER_ROW;
export declare const GUTTER_ROW: GUTTER_ROW;
type GUTTER_ALL = 2 & ['GUTTER']
export const GUTTER_ALL: GUTTER_ALL;
export declare const GUTTER_ALL: GUTTER_ALL;
type JUSTIFY_FLEX_START = 0 & ['JUSTIFY']
export const JUSTIFY_FLEX_START: JUSTIFY_FLEX_START;
export declare const JUSTIFY_FLEX_START: JUSTIFY_FLEX_START;
type JUSTIFY_CENTER = 1 & ['JUSTIFY']
export const JUSTIFY_CENTER: JUSTIFY_CENTER;
export declare const JUSTIFY_CENTER: JUSTIFY_CENTER;
type JUSTIFY_FLEX_END = 2 & ['JUSTIFY']
export const JUSTIFY_FLEX_END: JUSTIFY_FLEX_END;
export declare const JUSTIFY_FLEX_END: JUSTIFY_FLEX_END;
type JUSTIFY_SPACE_BETWEEN = 3 & ['JUSTIFY']
export const JUSTIFY_SPACE_BETWEEN: JUSTIFY_SPACE_BETWEEN;
export declare const JUSTIFY_SPACE_BETWEEN: JUSTIFY_SPACE_BETWEEN;
type JUSTIFY_SPACE_AROUND = 4 & ['JUSTIFY']
export const JUSTIFY_SPACE_AROUND: JUSTIFY_SPACE_AROUND;
export declare const JUSTIFY_SPACE_AROUND: JUSTIFY_SPACE_AROUND;
type JUSTIFY_SPACE_EVENLY = 5 & ['JUSTIFY']
export const JUSTIFY_SPACE_EVENLY: JUSTIFY_SPACE_EVENLY;
export declare const JUSTIFY_SPACE_EVENLY: JUSTIFY_SPACE_EVENLY;
type LOG_LEVEL_ERROR = 0 & ['LOG_LEVEL']
export const LOG_LEVEL_ERROR: LOG_LEVEL_ERROR;
export declare const LOG_LEVEL_ERROR: LOG_LEVEL_ERROR;
type LOG_LEVEL_WARN = 1 & ['LOG_LEVEL']
export const LOG_LEVEL_WARN: LOG_LEVEL_WARN;
export declare const LOG_LEVEL_WARN: LOG_LEVEL_WARN;
type LOG_LEVEL_INFO = 2 & ['LOG_LEVEL']
export const LOG_LEVEL_INFO: LOG_LEVEL_INFO;
export declare const LOG_LEVEL_INFO: LOG_LEVEL_INFO;
type LOG_LEVEL_DEBUG = 3 & ['LOG_LEVEL']
export const LOG_LEVEL_DEBUG: LOG_LEVEL_DEBUG;
export declare const LOG_LEVEL_DEBUG: LOG_LEVEL_DEBUG;
type LOG_LEVEL_VERBOSE = 4 & ['LOG_LEVEL']
export const LOG_LEVEL_VERBOSE: LOG_LEVEL_VERBOSE;
export declare const LOG_LEVEL_VERBOSE: LOG_LEVEL_VERBOSE;
type LOG_LEVEL_FATAL = 5 & ['LOG_LEVEL']
export const LOG_LEVEL_FATAL: LOG_LEVEL_FATAL;
export declare const LOG_LEVEL_FATAL: LOG_LEVEL_FATAL;
type MEASURE_MODE_UNDEFINED = 0 & ['MEASURE_MODE']
export const MEASURE_MODE_UNDEFINED: MEASURE_MODE_UNDEFINED;
export declare const MEASURE_MODE_UNDEFINED: MEASURE_MODE_UNDEFINED;
type MEASURE_MODE_EXACTLY = 1 & ['MEASURE_MODE']
export const MEASURE_MODE_EXACTLY: MEASURE_MODE_EXACTLY;
export declare const MEASURE_MODE_EXACTLY: MEASURE_MODE_EXACTLY;
type MEASURE_MODE_AT_MOST = 2 & ['MEASURE_MODE']
export const MEASURE_MODE_AT_MOST: MEASURE_MODE_AT_MOST;
export declare const MEASURE_MODE_AT_MOST: MEASURE_MODE_AT_MOST;
type NODE_TYPE_DEFAULT = 0 & ['NODE_TYPE']
export const NODE_TYPE_DEFAULT: NODE_TYPE_DEFAULT;
export declare const NODE_TYPE_DEFAULT: NODE_TYPE_DEFAULT;
type NODE_TYPE_TEXT = 1 & ['NODE_TYPE']
export const NODE_TYPE_TEXT: NODE_TYPE_TEXT;
export declare const NODE_TYPE_TEXT: NODE_TYPE_TEXT;
type OVERFLOW_VISIBLE = 0 & ['OVERFLOW']
export const OVERFLOW_VISIBLE: OVERFLOW_VISIBLE;
export declare const OVERFLOW_VISIBLE: OVERFLOW_VISIBLE;
type OVERFLOW_HIDDEN = 1 & ['OVERFLOW']
export const OVERFLOW_HIDDEN: OVERFLOW_HIDDEN;
export declare const OVERFLOW_HIDDEN: OVERFLOW_HIDDEN;
type OVERFLOW_SCROLL = 2 & ['OVERFLOW']
export const OVERFLOW_SCROLL: OVERFLOW_SCROLL;
export declare const OVERFLOW_SCROLL: OVERFLOW_SCROLL;
type POSITION_TYPE_STATIC = 0 & ['POSITION_TYPE']
export const POSITION_TYPE_STATIC: POSITION_TYPE_STATIC;
export declare const POSITION_TYPE_STATIC: POSITION_TYPE_STATIC;
type POSITION_TYPE_RELATIVE = 1 & ['POSITION_TYPE']
export const POSITION_TYPE_RELATIVE: POSITION_TYPE_RELATIVE;
export declare const POSITION_TYPE_RELATIVE: POSITION_TYPE_RELATIVE;
type POSITION_TYPE_ABSOLUTE = 2 & ['POSITION_TYPE']
export const POSITION_TYPE_ABSOLUTE: POSITION_TYPE_ABSOLUTE;
export declare const POSITION_TYPE_ABSOLUTE: POSITION_TYPE_ABSOLUTE;
type PRINT_OPTIONS_LAYOUT = 1 & ['PRINT_OPTIONS']
export const PRINT_OPTIONS_LAYOUT: PRINT_OPTIONS_LAYOUT;
export declare const PRINT_OPTIONS_LAYOUT: PRINT_OPTIONS_LAYOUT;
type PRINT_OPTIONS_STYLE = 2 & ['PRINT_OPTIONS']
export const PRINT_OPTIONS_STYLE: PRINT_OPTIONS_STYLE;
export declare const PRINT_OPTIONS_STYLE: PRINT_OPTIONS_STYLE;
type PRINT_OPTIONS_CHILDREN = 4 & ['PRINT_OPTIONS']
export const PRINT_OPTIONS_CHILDREN: PRINT_OPTIONS_CHILDREN;
export declare const PRINT_OPTIONS_CHILDREN: PRINT_OPTIONS_CHILDREN;
type UNIT_UNDEFINED = 0 & ['UNIT']
export const UNIT_UNDEFINED: UNIT_UNDEFINED;
export declare const UNIT_UNDEFINED: UNIT_UNDEFINED;
type UNIT_POINT = 1 & ['UNIT']
export const UNIT_POINT: UNIT_POINT;
export declare const UNIT_POINT: UNIT_POINT;
type UNIT_PERCENT = 2 & ['UNIT']
export const UNIT_PERCENT: UNIT_PERCENT;
export declare const UNIT_PERCENT: UNIT_PERCENT;
type UNIT_AUTO = 3 & ['UNIT']
export const UNIT_AUTO: UNIT_AUTO;
export declare const UNIT_AUTO: UNIT_AUTO;
type WRAP_NO_WRAP = 0 & ['WRAP']
export const WRAP_NO_WRAP: WRAP_NO_WRAP;
export declare const WRAP_NO_WRAP: WRAP_NO_WRAP;
type WRAP_WRAP = 1 & ['WRAP']
export const WRAP_WRAP: WRAP_WRAP;
export declare const WRAP_WRAP: WRAP_WRAP;
type WRAP_WRAP_REVERSE = 2 & ['WRAP']
export const WRAP_WRAP_REVERSE: WRAP_WRAP_REVERSE;
export declare const WRAP_WRAP_REVERSE: WRAP_WRAP_REVERSE;
export type Align =

View File

@@ -3,13 +3,13 @@
"target": "es2018",
"module": "commonjs",
"strict": true,
"declaration": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"baseUrl": ".",
"paths": {
"yoga-layout": ["src_js"]
"yoga-layout": ["src"]
}
},
"ts-node": {