UNPKG

dipend

Version:

This library implements a dependency injection (DI) system in JavaScript/TypeScript, making it easier to manage dependencies in modular applications.

49 lines (47 loc) 1.73 kB
/* * Copyright 2025 Saulo V. Alvarenga. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AstVisitHandler = void 0; class AstVisitHandler { tsInstance; program; transform; constructor(tsInstance, program, transform) { this.tsInstance = tsInstance; this.program = program; this.transform = transform; } handle(context) { const tsInstance = this.tsInstance; const transform = this.transform; return (sourceFile) => { const typeChecker = this.program.getTypeChecker(); const { factory } = context; transform.setTsFactory(factory); transform.setTsInstance(tsInstance); transform.setTypeChecker(typeChecker); function visit(node) { const result = transform.execute(node); if (result) return result; return tsInstance.visitEachChild(node, visit, context); } return tsInstance.visitEachChild(sourceFile, visit, context); }; } } exports.AstVisitHandler = AstVisitHandler;