##// END OF EJS Templates
Added tag v1.4.6 for changeset 3969a8fb8049
Added tag v1.4.6 for changeset 3969a8fb8049

File last commit:

r115:691199f665e0 ioc ts support
r173:3843ec3ca8f8 default
Show More
ResolverHelper.ts
33 lines | 1.1 KiB | video/mp2t | TypeScriptLexer
/ src / cjs / ts / di / ResolverHelper.ts
cin
working on support commonjs modules format
r59 import { argumentNotEmptyString } from "../safe";
import { TraceSource } from "../log/TraceSource";
const trace = TraceSource.get(module.id);
const mainModule = require.main;
cin
corrected code to support ts strict mode...
r115 const mainRequire = (id: string) => mainModule ? mainModule.require(id) : require;
cin
working on support commonjs modules format
r59
class ModuleResolver {
cin
corrected code to support ts strict mode...
r115 _base: string | undefined;
cin
working on support commonjs modules format
r59 _require: NodeRequireFunction;
constructor(req: NodeRequireFunction, base?: string) {
this._base = base;
this._require = (req || mainRequire).bind(null);
}
resolve(moduleName: string) {
argumentNotEmptyString(moduleName, "moduleName");
const resolvedName = moduleName[0] === "." && this._base ? [this._base, moduleName].join("/") : moduleName;
trace.debug(`${moduleName} -> ${resolvedName}`);
return this._require(resolvedName);
}
}
export function makeResolver(moduleName: string, contextRequire: NodeRequireFunction) {
const base = moduleName && moduleName.split("/").slice(0, -1).join("/");
const resolver = new ModuleResolver(contextRequire, base);
return (id: string) => resolver.resolve(id);
}