public ModuleParser(ISourceCodeProvider codePaneSourceCodeProvider, ISourceCodeProvider attributesSourceCodeProvider, IStringParser parser, IModuleRewriterFactory moduleRewriterFactory) { _moduleRewriterFactory = moduleRewriterFactory; _codePaneSourceCodeProvider = codePaneSourceCodeProvider; _attributesSourceCodeProvider = attributesSourceCodeProvider; _parser = parser; }
public FunctionMapStore(ISourceCodeProvider sourceCodeProvider, Func <string, SourceMap> sourceMapGetter) { _functionMapGenerator = new FunctionMapGenerator(); _functionMapCache = new KeyValueCache <string, IReadOnlyList <FunctionMapEntry> >(sourceCodeUrl => _functionMapGenerator.GenerateFunctionMap( sourceCodeProvider.GetSourceCode(sourceCodeUrl), sourceMapGetter(sourceCodeUrl))); }
public ModuleParser(ISourceCodeProvider codePaneSourceCodeProvider, ISourceCodeProvider attributesSourceCodeProvider, IStringParser parser, IAnnotationFactory annotationFactory) { _codePaneSourceCodeProvider = codePaneSourceCodeProvider; _attributesSourceCodeProvider = attributesSourceCodeProvider; _parser = parser; _annotationFactory = annotationFactory; }
private StackTraceDeminifier GetStackTraceDeminifierWithDependencies() { ISourceMapProvider sourceMapProvider = MockRepository.GenerateStrictMock <ISourceMapProvider>(); sourceMapProvider.Stub(x => x.GetSourceMapContentsForCallstackUrl("http://localhost:11323/crashcauser.min.js")).Return(UnitTestUtils.StreamReaderFromString(SourceMapString)); ISourceCodeProvider sourceCodeProvider = MockRepository.GenerateStrictMock <ISourceCodeProvider>(); sourceCodeProvider.Stub(x => x.GetSourceCode("http://localhost:11323/crashcauser.min.js")).Return(UnitTestUtils.StreamReaderFromString(GeneratedCodeString)); return(StackTraceDeminfierFactory.GetMapOnlyStackTraceDeminfier(sourceMapProvider)); }
private static void ValidateArguments(ISourceMapProvider sourceMapProvider, ISourceCodeProvider generatedCodeProvider) { if (sourceMapProvider == null) { throw new ArgumentNullException(nameof(sourceMapProvider)); } if (generatedCodeProvider == null) { throw new ArgumentNullException(nameof(generatedCodeProvider)); } }
public IEnumerable <ConsumerResult <TResultPayload> > Generate <TResultPayload>(ISourceCodeProvider dataProvider, IConsumer <TResultPayload> consumer) { if (dataProvider == null) { throw new ArgumentNullException("dataProvider"); } if (consumer == null) { throw new ArgumentNullException("consumer"); } var linkOptions = new DataflowLinkOptions { PropagateCompletion = true }; var processingTaskRestriction = new ExecutionDataflowBlockOptions { MaxDegreeOfParallelism = _testsGeneratorRestrictions.MaxProcessingTasksCount }; var outputTaskRestriction = new ExecutionDataflowBlockOptions { MaxDegreeOfParallelism = _testsGeneratorRestrictions.MaxWritingTasksCount }; var producerBuffer = new TransformBlock <string, TestClassInMemoryInfo>(new Func <string, TestClassInMemoryInfo>(Produce), processingTaskRestriction); var generatedTestsBuffer = new TransformBlock <TestClassInMemoryInfo, ConsumerResult <TResultPayload> >( new Func <TestClassInMemoryInfo, ConsumerResult <TResultPayload> >(consumer.Consume), outputTaskRestriction); producerBuffer.LinkTo(generatedTestsBuffer, linkOptions); _additionalProducerBuffer.LinkTo(generatedTestsBuffer, linkOptions); var consumerResults = Task.Run(async delegate { List <ConsumerResult <TResultPayload> > consumerResultsBuffer = new List <ConsumerResult <TResultPayload> >(); while (await generatedTestsBuffer.OutputAvailableAsync()) { consumerResultsBuffer.Add(generatedTestsBuffer.Receive()); } return(consumerResultsBuffer); }); Parallel.ForEach(dataProvider.Provide(), async dataInMemory => { await producerBuffer.SendAsync(dataInMemory); }); producerBuffer.Complete(); consumerResults.Wait(); return(consumerResults.Result); }
public ModuleParser(ISourceCodeProvider codePaneSourceCodeProvider, ISourceCodeProvider attributesSourceCodeProvider, IStringParser parser) { _codePaneSourceCodeProvider = codePaneSourceCodeProvider; _attributesSourceCodeProvider = attributesSourceCodeProvider; _parser = parser; }
/// <summary> /// Creates a StackTraceDeminifier that only deminifies the method names. StackTrace deminifiers created with this method will use significantly less memory during runtime than the /// </summary> /// <param name="sourceMapProvider">Consumers of the API should implement this interface, which provides the source map for a given JavaScript file. Throws ArgumentNullException if the parameter is set to null.</param> /// <param name="generatedCodeProvider">Consumers of the API should implement this interface, which provides the contents of a JavaScript file. Throws ArgumentNullException if the parameter is set to null.</param> public static StackTraceDeminifier GetMethodNameOnlyStackTraceDeminfier(ISourceMapProvider sourceMapProvider, ISourceCodeProvider generatedCodeProvider) { return(GetMethodNameOnlyStackTraceDeminfier(sourceMapProvider, generatedCodeProvider, new StackTraceParser())); }
/// <summary> /// Creates a StackTraceDeminifier with full capabilities. StackTrace deminifiers created with this method will keep source maps cached, and thus use significantly more memory during runtime than the ones generated with GetMethodNameOnlyStackTraceDeminfier. /// </summary> /// <param name="sourceMapProvider">Consumers of the API should implement this interface, which provides the source map for a given JavaScript file. Throws ArgumentNullException if the parameter is set to null.</param> /// <param name="generatedCodeProvider">Consumers of the API should implement this interface, which provides the contents of a JavaScript file. Throws ArgumentNullException if the parameter is set to null.</param> /// <param name="stackTraceParser">Consumers of the API should implement this interface, which provides a parser for the stacktrace. Throws ArgumentNullException if the parameter is set to null.</param> public static StackTraceDeminifier GetStackTraceDeminfier(ISourceMapProvider sourceMapProvider, ISourceCodeProvider generatedCodeProvider, IStackTraceParser stackTraceParser) { ValidateArguments(sourceMapProvider, generatedCodeProvider, stackTraceParser); ISourceMapStore sourceMapStore = new SourceMapStore(sourceMapProvider); IStackFrameDeminifier stackFrameDeminifier = new StackFrameDeminifier(sourceMapStore, new FunctionMapStore(generatedCodeProvider, sourceMapStore.GetSourceMapForUrl), new FunctionMapConsumer()); return(new StackTraceDeminifier(stackFrameDeminifier, stackTraceParser)); }
/// <summary> /// Creates a StackTraceDeminifier that only deminifies the method names. StackTrace deminifiers created with this method will use significantly less memory during runtime than the /// </summary> /// <param name="sourceMapProvider">Consumers of the API should implement this interface, which provides the source map for a given JavaScript file. Throws ArgumentNullException if the parameter is set to null.</param> /// <param name="generatedCodeProvider">Consumers of the API should implement this interface, which provides the contents of a JavaScript file. Throws ArgumentNullException if the parameter is set to null.</param> /// <param name="stackTraceParser">Consumers of the API should implement this interface, which provides a parser for the stacktrace. Throws ArgumentNullException if the parameter is set to null.</param> public static StackTraceDeminifier GetMethodNameOnlyStackTraceDeminfier(ISourceMapProvider sourceMapProvider, ISourceCodeProvider generatedCodeProvider, IStackTraceParser stackTraceParser) { ValidateArguments(sourceMapProvider, generatedCodeProvider, stackTraceParser); SourceMapParser sourceMapParser = new SourceMapParser(); IStackFrameDeminifier stackFrameDeminifier = new MethodNameStackFrameDeminifier(new FunctionMapStore(generatedCodeProvider, (url) => sourceMapParser.ParseSourceMap(sourceMapProvider.GetSourceMapContentsForCallstackUrl(url))), new FunctionMapConsumer()); return(new StackTraceDeminifier(stackFrameDeminifier, stackTraceParser)); }
public SequencePointExtrator(ISourceCodeProvider sourceCodeProvider) { this.sourceCodeProvider = sourceCodeProvider; }