mirror of
https://github.com/aspnet/JavaScriptServices.git
synced 2025-12-23 10:08:57 +00:00
Compare commits
3 Commits
2.2.0-prev
...
v1.0.x
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bd42deef7e | ||
|
|
939e0aeee0 | ||
|
|
28b8136fa6 |
@@ -71,7 +71,8 @@
|
|||||||
// a certain flag is attached to the function instance.
|
// a certain flag is attached to the function instance.
|
||||||
function renderToStringImpl(callback, applicationBasePath, bootModule, absoluteRequestUrl, requestPathAndQuery, customDataParameter, overrideTimeoutMilliseconds) {
|
function renderToStringImpl(callback, applicationBasePath, bootModule, absoluteRequestUrl, requestPathAndQuery, customDataParameter, overrideTimeoutMilliseconds) {
|
||||||
try {
|
try {
|
||||||
var renderToStringFunc = findRenderToStringFunc(applicationBasePath, bootModule);
|
var forceLegacy = isLegacyAspNetPrerendering();
|
||||||
|
var renderToStringFunc = !forceLegacy && findRenderToStringFunc(applicationBasePath, bootModule);
|
||||||
var isNotLegacyMode = renderToStringFunc && renderToStringFunc['isServerRenderer'];
|
var isNotLegacyMode = renderToStringFunc && renderToStringFunc['isServerRenderer'];
|
||||||
if (isNotLegacyMode) {
|
if (isNotLegacyMode) {
|
||||||
// Current (non-legacy) mode - we invoke the exported function directly (instead of going through aspnet-prerendering)
|
// Current (non-legacy) mode - we invoke the exported function directly (instead of going through aspnet-prerendering)
|
||||||
@@ -81,9 +82,9 @@
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Legacy mode - just hand off execution to 'aspnet-prerendering' v1.x, which must exist in node_modules at runtime
|
// Legacy mode - just hand off execution to 'aspnet-prerendering' v1.x, which must exist in node_modules at runtime
|
||||||
renderToStringFunc = __webpack_require__(3).renderToString;
|
var aspNetPrerenderingV1RenderToString = __webpack_require__(3).renderToString;
|
||||||
if (renderToStringFunc) {
|
if (aspNetPrerenderingV1RenderToString) {
|
||||||
renderToStringFunc(callback, applicationBasePath, bootModule, absoluteRequestUrl, requestPathAndQuery, customDataParameter, overrideTimeoutMilliseconds);
|
aspNetPrerenderingV1RenderToString(callback, applicationBasePath, bootModule, absoluteRequestUrl, requestPathAndQuery, customDataParameter, overrideTimeoutMilliseconds);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
callback('If you use aspnet-prerendering >= 2.0.0, you must update your server-side boot module to call createServerRenderer. '
|
callback('If you use aspnet-prerendering >= 2.0.0, you must update your server-side boot module to call createServerRenderer. '
|
||||||
@@ -141,6 +142,24 @@
|
|||||||
}
|
}
|
||||||
return renderToStringFunc;
|
return renderToStringFunc;
|
||||||
}
|
}
|
||||||
|
function isLegacyAspNetPrerendering() {
|
||||||
|
var version = getAspNetPrerenderingPackageVersion();
|
||||||
|
return version && /^1\./.test(version);
|
||||||
|
}
|
||||||
|
function getAspNetPrerenderingPackageVersion() {
|
||||||
|
try {
|
||||||
|
var packageEntryPoint = require.resolve('aspnet-prerendering');
|
||||||
|
var packageDir = path.dirname(packageEntryPoint);
|
||||||
|
var packageJsonPath = path.join(packageDir, 'package.json');
|
||||||
|
var packageJson = require(packageJsonPath);
|
||||||
|
return packageJson.version.toString();
|
||||||
|
}
|
||||||
|
catch (ex) {
|
||||||
|
// Implies aspnet-prerendering isn't in node_modules at all (or node_modules itself doesn't exist,
|
||||||
|
// which will be the case in production based on latest templates).
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***/ },
|
/***/ },
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
/// <reference path="../npm/aspnet-prerendering/src/PrerenderingInterfaces.d.ts" />
|
/// <reference path="../npm/aspnet-prerendering/src/PrerenderingInterfaces.d.ts" />
|
||||||
import * as url from 'url';
|
import * as url from 'url';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
|
import * as fs from 'fs';
|
||||||
declare var __non_webpack_require__;
|
declare var __non_webpack_require__;
|
||||||
|
|
||||||
// Separate declaration and export just to add type checking on function signature
|
// Separate declaration and export just to add type checking on function signature
|
||||||
@@ -22,7 +23,8 @@ export const renderToString: RenderToStringFunc = renderToStringImpl;
|
|||||||
// a certain flag is attached to the function instance.
|
// a certain flag is attached to the function instance.
|
||||||
function renderToStringImpl(callback: RenderToStringCallback, applicationBasePath: string, bootModule: BootModuleInfo, absoluteRequestUrl: string, requestPathAndQuery: string, customDataParameter: any, overrideTimeoutMilliseconds: number) {
|
function renderToStringImpl(callback: RenderToStringCallback, applicationBasePath: string, bootModule: BootModuleInfo, absoluteRequestUrl: string, requestPathAndQuery: string, customDataParameter: any, overrideTimeoutMilliseconds: number) {
|
||||||
try {
|
try {
|
||||||
let renderToStringFunc = findRenderToStringFunc(applicationBasePath, bootModule);
|
const forceLegacy = isLegacyAspNetPrerendering();
|
||||||
|
const renderToStringFunc = !forceLegacy && findRenderToStringFunc(applicationBasePath, bootModule);
|
||||||
const isNotLegacyMode = renderToStringFunc && renderToStringFunc['isServerRenderer'];
|
const isNotLegacyMode = renderToStringFunc && renderToStringFunc['isServerRenderer'];
|
||||||
|
|
||||||
if (isNotLegacyMode) {
|
if (isNotLegacyMode) {
|
||||||
@@ -32,9 +34,9 @@ function renderToStringImpl(callback: RenderToStringCallback, applicationBasePat
|
|||||||
renderToStringFunc.apply(null, arguments);
|
renderToStringFunc.apply(null, arguments);
|
||||||
} else {
|
} else {
|
||||||
// Legacy mode - just hand off execution to 'aspnet-prerendering' v1.x, which must exist in node_modules at runtime
|
// Legacy mode - just hand off execution to 'aspnet-prerendering' v1.x, which must exist in node_modules at runtime
|
||||||
renderToStringFunc = require('aspnet-prerendering').renderToString;
|
const aspNetPrerenderingV1RenderToString = require('aspnet-prerendering').renderToString;
|
||||||
if (renderToStringFunc) {
|
if (aspNetPrerenderingV1RenderToString) {
|
||||||
renderToStringFunc(callback, applicationBasePath, bootModule, absoluteRequestUrl, requestPathAndQuery, customDataParameter, overrideTimeoutMilliseconds);
|
aspNetPrerenderingV1RenderToString(callback, applicationBasePath, bootModule, absoluteRequestUrl, requestPathAndQuery, customDataParameter, overrideTimeoutMilliseconds);
|
||||||
} else {
|
} else {
|
||||||
callback('If you use aspnet-prerendering >= 2.0.0, you must update your server-side boot module to call createServerRenderer. '
|
callback('If you use aspnet-prerendering >= 2.0.0, you must update your server-side boot module to call createServerRenderer. '
|
||||||
+ 'Either update your boot module code, or revert to aspnet-prerendering version 1.x');
|
+ 'Either update your boot module code, or revert to aspnet-prerendering version 1.x');
|
||||||
@@ -92,3 +94,22 @@ function findRenderToStringFunc(applicationBasePath: string, bootModule: BootMod
|
|||||||
|
|
||||||
return renderToStringFunc;
|
return renderToStringFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isLegacyAspNetPrerendering() {
|
||||||
|
const version = getAspNetPrerenderingPackageVersion();
|
||||||
|
return version && /^1\./.test(version);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getAspNetPrerenderingPackageVersion() {
|
||||||
|
try {
|
||||||
|
const packageEntryPoint = __non_webpack_require__.resolve('aspnet-prerendering');
|
||||||
|
const packageDir = path.dirname(packageEntryPoint);
|
||||||
|
const packageJsonPath = path.join(packageDir, 'package.json');
|
||||||
|
const packageJson = __non_webpack_require__(packageJsonPath);
|
||||||
|
return packageJson.version.toString();
|
||||||
|
} catch(ex) {
|
||||||
|
// Implies aspnet-prerendering isn't in node_modules at all (or node_modules itself doesn't exist,
|
||||||
|
// which will be the case in production based on latest templates).
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export class FetchDataComponent {
|
|||||||
|
|
||||||
constructor(http: Http) {
|
constructor(http: Http) {
|
||||||
http.get('/api/SampleData/WeatherForecasts').subscribe(result => {
|
http.get('/api/SampleData/WeatherForecasts').subscribe(result => {
|
||||||
this.forecasts = result.json();
|
this.forecasts = result.json() as WeatherForecast[];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ export class Fetchdata {
|
|||||||
|
|
||||||
constructor(http: HttpClient) {
|
constructor(http: HttpClient) {
|
||||||
http.fetch('/api/SampleData/WeatherForecasts')
|
http.fetch('/api/SampleData/WeatherForecasts')
|
||||||
.then(result => result.json())
|
.then(result => result.json() as Promise<WeatherForecast[]>)
|
||||||
.then(data => {
|
.then(data => {
|
||||||
this.forecasts = data as any;
|
this.forecasts = data;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ class FetchDataViewModel {
|
|||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
fetch('/api/SampleData/WeatherForecasts')
|
fetch('/api/SampleData/WeatherForecasts')
|
||||||
.then(response => response.json())
|
.then(response => response.json() as Promise<WeatherForecast[]>)
|
||||||
.then((data: WeatherForecast[]) => {
|
.then(data => {
|
||||||
this.forecasts(data);
|
this.forecasts(data);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,8 +46,8 @@ export const actionCreators = {
|
|||||||
// Only load data if it's something we don't already have (and are not already loading)
|
// Only load data if it's something we don't already have (and are not already loading)
|
||||||
if (startDateIndex !== getState().weatherForecasts.startDateIndex) {
|
if (startDateIndex !== getState().weatherForecasts.startDateIndex) {
|
||||||
let fetchTask = fetch(`/api/SampleData/WeatherForecasts?startDateIndex=${ startDateIndex }`)
|
let fetchTask = fetch(`/api/SampleData/WeatherForecasts?startDateIndex=${ startDateIndex }`)
|
||||||
.then(response => response.json())
|
.then(response => response.json() as Promise<WeatherForecast[]>)
|
||||||
.then((data: WeatherForecast[]) => {
|
.then(data => {
|
||||||
dispatch({ type: 'RECEIVE_WEATHER_FORECASTS', startDateIndex: startDateIndex, forecasts: data });
|
dispatch({ type: 'RECEIVE_WEATHER_FORECASTS', startDateIndex: startDateIndex, forecasts: data });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ export class FetchData extends React.Component<any, FetchDataExampleState> {
|
|||||||
this.state = { forecasts: [], loading: true };
|
this.state = { forecasts: [], loading: true };
|
||||||
|
|
||||||
fetch('/api/SampleData/WeatherForecasts')
|
fetch('/api/SampleData/WeatherForecasts')
|
||||||
.then(response => response.json())
|
.then(response => response.json() as Promise<WeatherForecast[]>)
|
||||||
.then((data: WeatherForecast[]) => {
|
.then(data => {
|
||||||
this.setState({ forecasts: data, loading: false });
|
this.setState({ forecasts: data, loading: false });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "generator-aspnetcore-spa",
|
"name": "generator-aspnetcore-spa",
|
||||||
"version": "0.6.1",
|
"version": "0.6.2",
|
||||||
"description": "Single-Page App templates for ASP.NET Core",
|
"description": "Single-Page App templates for ASP.NET Core",
|
||||||
"author": "Microsoft",
|
"author": "Microsoft",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
|
|||||||
Reference in New Issue
Block a user