typescript-template-language-service-decorator
Version:
Framework for decorating a TypeScript language service with support for languages embedded in template strings
31 lines (30 loc) • 1.78 kB
JavaScript
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.decorateWithTemplateLanguageService = void 0;
const standard_script_source_helper_1 = require("./standard-script-source-helper");
const template_language_service_decorator_1 = require("./template-language-service-decorator");
const standard_template_source_helper_1 = require("./standard-template-source-helper");
const nullLogger = new class NullLogger {
log(_msg) { }
}();
/**
* Augments a TypeScript language service with language support for the contents
* of template strings.
*
* @param typescript Instance of typescript to use.
* @param languageService Base language service to augment.
* @param templateService Language service for contents of template strings.
* @param project Language service for contents of template strings.
* @param templateSettings Determines how template strings are processed.
* @param additionalConfig Additional configuration for the service.
*
* @return A copy of the language service with the template language applied. Does not mutate the
* input language service.
*/
function decorateWithTemplateLanguageService(typescript, languageService, project, templateService, templateSettings, additionalConfig) {
const logger = (additionalConfig && additionalConfig.logger) || nullLogger;
return new template_language_service_decorator_1.default(typescript, new standard_template_source_helper_1.default(typescript, templateSettings, new standard_script_source_helper_1.default(typescript, project), logger), templateService, logger).decorate(languageService);
}
exports.decorateWithTemplateLanguageService = decorateWithTemplateLanguageService;
;