Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export default function createReduxApp(config: any) {
const maxAge = Math.floor(config.offload.cache.maxAge / 1000);
/*
* 全リクエストで共有される初期データのためのStoreです。
*/
const initialStore = createStore({} as any, {
fetchr: new Fetchr({ ...config.fetchr, req: {} }),
// @ts-ignore
history: createMemoryHistory("/"),
logger,
});
return reduxApp;
/*
* サーバサイドレンダリングのためのExpressミドルウェアです。
*/
function reduxApp(
req: Request & { csrfToken: any; useragent: ExpressUseragent.UserAgent },
res: Response & { startTime: Function; endTime: Function },
next: Function,
): void {
// @ts-ignore
function reduxApp(
req: Request & { csrfToken: any; useragent: ExpressUseragent.UserAgent },
res: Response & { startTime: Function; endTime: Function },
next: Function,
): void {
// @ts-ignore
const memoryHistory = createMemoryHistory(req.url);
const timing = res;
/*
* リクエスト毎のStoreです。
* 共有の初期ストアのステートを初期ステートとして使用します。
*/
const store = createStore(initialStore.getState(), {
fetchr: new Fetchr({ ...config.fetchr, req }),
history: memoryHistory,
logger,
});
const history = syncHistoryWithStore(memoryHistory, store);
const clientConfig = getClientConfig(config, req);
if (__DISABLE_SSR__) {
return void renderCSR({
res,
store,
config,
clientConfig,
timing,
});
}
export function createStore(options: any) {
const history = createMemoryHistory(options.historyRoute || "/");
const initialState = options.initialState || {};
const store = (create as any)(
reducer,
initialState,
(applyMiddleware as any)(
...[
steps,
authMiddleware(),
fetchr(new Fetchr({ ...configs.fetchr, req: {} })),
options.upload &&
uploader({
baseURL: `http://localhost:${options.upload.port}/`,
csrfToken: null,
}),
routerMiddleware(history),
].filter(Boolean),
),
);
return store;
}
function reduxApp(req, res, next) {
const memoryHistory = createMemoryHistory(req.url);
const timing = __DEVELOPMENT__ ? res : { startTime: noop, endTime: noop };
/*
* リクエスト毎のStoreです。
* 共有の初期ストアのステートを初期ステートとして使用します。
*/
const store = createStore(initialStore.getState(), {
cookie: [req, res],
fetchr: new Fetchr({ ...config.fetchr, req }),
history: memoryHistory,
logger
});
const history = syncHistoryWithStore(memoryHistory, store);
const clientConfig = getClientConfig(config, req);
if (__DISABLE_SSR__) {
return void renderCSR({ res, store, config, clientConfig, timing });
}
/*
* 高負荷時にSSRをスキップするモードです。
* オフロードモードをサポートしない場合は ./offloadDetector.js と一緒に削除してください。
*/
if (__ENABLE_OFFLOAD__) {
debug("offload mode, disable server-side rendering");
function configStore() {
const getJson = (id) => JSON.parse(document.getElementById(id).getAttribute('data-json'));
const initialState = getJson('initial-state');
const clientConfig = getJson('client-config');
return createStore(initialState, {
cookie: [],
fetchr: new Fetchr(clientConfig.fetchr),
fetchrCache: clientConfig.fetchrCache,
history: browserHistory,
devTools: __DEVELOPMENT__,
});
}
export default function createReduxApp(config) {
const maxAge = Math.floor(config.offload.cache.maxAge / 1000);
const cssChunks = __DEVELOPMENT__ ? null : loadCssChunks(config);
/*
* 全リクエストで共有される初期データのためのStoreです。
*/
const initialStore = createStore(
{},
{
cookie: [{ cookies: {} }, {}],
fetchr: new Fetchr({ ...config.fetchr, req: {} }),
history: createMemoryHistory("/"),
logger
}
);
return reduxApp;
/*
* サーバサイドレンダリングのためのExpressミドルウェアです。
*/
function reduxApp(req, res, next) {
const memoryHistory = createMemoryHistory(req.url);
const timing = __DEVELOPMENT__ ? res : { startTime: noop, endTime: noop };
/*
* リクエスト毎のStoreです。
function configStore() {
const getJson = (id: string) =>
JSON.parse((document.getElementById(id) as any).getAttribute("data-json"));
const initialState = getJson("initial-state");
const clientConfig = getJson("client-config");
return createStore(initialState, {
csrfToken: clientConfig.csrfToken,
fetchr: new Fetchr(clientConfig.fetchr),
fetchrCache: clientConfig.fetchrCache,
history: browserHistory,
devTools: isDevToolVisible,
mockBuild: __MOCK_BUILD__ ? clientConfig.mockBuild : false,
});
}
export default function servicesCreator(options) {
const services = new Fetchr(options);
function readService$({ service: resource, params, config }) {
return Observable.create(observer => {
services.read(
resource,
params,
config,
callbackObserver(observer)
);
return Disposable.create(() => observer.dispose());
});
}
function createService$({ service: resource, params, body, config }) {
return Observable.create(observer => {
services.create(
resource,
params,
export default function servicesCreator(options) {
const services = new Fetchr(options);
return {
readService$({ service: resource, params = {} }) {
return Observable.create(observer =>
services
.read(resource)
.params(params)
.end(callbackObserver(observer))
);
}
};
}