Files

Return to Package Diff Home.
Brought to you by Intrinsic.

Package Diff: ts-loader @ 5.4.3 .. 5.4.4

CHANGELOG.md

@@ -1,5 +1,9 @@
# Changelog
+## v5.4.4
+
+* [refactor: add common appendTsTsxSuffixesIfRequired function to instance](https://github.com/TypeStrong/ts-loader/pull/924) - thanks @johnnyreilly!
+
## v5.4.3
* [feat: resolveTypeReferenceDirective support for yarn PnP](https://github.com/TypeStrong/ts-loader/pull/921) - thanks @johnnyreilly!

dist/instances.js

@@ -55,6 +55,13 @@
const compilerOptions = compilerSetup_1.getCompilerOptions(configParseResult);
const files = new Map();
const otherFiles = new Map();
+ const appendTsTsxSuffixesIfRequired = loaderOptions.appendTsSuffixTo.length > 0 ||
+ loaderOptions.appendTsxSuffixTo.length > 0
+ ? (filePath) => utils_1.appendSuffixesIfMatch({
+ '.ts': loaderOptions.appendTsSuffixTo,
+ '.tsx': loaderOptions.appendTsxSuffixTo
+ }, filePath)
+ : (filePath) => filePath;
// same strategy as https://github.com/s-panferov/awesome-typescript-loader/pull/531/files
let { getCustomTransformers: customerTransformers } = loaderOptions;
let getCustomTransformers = Function.prototype;
@@ -92,6 +99,7 @@
instances[loaderOptions.instance] = {
compiler,
compilerOptions,
+ appendTsTsxSuffixesIfRequired,
loaderOptions,
files,
otherFiles,
@@ -129,6 +137,7 @@
const instance = (instances[loaderOptions.instance] = {
compiler,
compilerOptions,
+ appendTsTsxSuffixesIfRequired,
loaderOptions,
files,
otherFiles,
@@ -146,7 +155,7 @@
if (loaderOptions.experimentalWatchApi && compiler.createWatchProgram) {
log.logInfo('Using watch api');
// If there is api available for watch, use it instead of language service
- instance.watchHost = servicesHost_1.makeWatchHost(scriptRegex, log, loader, instance, loaderOptions.appendTsSuffixTo, loaderOptions.appendTsxSuffixTo, configParseResult.projectReferences);
+ instance.watchHost = servicesHost_1.makeWatchHost(scriptRegex, log, loader, instance, configParseResult.projectReferences);
instance.watchOfFilesAndCompilerOptions = compiler.createWatchProgram(instance.watchHost);
instance.program = instance.watchOfFilesAndCompilerOptions
.getProgram()

dist/servicesHost.js

@@ -8,7 +8,7 @@
* Create the TypeScript language service
*/
function makeServicesHost(scriptRegex, log, loader, instance, enableFileCaching, projectReferences) {
- const { compiler, compilerOptions, files, loaderOptions: { appendTsSuffixTo, appendTsxSuffixTo, resolveModuleName: customResolveModuleName, resolveTypeReferenceDirective: customResolveTypeReferenceDirective } } = instance;
+ const { compiler, compilerOptions, appendTsTsxSuffixesIfRequired, files, loaderOptions: { resolveModuleName: customResolveModuleName, resolveTypeReferenceDirective: customResolveTypeReferenceDirective } } = instance;
const newLine = compilerOptions.newLine === constants.CarriageReturnLineFeedCode
? constants.CarriageReturnLineFeed
: compilerOptions.newLine === constants.LineFeedCode
@@ -28,7 +28,7 @@
const clearCache = enableFileCaching ? addCache(moduleResolutionHost) : null;
// loader.context seems to work fine on Linux / Mac regardless causes problems for @types resolution on Windows for TypeScript < 2.3
const getCurrentDirectory = () => loader.context;
- const resolvers = makeResolvers(compiler, compilerOptions, moduleResolutionHost, customResolveTypeReferenceDirective, customResolveModuleName, resolveSync, appendTsSuffixTo, appendTsxSuffixTo, scriptRegex, instance);
+ const resolvers = makeResolvers(compiler, compilerOptions, moduleResolutionHost, customResolveTypeReferenceDirective, customResolveModuleName, resolveSync, appendTsTsxSuffixesIfRequired, scriptRegex, instance);
const servicesHost = {
getProjectVersion: () => `${instance.version}`,
getProjectReferences: () => projectReferences,
@@ -82,13 +82,13 @@
return { servicesHost, clearCache };
}
exports.makeServicesHost = makeServicesHost;
-function makeResolvers(compiler, compilerOptions, moduleResolutionHost, customResolveTypeReferenceDirective, customResolveModuleName, resolveSync, appendTsSuffixTo, appendTsxSuffixTo, scriptRegex, instance) {
+function makeResolvers(compiler, compilerOptions, moduleResolutionHost, customResolveTypeReferenceDirective, customResolveModuleName, resolveSync, appendTsTsxSuffixesIfRequired, scriptRegex, instance) {
const resolveTypeReferenceDirective = makeResolveTypeReferenceDirective(compiler, compilerOptions, moduleResolutionHost, customResolveTypeReferenceDirective);
const resolveTypeReferenceDirectives = (typeDirectiveNames, containingFile, _redirectedReference) => typeDirectiveNames.map(directive => resolveTypeReferenceDirective(directive, containingFile)
.resolvedTypeReferenceDirective);
const resolveModuleName = makeResolveModuleName(compiler, compilerOptions, moduleResolutionHost, customResolveModuleName);
const resolveModuleNames = (moduleNames, containingFile, _reusedNames, _redirectedReference) => {
- const resolvedModules = moduleNames.map(moduleName => resolveModule(resolveSync, resolveModuleName, appendTsSuffixTo, appendTsxSuffixTo, scriptRegex, moduleName, containingFile));
+ const resolvedModules = moduleNames.map(moduleName => resolveModule(resolveSync, resolveModuleName, appendTsTsxSuffixesIfRequired, scriptRegex, moduleName, containingFile));
populateDependencyGraphs(resolvedModules, instance, containingFile);
return resolvedModules;
};
@@ -100,8 +100,8 @@
/**
* Create the TypeScript Watch host
*/
-function makeWatchHost(scriptRegex, log, loader, instance, appendTsSuffixTo, appendTsxSuffixTo, projectReferences) {
- const { compiler, compilerOptions, files, otherFiles, loaderOptions: { resolveModuleName: customResolveModuleName, resolveTypeReferenceDirective: customResolveTypeReferenceDirective } } = instance;
+function makeWatchHost(scriptRegex, log, loader, instance, projectReferences) {
+ const { compiler, compilerOptions, appendTsTsxSuffixesIfRequired, files, otherFiles, loaderOptions: { resolveModuleName: customResolveModuleName, resolveTypeReferenceDirective: customResolveTypeReferenceDirective } } = instance;
const newLine = compilerOptions.newLine === constants.CarriageReturnLineFeedCode
? constants.CarriageReturnLineFeed
: compilerOptions.newLine === constants.LineFeedCode
@@ -120,7 +120,7 @@
const watchedFiles = {};
const watchedDirectories = {};
const watchedDirectoriesRecursive = {};
- const resolvers = makeResolvers(compiler, compilerOptions, moduleResolutionHost, customResolveTypeReferenceDirective, customResolveModuleName, resolveSync, appendTsSuffixTo, appendTsxSuffixTo, scriptRegex, instance);
+ const resolvers = makeResolvers(compiler, compilerOptions, moduleResolutionHost, customResolveTypeReferenceDirective, customResolveModuleName, resolveSync, appendTsTsxSuffixesIfRequired, scriptRegex, instance);
const watchHost = {
rootFiles: getRootFileNames(),
options: compilerOptions,
@@ -249,16 +249,11 @@
return (resolvedModule.resolvedFileName.endsWith('js') &&
/\.d\.ts$/.test(tsResolution.resolvedFileName));
}
-function resolveModule(resolveSync, resolveModuleName, appendTsSuffixTo, appendTsxSuffixTo, scriptRegex, moduleName, containingFile) {
+function resolveModule(resolveSync, resolveModuleName, appendTsTsxSuffixesIfRequired, scriptRegex, moduleName, containingFile) {
let resolutionResult;
try {
const originalFileName = resolveSync(undefined, path.normalize(path.dirname(containingFile)), moduleName);
- const resolvedFileName = appendTsSuffixTo.length > 0 || appendTsxSuffixTo.length > 0
- ? utils_1.appendSuffixesIfMatch({
- '.ts': appendTsSuffixTo,
- '.tsx': appendTsxSuffixTo
- }, originalFileName)
- : originalFileName;
+ const resolvedFileName = appendTsTsxSuffixesIfRequired(originalFileName);
if (resolvedFileName.match(scriptRegex) !== null) {
resolutionResult = { resolvedFileName, originalFileName };
}

dist/types/interfaces.d.ts

@@ -211,6 +211,8 @@
export interface TSInstance {
compiler: typeof typescript;
compilerOptions: typescript.CompilerOptions;
+ /** Used for Vue for the most part */
+ appendTsTsxSuffixesIfRequired: (filePath: string) => string;
loaderOptions: LoaderOptions;
/**
* a cache of all the files

dist/types/servicesHost.d.ts

@@ -13,4 +13,4 @@
/**
* Create the TypeScript Watch host
*/
-export declare function makeWatchHost(scriptRegex: RegExp, log: logger.Logger, loader: Webpack, instance: TSInstance, appendTsSuffixTo: RegExp[], appendTsxSuffixTo: RegExp[], projectReferences?: ReadonlyArray<typescript.ProjectReference>): WatchHost;
+export declare function makeWatchHost(scriptRegex: RegExp, log: logger.Logger, loader: Webpack, instance: TSInstance, projectReferences?: ReadonlyArray<typescript.ProjectReference>): WatchHost;

package.json

@@ -1,6 +1,6 @@
{
"name": "ts-loader",
- "version": "5.4.3",
+ "version": "5.4.4",
"description": "TypeScript loader for webpack",
"main": "index.js",
"types": "dist/types/index.d.ts",