UNPKG

dipend

Version:

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

43 lines (41 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.TokenTypeResolver = void 0; const token_type_enum_1 = require("../enums/token-type.enum"); const checkers_1 = require("./checkers"); class TokenTypeResolver { checkers = new Map(); setDefaultTokenTypeCheckers() { this.checkers.set(token_type_enum_1.TokenTypeEnum.CLASS_CONSTRUCTOR, new checkers_1.ClassTokenTypeChecker()); this.checkers.set(token_type_enum_1.TokenTypeEnum.INTERFACE_SYMBOL, new checkers_1.InterfaceSymbolTokenTypeChecker()); this.checkers.set(token_type_enum_1.TokenTypeEnum.STRING, new checkers_1.StringTokenTypeChecker()); this.checkers.set(token_type_enum_1.TokenTypeEnum.SYMBOL, new checkers_1.SymbolTokenTypeChecker()); } setTokenTypeChecker(tokenType, tokenTypeChecker) { this.checkers.set(tokenType, tokenTypeChecker); } getTokenType(token) { for (const [tokenType, tokenTypeChecker] of this.checkers.entries()) { if (tokenTypeChecker.execute(token)) { return tokenType; } } return "UNKNOWN"; } } exports.TokenTypeResolver = TokenTypeResolver;