mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
fd2b3e13d3
Updates the prettier config to format all `.ts` and `.tsx` files in the repo using the existing defaults and removing overrides. The first commit in this PR contains the config changes, the second is just the result of running `yarn prettier-all`.
48 lines
1.4 KiB
TypeScript
48 lines
1.4 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.
|
|
*/
|
|
|
|
import type * as BabelCore from '@babel/core';
|
|
import {transformFromAstSync} from '@babel/core';
|
|
import * as BabelParser from '@babel/parser';
|
|
import invariant from 'invariant';
|
|
import type {PluginOptions} from '../Entrypoint';
|
|
import BabelPluginReactCompiler from './BabelPlugin';
|
|
|
|
export const DEFAULT_PLUGINS = ['babel-plugin-fbt', 'babel-plugin-fbt-runtime'];
|
|
export function runBabelPluginReactCompiler(
|
|
text: string,
|
|
file: string,
|
|
language: 'flow' | 'typescript',
|
|
options: Partial<PluginOptions> | null,
|
|
includeAst: boolean = false,
|
|
): BabelCore.BabelFileResult {
|
|
const ast = BabelParser.parse(text, {
|
|
sourceFilename: file,
|
|
plugins: [language, 'jsx'],
|
|
sourceType: 'module',
|
|
});
|
|
const result = transformFromAstSync(ast, text, {
|
|
ast: includeAst,
|
|
filename: file,
|
|
highlightCode: false,
|
|
retainLines: true,
|
|
plugins: [
|
|
[BabelPluginReactCompiler, options],
|
|
'babel-plugin-fbt',
|
|
'babel-plugin-fbt-runtime',
|
|
],
|
|
sourceType: 'module',
|
|
configFile: false,
|
|
babelrc: false,
|
|
});
|
|
invariant(
|
|
result?.code != null,
|
|
`Expected BabelPluginReactForget to codegen successfully, got: ${result}`,
|
|
);
|
|
return result;
|
|
}
|