Skip to content
Merged
Changes from 1 commit
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
Prev Previous commit
Next Next commit
update deprecated methods in create-overloads
  • Loading branch information
hsubox76 committed Oct 14, 2022
commit 47729e91a73813139b68fbf8c4ec448cf6e6be86
47 changes: 25 additions & 22 deletions scripts/build/create-overloads.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ function keepPublicFunctionsTransformer(
return (sourceFile: ts.SourceFile) => {
const typeChecker = program.getTypeChecker();
const overloads: ts.Statement[] = [];
const { factory } = context;
function visit(node: ts.Node): ts.Node {
if (ts.isFunctionDeclaration(node)) {
// return early if the function doesn't have any parameter of the type we are looking for
Expand All @@ -137,7 +138,7 @@ function keepPublicFunctionsTransformer(
return false;
})
) {
return ts.createToken(ts.SyntaxKind.WhitespaceTrivia);
return factory.createEmptyStatement();
}

const newParameters = node.parameters.map(param => {
Expand All @@ -146,14 +147,14 @@ function keepPublicFunctionsTransformer(
if (
param.type.typeName.getText(sourceFile) === replaceOption.match
) {
return ts.updateParameter(
return factory.updateParameterDeclaration(
param,
param.decorators,
param.modifiers,
param.dotDotDotToken,
param.name,
param.questionToken,
ts.createTypeReferenceNode(
factory.createTypeReferenceNode(
replaceOption.replacement,
param.type.typeArguments
),
Expand All @@ -173,7 +174,7 @@ function keepPublicFunctionsTransformer(
});

overloads.push(
ts.updateFunctionDeclaration(
factory.updateFunctionDeclaration(
node,
node.decorators,
[],
Expand All @@ -189,7 +190,7 @@ function keepPublicFunctionsTransformer(

// remove all nodes other than the source file itself
if (!ts.isSourceFile(node)) {
return ts.createToken(ts.SyntaxKind.WhitespaceTrivia);
return factory.createEmptyStatement();
}

return node;
Expand All @@ -214,43 +215,45 @@ function keepPublicFunctionsTransformer(
}

// hardcode adding `import { FirebaseApp as FirebaseAppCompat } from '@firebase/app-compat'`
const appCompatImport = ts.createImportDeclaration(
const appCompatImport = factory.createImportDeclaration(
undefined,
undefined,
ts.createImportClause(
factory.createImportClause(
false,
undefined,
ts.createNamedImports([
ts.createImportSpecifier(
factory.createNamedImports([
factory.createImportSpecifier(
false,
ts.createIdentifier('FirebaseApp'),
ts.createIdentifier('FirebaseAppCompat')
factory.createIdentifier('FirebaseApp'),
factory.createIdentifier('FirebaseAppCompat')
)
])
),
ts.createLiteral('@firebase/app-compat')
factory.createStringLiteral('@firebase/app-compat')
);

const importStatement = ts.createImportDeclaration(
const importStatement = factory.createImportDeclaration(
undefined,
undefined,
ts.createImportClause(
factory.createImportClause(
false,
undefined,
ts.createNamedImports(
factory.createNamedImports(
Array.from(typesToImport).map(typeName =>
ts.createImportSpecifier(true, undefined, ts.createIdentifier(typeName))
factory.createImportSpecifier(true, undefined, factory.createIdentifier(typeName))
)
)
),
ts.createLiteral(moduleNameToEnhance)
factory.createStringLiteral(moduleNameToEnhance)
);
const moduleToEnhance = ts.createModuleDeclaration(
const moduleToEnhance = factory.createModuleDeclaration(
undefined,
[ts.createModifier(ts.SyntaxKind.DeclareKeyword)],
ts.createStringLiteral(moduleNameToEnhance),
ts.createModuleBlock(overloads)
[factory.createModifier(ts.SyntaxKind.DeclareKeyword)],
factory.createStringLiteral(moduleNameToEnhance),
factory.createModuleBlock(overloads)
);

return ts.updateSourceFileNode(transformed, [
return factory.updateSourceFile(transformed, [
appCompatImport,
importStatement,
moduleToEnhance
Expand Down