Files
yoga/javascript/src_js/wrapAsm.d.ts
Nick Gerleman b958b647d4 TypeScript fixes
Summary:
A pending change revamps a lot of how ESLint, Prettier, and Jest are configured in the repo, along with moving the world to TypeScript (and adding tsc usage).

That still needs some work to split up, but this change adds types used in our unit tests that I found were missing.

Differential Revision: D45506781

fbshipit-source-id: 4fa450d986d5be5ed09849724cc63d1762a0ecbf
2023-05-02 17:56:08 -07:00

192 lines
5.6 KiB
TypeScript

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
import type {
Align,
Direction,
Display,
Edge,
Errata,
ExperimentalFeature,
FlexDirection,
Gutter,
Justify,
MeasureMode,
Overflow,
PositionType,
Unit,
Wrap,
} from "./generated/YGEnums";
import type * as YGEnums from "./generated/YGEnums";
type Layout = {
left: number;
right: number;
top: number;
bottom: number;
width: number;
height: number;
};
type Size = {
width: number;
height: number;
};
type Value = {
unit: Unit;
value: number;
};
export type Config = {
free(): void;
isExperimentalFeatureEnabled(feature: ExperimentalFeature): boolean;
setExperimentalFeatureEnabled(
feature: ExperimentalFeature,
enabled: boolean
): void;
setPointScaleFactor(factor: number): void;
/**
* @deprecated Please use "getErrata()"
*/
useLegacyStretchBehaviour(): boolean;
/**
* @deprecated "setUseLegacyStretchBehaviour" will be removed in the next
* release. Usage should be replaced with "setErrata(ERRATA_ALL)" to opt out
* of all future breaking conformance fixes, or
* "setErrata(ERRATA_STRETCH_FLEX_BASIS)" to opt out of the specific
* conformance fix previously disabled by "UseLegacyStretchBehaviour".
*/
setUseLegacyStretchBehaviour(useLegacyStretchBehaviour: boolean): void;
getErrata(): Errata;
setErrata(errata: Errata): void;
useWebDefaults(): boolean;
setUseWebDefaults(useWebDefaults: boolean): void;
};
export type DirtiedFunction = (node: Node) => void;
export type MeasureFunction = (
width: number,
widthMode: MeasureMode,
height: number,
heightMode: MeasureMode
) => Size;
export type Node = {
calculateLayout(width?: number, height?: number, direction?: Direction): void;
copyStyle(node: Node): void;
free(): void;
freeRecursive(): void;
getAlignContent(): Align;
getAlignItems(): Align;
getAlignSelf(): Align;
getAspectRatio(): number;
getBorder(edge: Edge): number;
getChild(index: number): Node;
getChildCount(): number;
getComputedBorder(edge: Edge): number;
getComputedBottom(): number;
getComputedHeight(): number;
getComputedLayout(): Layout;
getComputedLeft(): number;
getComputedMargin(edge: Edge): number;
getComputedPadding(edge: Edge): number;
getComputedRight(): number;
getComputedTop(): number;
getComputedWidth(): number;
getDisplay(): Display;
getFlexBasis(): Value;
getFlexDirection(): FlexDirection;
getFlexGrow(): number;
getFlexShrink(): number;
getFlexWrap(): Wrap;
getHeight(): Value;
getJustifyContent(): Justify;
getGap(gutter: Gutter): Value;
getMargin(edge: Edge): Value;
getMaxHeight(): Value;
getMaxWidth(): Value;
getMinHeight(): Value;
getMinWidth(): Value;
getOverflow(): Overflow;
getPadding(edge: Edge): Value;
getParent(): Node | null;
getPosition(edge: Edge): Value;
getPositionType(): PositionType;
getWidth(): Value;
insertChild(child: Node, index: number): void;
isDirty(): boolean;
isReferenceBaseline(): boolean;
markDirty(): void;
removeChild(child: Node): void;
reset(): void;
setAlignContent(alignContent: Align): void;
setAlignItems(alignItems: Align): void;
setAlignSelf(alignSelf: Align): void;
setAspectRatio(aspectRatio: number): void;
setBorder(edge: Edge, borderWidth: number): void;
setDisplay(display: Display): void;
setFlex(flex: number): void;
setFlexBasis(flexBasis: number | "auto" | `${number}%`): void;
setFlexBasisPercent(flexBasis: number): void;
setFlexBasisAuto(): void;
setFlexDirection(flexDirection: FlexDirection): void;
setFlexGrow(flexGrow: number): void;
setFlexShrink(flexShrink: number): void;
setFlexWrap(flexWrap: Wrap): void;
setHeight(height: number | "auto" | `${number}%`): void;
setIsReferenceBaseline(isReferenceBaseline: boolean): void;
setHeightAuto(): void;
setHeightPercent(height: number): void;
setJustifyContent(justifyContent: Justify): void;
setGap(gutter: Gutter, gapLength: number): Value;
setMargin(edge: Edge, margin: number | "auto" | `${number}%`): void;
setMarginAuto(edge: Edge): void;
setMarginPercent(edge: Edge, margin: number): void;
setMaxHeight(maxHeight: number | `${number}%`): void;
setMaxHeightPercent(maxHeight: number): void;
setMaxWidth(maxWidth: number | `${number}%`): void;
setMaxWidthPercent(maxWidth: number): void;
setDirtiedFunc(dirtiedFunc: DirtiedFunction | null): void;
setMeasureFunc(measureFunc: MeasureFunction | null): void;
setMinHeight(minHeight: number | `${number}%`): void;
setMinHeightPercent(minHeight: number): void;
setMinWidth(minWidth: number | `${number}%`): void;
setMinWidthPercent(minWidth: number): void;
setOverflow(overflow: Overflow): void;
setPadding(edge: Edge, padding: number | `${number}%`): void;
setPaddingPercent(edge: Edge, padding: number): void;
setPosition(edge: Edge, position: number | `${number}%`): void;
setPositionPercent(edge: Edge, position: number): void;
setPositionType(positionType: PositionType): void;
setWidth(width: number | "auto" | `${number}%`): void;
setWidthAuto(): void;
setWidthPercent(width: number): void;
unsetDirtiedFunc(): void;
unsetMeasureFunc(): void;
};
export type Yoga = {
Config: {
create(): Config;
destroy(config: Config): void;
};
Node: {
create(config?: Config): Node;
createDefault(): Node;
createWithConfig(config: Config): Node;
destroy(node: Node): void;
};
} & typeof YGEnums;
declare const wrapAsm: () => Yoga;
export default wrapAsm;