Skip to content

Commit 7d7a2a8

Browse files
committed
implement caching in /types/js
1 parent c9f19c0 commit 7d7a2a8

3 files changed

Lines changed: 21 additions & 10 deletions

File tree

src/ServiceStack/NativeTypes/NativeTypesService.cs

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,10 @@ public class TypesPython : NativeTypesBase { }
7171

7272
[ExcludeMetadata]
7373
[Route("/types/js")]
74-
public class TypesCommonJs : NativeTypesBase { }
74+
public class TypesCommonJs : NativeTypesBase
75+
{
76+
public bool? Cache { get; set; }
77+
}
7578

7679
public class NativeTypesBase
7780
{
@@ -239,15 +242,23 @@ public string GenerateTypeScript(NativeTypesBase request, MetadataTypesConfig ty
239242
[AddHeader(ContentType = MimeTypes.PlainText)]
240243
public object Any(TypesCommonJs request)
241244
{
242-
request.BaseUrl = GetBaseUrl(request.BaseUrl);
245+
string Generate()
246+
{
247+
request.BaseUrl = GetBaseUrl(request.BaseUrl);
243248

244-
var typesConfig = NativeTypesMetadata.GetConfig(request);
245-
typesConfig.MakePropertiesOptional = request.MakePropertiesOptional ?? false;
246-
typesConfig.ExportAsTypes = true;
249+
var typesConfig = NativeTypesMetadata.GetConfig(request);
250+
typesConfig.MakePropertiesOptional = request.MakePropertiesOptional ?? false;
251+
typesConfig.ExportAsTypes = true;
247252

248-
var metadataTypes = ResolveMetadataTypes(typesConfig);
249-
var typeScript = new CommonJsGenerator(typesConfig).GetCode(metadataTypes, base.Request, NativeTypesMetadata);
250-
return typeScript;
253+
var metadataTypes = ResolveMetadataTypes(typesConfig);
254+
var typeScript = new CommonJsGenerator(typesConfig).GetCode(metadataTypes, base.Request, NativeTypesMetadata);
255+
return typeScript;
256+
}
257+
258+
if (request.Cache == true && !HostContext.DebugMode)
259+
return Request.ToOptimizedResultUsingCache(LocalCache, cacheKey:Request.AbsoluteUri, Generate);
260+
261+
return Generate();
251262
}
252263

253264
[AddHeader(ContentType = MimeTypes.PlainText)]

src/ServiceStack/modules/admin-ui/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ <h1 class="text-2xl font-semibold text-gray-900">{{store.link.label}}</h1>
5757
</div>
5858
<script src="../js/require.js?vfx=hash"></script>
5959
<script src="../js/servicestack-client.js?vfx=hash"></script>
60-
<script src="../types/js"></script>
60+
<script src="../types/js?cache=true&vfx=hash"></script>
6161
<script>
6262
Object.assign(window, exports) //import
6363
/*shared/js:core */

src/ServiceStack/modules/ui/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
</div>
5757
<script src="../js/require.js?vfx=hash"></script>
5858
<script src="../js/servicestack-client.js?vfx=hash"></script>
59-
<script src="../types/js?vfx=hash"></script>
59+
<script src="../types/js?cache=true&vfx=hash"></script>
6060
<script>
6161
Object.assign(window, exports)
6262
/*shared/js:core */

0 commit comments

Comments
 (0)