idlize
36 строк · 1.5 Кб
1/*
2* Copyright (c) 2022-2023 Huawei Device Co., Ltd.
3* Licensed under the Apache License, Version 2.0 (the "License");
4* you may not use this file except in compliance with the License.
5* You may obtain a copy of the License at
6*
7* http://www.apache.org/licenses/LICENSE-2.0
8*
9* Unless required by applicable law or agreed to in writing, software
10* distributed under the License is distributed on an "AS IS" BASIS,
11* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12* See the License for the specific language governing permissions and
13* limitations under the License.
14*/
15
16import * as ts from "typescript"
17import { CallTable, EntryTable, FunctionKind, FunctionTable, PositionalIdTracker, TransformerOptions, VariableTable } from "./util"
18
19export class Rewrite {
20public functionTable: FunctionTable
21public callTable: CallTable
22public variableTable: VariableTable
23public entryTable: EntryTable
24public positionalIdTracker: PositionalIdTracker
25
26constructor(sourceFile: ts.SourceFile, public pluginOptions: TransformerOptions) {
27this.functionTable = new Map<ts.SignatureDeclarationBase, FunctionKind>()
28this.callTable = new Map<ts.CallExpression, FunctionKind>()
29this.variableTable = new Map<ts.VariableLikeDeclaration, FunctionKind>()
30this.entryTable = new Set<ts.CallExpression>()
31this.positionalIdTracker = new PositionalIdTracker(sourceFile, pluginOptions.stableForTest ?? false)
32
33}
34
35public importTypesFrom: string|undefined = undefined
36}