UNPKG

dipend

Version:

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

42 lines (40 loc) 1.81 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.TokenNameResolver = void 0; const token_type_enum_1 = require("../enums/token-type.enum"); const strategies_1 = require("./strategies"); class TokenNameResolver { strategies = new Map(); setDefaultTokenNameStrategies() { this.strategies.set(token_type_enum_1.TokenTypeEnum.CLASS_CONSTRUCTOR, new strategies_1.ClassTokenNameStrategy()); this.strategies.set(token_type_enum_1.TokenTypeEnum.INTERFACE_SYMBOL, new strategies_1.InterfaceSymbolTokenNameStrategy()); this.strategies.set(token_type_enum_1.TokenTypeEnum.STRING, new strategies_1.StringTokenNameStrategy()); this.strategies.set(token_type_enum_1.TokenTypeEnum.SYMBOL, new strategies_1.SymbolTokenNameStrategy()); } setTokenNameStrategy(tokenType, tokenNameStrategy) { this.strategies.set(tokenType, tokenNameStrategy); } getTokenName(token, tokenType) { const strategy = this.strategies.get(tokenType); if (strategy === undefined) { return "UNKNOWN"; } return strategy.execute(token); } } exports.TokenNameResolver = TokenNameResolver;