using System; using System.IO; using System.Threading; using System.Threading.Tasks; using Jering.Javascript.NodeJS; namespace JavaScriptEngineSwitcher.Node { /// /// Default Node JS service /// /// /// Wrapper around the class. /// public sealed class DefaultNodeJsService : INodeJSService { /// /// Instance of default Node JS service /// private static readonly DefaultNodeJsService _instance = new DefaultNodeJsService(); /// /// Gets a instance of default Node JS service /// public static INodeJSService Instance { get { return _instance; } } /// /// Private constructor for implementation Singleton pattern /// private DefaultNodeJsService() { } #region INodeJSService implementation public Task InvokeFromFileAsync(string modulePath, string exportName = null, object[] args = null, CancellationToken cancellationToken = default) { return StaticNodeJSService.InvokeFromFileAsync(modulePath, exportName, args, cancellationToken); } public Task InvokeFromFileAsync(string modulePath, string exportName = null, object[] args = null, CancellationToken cancellationToken = default) { return StaticNodeJSService.InvokeFromFileAsync(modulePath, exportName, args, cancellationToken); } public Task InvokeFromStringAsync(string moduleString, string cacheIdentifier = null, string exportName = null, object[] args = null, CancellationToken cancellationToken = default) { return StaticNodeJSService.InvokeFromStringAsync(moduleString, cacheIdentifier, exportName, args, cancellationToken); } public Task InvokeFromStringAsync(string moduleString, string cacheIdentifier = null, string exportName = null, object[] args = null, CancellationToken cancellationToken = default) { return StaticNodeJSService.InvokeFromStringAsync(moduleString, cacheIdentifier, exportName, args, cancellationToken); } public Task InvokeFromStringAsync(Func moduleFactory, string cacheIdentifier, string exportName = null, object[] args = null, CancellationToken cancellationToken = default) { return StaticNodeJSService.InvokeFromStringAsync(moduleFactory, cacheIdentifier, exportName, args, cancellationToken); } public Task InvokeFromStringAsync(Func moduleFactory, string cacheIdentifier, string exportName = null, object[] args = null, CancellationToken cancellationToken = default) { return StaticNodeJSService.InvokeFromStringAsync(moduleFactory, cacheIdentifier, exportName, args, cancellationToken); } public Task InvokeFromStreamAsync(Stream moduleStream, string cacheIdentifier = null, string exportName = null, object[] args = null, CancellationToken cancellationToken = default) { return StaticNodeJSService.InvokeFromStreamAsync(moduleStream, cacheIdentifier, exportName, args, cancellationToken); } public Task InvokeFromStreamAsync(Stream moduleStream, string cacheIdentifier = null, string exportName = null, object[] args = null, CancellationToken cancellationToken = default) { return StaticNodeJSService.InvokeFromStreamAsync(moduleStream, cacheIdentifier, exportName, args, cancellationToken); } public Task InvokeFromStreamAsync(Func moduleFactory, string cacheIdentifier, string exportName = null, object[] args = null, CancellationToken cancellationToken = default) { return StaticNodeJSService.InvokeFromStreamAsync(moduleFactory, cacheIdentifier, exportName, args, cancellationToken); } public Task InvokeFromStreamAsync(Func moduleFactory, string cacheIdentifier, string exportName = null, object[] args = null, CancellationToken cancellationToken = default) { return StaticNodeJSService.InvokeFromStreamAsync(moduleFactory, cacheIdentifier, exportName, args, cancellationToken); } public Task<(bool, T)> TryInvokeFromCacheAsync(string moduleCacheIdentifier, string exportName = null, object[] args = null, CancellationToken cancellationToken = default) { return StaticNodeJSService.TryInvokeFromCacheAsync(moduleCacheIdentifier, exportName, args, cancellationToken); } public Task TryInvokeFromCacheAsync(string moduleCacheIdentifier, string exportName = null, object[] args = null, CancellationToken cancellationToken = default) { return StaticNodeJSService.TryInvokeFromCacheAsync(moduleCacheIdentifier, exportName, args, cancellationToken); } public ValueTask MoveToNewProcessAsync() { throw new NotSupportedException(); } #region IDisposable implementation public void Dispose() { throw new NotSupportedException(); } #endregion #endregion } }