diff --git a/packages/caching/src/application/ClassSourceBuilder.ts b/packages/caching/src/application/ClassSourceBuilder.ts index 5c00f8a2..d408ddb9 100644 --- a/packages/caching/src/application/ClassSourceBuilder.ts +++ b/packages/caching/src/application/ClassSourceBuilder.ts @@ -1,5 +1,6 @@ import { Module } from '../module'; +import { FileHelper } from '../utils'; export default class ClassSourceBuilder { @@ -12,7 +13,7 @@ export default class ClassSourceBuilder build(): string { - const filename = this.#module.filename; + const filename = FileHelper.addSubExtension(this.#module.filename, 'shared'); const classes = this.#module.reflection.exportedClasses; const classNames = classes.map(clazz => clazz.name); const sourceCode = classNames.map(className => `${className}.source = "/${filename}";`); diff --git a/packages/jitar/rollup.definitions.js b/packages/jitar/rollup.definitions.js index 2726f835..1159f772 100644 --- a/packages/jitar/rollup.definitions.js +++ b/packages/jitar/rollup.definitions.js @@ -13,7 +13,7 @@ export const SERVER_EXTERNALS = export const REPLACE_VALUES = { - 'RUNTIME_ERROR_LOCATION': '/jitar/client.js', - 'RUNTIME_HOOKS_LOCATION': '/jitar/client.js', + 'RUNTIME_ERROR_LOCATION': 'jitar', + 'RUNTIME_HOOKS_LOCATION': 'jitar', 'JITAR_LIBRARY_NAME': 'jitar', }; diff --git a/packages/jitar/src/client.ts b/packages/jitar/src/client.ts index 3c816a86..1174e3dc 100644 --- a/packages/jitar/src/client.ts +++ b/packages/jitar/src/client.ts @@ -28,7 +28,7 @@ export // InvalidVersionNumber, // MissingParameterValue, // ModuleNotAccessible, - // ModuleNotLoaded, + ModuleNotLoaded, // NoWorkerAvailable, // ProcedureNotAccessible, // ProcedureNotFound, @@ -39,3 +39,9 @@ export // startClient, getClient } from '@jitar/runtime'; + +export +{ + ClassNotFound, + InvalidClass +} from '@jitar/serialization'; \ No newline at end of file diff --git a/packages/runtime/src/lib.ts b/packages/runtime/src/lib.ts index 6676c03c..cc17eee2 100644 --- a/packages/runtime/src/lib.ts +++ b/packages/runtime/src/lib.ts @@ -4,7 +4,7 @@ export { AccessLevels, Segment, Procedure, Implementation, Version, NamedParamet export { HealthCheck } from './health'; export { MiddlewareManager, Middleware, NextHandler } from './middleware'; export { Gateway, LocalGateway, RemoteGateway, Proxy, Repository, LocalRepository, RemoteRepository, Worker, LocalWorker, RemoteWorker, Service, RunnerService } from './services'; -export { File, Files, FileManager, FileNotFound, ImportFunction, ClassModuleLoader, SourceManager } from './source'; +export { File, Files, FileManager, FileNotFound, ImportFunction, ClassModuleLoader, SourceManager, ModuleNotLoaded } from './source'; export { default as RuntimeBuilder } from './RuntimeBuilder.js'; diff --git a/packages/runtime/src/source/SourceManager.ts b/packages/runtime/src/source/SourceManager.ts index 9eafc44c..a763a396 100644 --- a/packages/runtime/src/source/SourceManager.ts +++ b/packages/runtime/src/source/SourceManager.ts @@ -20,10 +20,13 @@ export default class SourceManager { try { + // If the specifier is an absolute path, we need to convert it to a path + // relative to the cache folder. + const fullSpecifier = specifier.startsWith('/') - ? this.#fileManager.getAbsoluteLocation(specifier) + ? this.#fileManager.getAbsoluteLocation(`.${specifier}`) : specifier; - + return await this.#import(fullSpecifier); } catch (error: unknown) diff --git a/packages/runtime/src/source/index.ts b/packages/runtime/src/source/index.ts index 13b2a439..0a980de7 100644 --- a/packages/runtime/src/source/index.ts +++ b/packages/runtime/src/source/index.ts @@ -2,6 +2,7 @@ export { default as Files } from './definitions/Files'; export { default as FileNotFound } from './errors/FileNotFound'; +export { default as ModuleNotLoaded } from './errors/ModuleNotLoaded'; export { default as FileManager } from './interfaces/FileManager'; export { default as ModuleImporter } from './interfaces/ModuleImporter';