Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import type {TransformVisitor} from 'hermes-transform';

const {
visitors: stripPrivateProperties,
} = require('../../../../scripts/build-types/transforms/stripPrivateProperties');
} = require('../../../../scripts/build-types/transforms/flow/stripPrivateProperties');
const translate = require('flow-api-translator');
const {existsSync, promises: fs} = require('fs');
const glob = require('glob');
Expand Down
12 changes: 6 additions & 6 deletions scripts/build-types/BuildApiSnapshot.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const {PACKAGES_DIR, REACT_NATIVE_PACKAGE_DIR} = require('../consts');
const {isGitRepo} = require('../scm-utils');
const {API_EXTRACTOR_CONFIG_FILE, TYPES_OUTPUT_DIR} = require('./config');
const apiSnapshotTemplate = require('./templates/ReactNativeApi.d.ts-template.js');
const resolveCyclicImportsInDefinition = require('./transforms/resolveCyclicImportsInDefinition');
const resolveCyclicImportsInDefinition = require('./utils/resolveCyclicImportsInDefinition');
const babel = require('@babel/core');
const {
Extractor,
Expand All @@ -31,14 +31,14 @@ const osTempDir = require('temp-dir');
const {styleText} = require('util');

const inputFilesPostTransforms: $ReadOnlyArray<PluginObj<mixed>> = [
require('./transforms/renameDefaultExportedIdentifiers'),
require('./transforms/typescript/renameDefaultExportedIdentifiers'),
];

const postTransforms: $ReadOnlyArray<PluginObj<mixed>> = [
require('./transforms/stripUnstableApis'),
require('./transforms/sortTypeDefinitions'),
require('./transforms/sortProperties'),
require('./transforms/sortUnions'),
require('./transforms/typescript/stripUnstableApis'),
require('./transforms/typescript/sortTypeDefinitions'),
require('./transforms/typescript/sortProperties'),
require('./transforms/typescript/sortUnions'),
require('./transforms/removeUndefinedFromOptionalMembers'),
];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const ensureNoUnprefixedProps = require('../ensureNoUnprefixedProps.js');
const ensureNoUnprefixedProps = require('../ensureNoUnprefixedProps');
const {parse, print} = require('hermes-transform');

const prettierOptions = {parser: 'babel'};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const reattachDocComments = require('../reattachDocComments.js');
const reattachDocComments = require('../reattachDocComments');
const {parse, print} = require('hermes-transform');

const prettierOptions = {parser: 'babel'};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const replaceEmptyWithNever = require('../replaceEmptyWithNever.js');
const replaceEmptyWithNever = require('../replaceEmptyWithNever');
const {parse, print} = require('hermes-transform');

const prettierOptions = {parser: 'babel'};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const replaceNullablePropertiesWithUndefined = require('../replaceNullablePropertiesWithUndefined.js');
const replaceNullablePropertiesWithUndefined = require('../replaceNullablePropertiesWithUndefined');
const {parse, print} = require('hermes-transform');

const prettierOptions = {parser: 'babel'};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const replaceRequiresWithImports = require('../replaceRequiresWithImports.js');
const replaceRequiresWithImports = require('../replaceRequiresWithImports');
const {parse, print} = require('hermes-transform');

const prettierOptions = {parser: 'babel'};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const replaceStringishWithString = require('../replaceStringishWithString.js');
const replaceStringishWithString = require('../replaceStringishWithString');
const {parse, print} = require('hermes-transform');

const prettierOptions = {parser: 'babel'};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const stripPrivateProperties = require('../stripPrivateProperties.js');
const stripPrivateProperties = require('../stripPrivateProperties');
const {parse, print} = require('hermes-transform');

const prettierOptions = {parser: 'babel'};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const renameDefaultExportedIdentifiersVisitor = require('../renameDefaultExportedIdentifiers.js');
const renameDefaultExportedIdentifiersVisitor = require('../renameDefaultExportedIdentifiers');
const babel = require('@babel/core');

async function translate(code: string): Promise<string> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const createReplaceDefaultExportName = require('../replaceDefaultExportName.js');
const createReplaceDefaultExportName = require('../replaceDefaultExportName');
const babel = require('@babel/core');
const flowApiTranslator = require('flow-api-translator');

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const sortPropertiesVisitor = require('../sortProperties.js');
const sortPropertiesVisitor = require('../sortProperties');
const babel = require('@babel/core');
const {promises: fs} = require('fs');
const path = require('path');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const sortTypeDefinitionsVisitor = require('../sortTypeDefinitions.js');
const sortTypeDefinitionsVisitor = require('../sortTypeDefinitions');
const babel = require('@babel/core');
const {promises: fs} = require('fs');
const path = require('path');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const sortUnionsVisitor = require('../sortUnions.js');
const sortUnionsVisitor = require('../sortUnions');
const babel = require('@babel/core');
const {promises: fs} = require('fs');
const path = require('path');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const stripUnstableApisVisitor = require('../stripUnstableApis.js');
const stripUnstableApisVisitor = require('../stripUnstableApis');
const babel = require('@babel/core');

async function translate(code: string): Promise<string> {
Expand Down
28 changes: 11 additions & 17 deletions scripts/build-types/translateSourceFile.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,23 +13,24 @@ import type {ParseResult} from 'hermes-transform/dist/transform/parse';
import type {TransformASTResult} from 'hermes-transform/dist/transform/transformAST';

const getDependencies = require('./resolution/getDependencies');
const createReplaceDefaultExportName = require('./transforms/replaceDefaultExportName');
const babel = require('@babel/core');
const translate = require('flow-api-translator');
const {parse, print} = require('hermes-transform');

type PreTransformFn = ParseResult => Promise<TransformASTResult>;

const preTransforms: Array<PreTransformFn> = [
require('./transforms/stripPrivateProperties'),
require('./transforms/replaceRequiresWithImports'),
require('./transforms/replaceEmptyWithNever'),
require('./transforms/replaceStringishWithString'),
require('./transforms/replaceNullablePropertiesWithUndefined'),
require('./transforms/reattachDocComments'),
require('./transforms/ensureNoUnprefixedProps'),
require('./transforms/flow/stripPrivateProperties'),
require('./transforms/flow/replaceRequiresWithImports'),
require('./transforms/flow/replaceEmptyWithNever'),
require('./transforms/flow/replaceStringishWithString'),
require('./transforms/flow/replaceNullablePropertiesWithUndefined'),
require('./transforms/flow/reattachDocComments'),
require('./transforms/flow/ensureNoUnprefixedProps'),
];
const postTransforms = (filePath: string): Array<PluginObj<mixed>> => [
require('./transforms/typescript/replaceDefaultExportName')(filePath),
];
const postTransforms: Array<PluginObj<mixed>> = [];
const prettierOptions = {parser: 'babel'};
const unsupportedFeatureRegex =
/Unsupported feature: Translating ".*" is currently not supported/;
Expand Down Expand Up @@ -100,19 +101,12 @@ async function applyPreTransforms(source: ParseResult): Promise<ParseResult> {
}, Promise.resolve(source));
}

/**
* Apply post-transforms to .d.ts source code containing @build-types directives.
*/
async function applyPostTransforms(
source: string,
filePath: string,
): Promise<string> {
const result = await babel.transformAsync(source, {
plugins: [
'@babel/plugin-syntax-typescript',
...postTransforms,
createReplaceDefaultExportName(filePath),
],
plugins: ['@babel/plugin-syntax-typescript', ...postTransforms(filePath)],
});

return result.code;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @format
*/

const resolveCyclicImportsInDefinition = require('../resolveCyclicImportsInDefinition.js');
const resolveCyclicImportsInDefinition = require('../resolveCyclicImportsInDefinition');
const path = require('path');

const packagesPath = '/path/to/package/definition/files';
Expand Down
Loading