forked from reactjs/React.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIReactSiteConfiguration.cs
More file actions
146 lines (131 loc) · 5.04 KB
/
IReactSiteConfiguration.cs
File metadata and controls
146 lines (131 loc) · 5.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/*
* Copyright (c) 2014-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
using Newtonsoft.Json;
using System.Collections.Generic;
namespace React
{
/// <summary>
/// Site-wide configuration for ReactJS.NET
/// </summary>
public interface IReactSiteConfiguration
{
/// <summary>
/// Adds a script to the list of scripts that are executed. This should be called for all
/// React components and their dependencies. If the script does not have any JSX in it
/// (for example, it's built using Webpack or Gulp), use
/// <see cref="AddScriptWithoutTransform"/> instead.
/// </summary>
/// <param name="filename">
/// Name of the file to execute. Should be a server relative path starting with ~ (eg.
/// <c>~/Scripts/Awesome.js</c>)
/// </param>
/// <returns>This configuration, for chaining</returns>
IReactSiteConfiguration AddScript(string filename);
/// <summary>
/// Adds a script to the list of scripts that are executed. This is the same as
/// <see cref="AddScript"/> except it does not run JSX transformation on the script and thus is
/// more efficient.
/// </summary>
/// <param name="filename">
/// Name of the file to execute. Should be a server relative path starting with ~ (eg.
/// <c>~/Scripts/Awesome.js</c>)
/// </param>
/// <returns>The configuration, for chaining</returns>
IReactSiteConfiguration AddScriptWithoutTransform(string filename);
/// <summary>
/// Gets a list of all the scripts that have been added to this configuration and require JSX
/// transformation to be run.
/// </summary>
IEnumerable<string> Scripts { get; }
/// <summary>
/// Gets a list of all the scripts that have been added to this configuration and do not
/// require JSX transformation to be run.
/// </summary>
IEnumerable<string> ScriptsWithoutTransform { get; }
/// <summary>
/// A value indicating if es6 syntax should be rewritten.
/// </summary>
/// <returns><c>true</c> if support for es6 syntax should be rewritten.</returns>
bool UseHarmony { get; set; }
/// <summary>
/// Specifies whether ES6 (harmony) syntax should be transformed
/// </summary>
IReactSiteConfiguration SetUseHarmony(bool useHarmony);
/// <summary>
/// Gets or sets whether JavaScript engines should be reused across requests.
/// </summary>
///
bool ReuseJavaScriptEngines { get; set; }
/// <summary>
/// Sets whether JavaScript engines should be reused across requests.
/// </summary>
IReactSiteConfiguration SetReuseJavaScriptEngines(bool value);
/// <summary>
/// Gets or sets the configuration for JSON serializer.
/// </summary>
JsonSerializerSettings JsonSerializerSettings { get; set; }
/// <summary>
/// Sets the configuration for json serializer.
/// </summary>
/// <remarks>
/// This confiquration is used when component initialization script
/// is being generated server-side.
/// </remarks>
/// <param name="settings">The settings.</param>
IReactSiteConfiguration SetJsonSerializerSettings(JsonSerializerSettings settings);
/// <summary>
/// Gets or sets whether Flow types should be stripped out.
/// </summary>
bool StripTypes { get; set; }
/// <summary>
/// Sets whether Flow types should be stripped out.
/// </summary>
IReactSiteConfiguration SetStripTypes(bool stripTypes);
/// <summary>
/// Gets or sets the number of engines to initially start when a pool is created.
/// Defaults to <c>10</c>.
/// </summary>
int? StartEngines { get; set; }
/// <summary>
/// Sets the number of engines to initially start when a pool is created.
/// Defaults to <c>10</c>.
/// </summary>
IReactSiteConfiguration SetStartEngines(int? startEngines);
/// <summary>
/// Gets or sets the maximum number of engines that will be created in the pool.
/// Defaults to <c>25</c>.
/// </summary>
int? MaxEngines { get; set; }
/// <summary>
/// Sets the maximum number of engines that will be created in the pool.
/// Defaults to <c>25</c>.
/// </summary>
IReactSiteConfiguration SetMaxEngines(int? maxEngines);
/// <summary>
/// Gets or sets whether the MSIE engine should be used if V8 is unavailable.
/// </summary>
bool AllowMsieEngine { get; set; }
/// <summary>
/// Sets whether the MSIE engine should be used if V8 is unavailable.
/// </summary>
/// <returns></returns>
IReactSiteConfiguration SetAllowMsieEngine(bool allowMsieEngine);
/// <summary>
/// Gets or sets whether the built-in version of React is loaded. If <c>false</c>, you must
/// provide your own version of React.
/// </summary>
bool LoadReact { get; set; }
/// <summary>
/// Sets whether the built-in version of React is loaded. If <c>false</c>, you must
/// provide your own version of React.
/// </summary>
/// <returns>The configuration, for chaining</returns>
IReactSiteConfiguration SetLoadReact(bool loadReact);
}
}