santi 0.0.0-beta.41 → 0.0.0-beta.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +48 -39
- package/lib/client/index.js +48 -39
- package/lib/client/index.js.map +1 -1
- package/lib/client/index.min.js +1 -1
- package/package.json +2 -2
package/index.d.ts
CHANGED
|
@@ -3,6 +3,44 @@ import hoistStatics from 'hoist-non-react-statics';
|
|
|
3
3
|
import NodeKey from 'react-node-key';
|
|
4
4
|
import ReactDOM from 'react-dom';
|
|
5
5
|
|
|
6
|
+
function ownKeys(object, enumerableOnly) {
|
|
7
|
+
var keys = Object.keys(object);
|
|
8
|
+
|
|
9
|
+
if (Object.getOwnPropertySymbols) {
|
|
10
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
11
|
+
|
|
12
|
+
if (enumerableOnly) {
|
|
13
|
+
symbols = symbols.filter(function (sym) {
|
|
14
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
keys.push.apply(keys, symbols);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return keys;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function _objectSpread2(target) {
|
|
25
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
26
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
27
|
+
|
|
28
|
+
if (i % 2) {
|
|
29
|
+
ownKeys(Object(source), true).forEach(function (key) {
|
|
30
|
+
_defineProperty(target, key, source[key]);
|
|
31
|
+
});
|
|
32
|
+
} else if (Object.getOwnPropertyDescriptors) {
|
|
33
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
34
|
+
} else {
|
|
35
|
+
ownKeys(Object(source)).forEach(function (key) {
|
|
36
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return target;
|
|
42
|
+
}
|
|
43
|
+
|
|
6
44
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
7
45
|
try {
|
|
8
46
|
var info = gen[key](arg);
|
|
@@ -72,40 +110,6 @@ function _extends() {
|
|
|
72
110
|
return _extends.apply(this, arguments);
|
|
73
111
|
}
|
|
74
112
|
|
|
75
|
-
function ownKeys(object, enumerableOnly) {
|
|
76
|
-
var keys = Object.keys(object);
|
|
77
|
-
|
|
78
|
-
if (Object.getOwnPropertySymbols) {
|
|
79
|
-
var symbols = Object.getOwnPropertySymbols(object);
|
|
80
|
-
if (enumerableOnly) symbols = symbols.filter(function (sym) {
|
|
81
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
82
|
-
});
|
|
83
|
-
keys.push.apply(keys, symbols);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return keys;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function _objectSpread2(target) {
|
|
90
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
91
|
-
var source = arguments[i] != null ? arguments[i] : {};
|
|
92
|
-
|
|
93
|
-
if (i % 2) {
|
|
94
|
-
ownKeys(Object(source), true).forEach(function (key) {
|
|
95
|
-
_defineProperty(target, key, source[key]);
|
|
96
|
-
});
|
|
97
|
-
} else if (Object.getOwnPropertyDescriptors) {
|
|
98
|
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
99
|
-
} else {
|
|
100
|
-
ownKeys(Object(source)).forEach(function (key) {
|
|
101
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return target;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
113
|
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
110
114
|
if (source == null) return {};
|
|
111
115
|
var target = {};
|
|
@@ -151,14 +155,17 @@ function _arrayWithHoles(arr) {
|
|
|
151
155
|
}
|
|
152
156
|
|
|
153
157
|
function _iterableToArrayLimit(arr, i) {
|
|
154
|
-
|
|
158
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
159
|
+
|
|
160
|
+
if (_i == null) return;
|
|
155
161
|
var _arr = [];
|
|
156
162
|
var _n = true;
|
|
157
163
|
var _d = false;
|
|
158
|
-
|
|
164
|
+
|
|
165
|
+
var _s, _e;
|
|
159
166
|
|
|
160
167
|
try {
|
|
161
|
-
for (
|
|
168
|
+
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
|
|
162
169
|
_arr.push(_s.value);
|
|
163
170
|
|
|
164
171
|
if (i && _arr.length === i) break;
|
|
@@ -310,6 +317,7 @@ var promiseGuess = function promiseGuess(executor, valuer) {
|
|
|
310
317
|
};
|
|
311
318
|
};
|
|
312
319
|
|
|
320
|
+
var _excluded = ["forwardRef", "__key"];
|
|
313
321
|
var _filehash = "nNBh";
|
|
314
322
|
var context = /*#__PURE__*/createContext();
|
|
315
323
|
var Provider = context.Provider;
|
|
@@ -318,7 +326,7 @@ function withSanti(Component) {
|
|
|
318
326
|
function WrappedComponent(_ref) {
|
|
319
327
|
var forwardRef = _ref.forwardRef,
|
|
320
328
|
nodeKey = _ref.__key,
|
|
321
|
-
props = _objectWithoutProperties(_ref,
|
|
329
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
322
330
|
|
|
323
331
|
var count = 0;
|
|
324
332
|
var contextValue = useMemo(function () {
|
|
@@ -497,6 +505,7 @@ function useState(initialState, key) {
|
|
|
497
505
|
}, nodeKey];
|
|
498
506
|
}
|
|
499
507
|
|
|
508
|
+
var _excluded$1 = ["forwardedRef"];
|
|
500
509
|
var _filehash$1 = "8NS2";
|
|
501
510
|
|
|
502
511
|
var getInitialProps = function getInitialProps(fetch) {
|
|
@@ -505,7 +514,7 @@ var getInitialProps = function getInitialProps(fetch) {
|
|
|
505
514
|
return function (Component) {
|
|
506
515
|
function WrappedComponent(_ref) {
|
|
507
516
|
var forwardedRef = _ref.forwardedRef,
|
|
508
|
-
props = _objectWithoutProperties(_ref,
|
|
517
|
+
props = _objectWithoutProperties(_ref, _excluded$1);
|
|
509
518
|
|
|
510
519
|
var _useState = useState$1(false),
|
|
511
520
|
_useState2 = _slicedToArray(_useState, 2),
|
package/lib/client/index.js
CHANGED
|
@@ -10,6 +10,44 @@ var hoistStatics = _interopDefault(require('hoist-non-react-statics'));
|
|
|
10
10
|
var NodeKey = _interopDefault(require('react-node-key'));
|
|
11
11
|
var ReactDOM = _interopDefault(require('react-dom'));
|
|
12
12
|
|
|
13
|
+
function ownKeys(object, enumerableOnly) {
|
|
14
|
+
var keys = Object.keys(object);
|
|
15
|
+
|
|
16
|
+
if (Object.getOwnPropertySymbols) {
|
|
17
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
18
|
+
|
|
19
|
+
if (enumerableOnly) {
|
|
20
|
+
symbols = symbols.filter(function (sym) {
|
|
21
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
keys.push.apply(keys, symbols);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return keys;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function _objectSpread2(target) {
|
|
32
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
33
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
34
|
+
|
|
35
|
+
if (i % 2) {
|
|
36
|
+
ownKeys(Object(source), true).forEach(function (key) {
|
|
37
|
+
_defineProperty(target, key, source[key]);
|
|
38
|
+
});
|
|
39
|
+
} else if (Object.getOwnPropertyDescriptors) {
|
|
40
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
41
|
+
} else {
|
|
42
|
+
ownKeys(Object(source)).forEach(function (key) {
|
|
43
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return target;
|
|
49
|
+
}
|
|
50
|
+
|
|
13
51
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
14
52
|
try {
|
|
15
53
|
var info = gen[key](arg);
|
|
@@ -79,40 +117,6 @@ function _extends() {
|
|
|
79
117
|
return _extends.apply(this, arguments);
|
|
80
118
|
}
|
|
81
119
|
|
|
82
|
-
function ownKeys(object, enumerableOnly) {
|
|
83
|
-
var keys = Object.keys(object);
|
|
84
|
-
|
|
85
|
-
if (Object.getOwnPropertySymbols) {
|
|
86
|
-
var symbols = Object.getOwnPropertySymbols(object);
|
|
87
|
-
if (enumerableOnly) symbols = symbols.filter(function (sym) {
|
|
88
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
89
|
-
});
|
|
90
|
-
keys.push.apply(keys, symbols);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return keys;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
function _objectSpread2(target) {
|
|
97
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
98
|
-
var source = arguments[i] != null ? arguments[i] : {};
|
|
99
|
-
|
|
100
|
-
if (i % 2) {
|
|
101
|
-
ownKeys(Object(source), true).forEach(function (key) {
|
|
102
|
-
_defineProperty(target, key, source[key]);
|
|
103
|
-
});
|
|
104
|
-
} else if (Object.getOwnPropertyDescriptors) {
|
|
105
|
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
106
|
-
} else {
|
|
107
|
-
ownKeys(Object(source)).forEach(function (key) {
|
|
108
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return target;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
120
|
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
117
121
|
if (source == null) return {};
|
|
118
122
|
var target = {};
|
|
@@ -158,14 +162,17 @@ function _arrayWithHoles(arr) {
|
|
|
158
162
|
}
|
|
159
163
|
|
|
160
164
|
function _iterableToArrayLimit(arr, i) {
|
|
161
|
-
|
|
165
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
166
|
+
|
|
167
|
+
if (_i == null) return;
|
|
162
168
|
var _arr = [];
|
|
163
169
|
var _n = true;
|
|
164
170
|
var _d = false;
|
|
165
|
-
|
|
171
|
+
|
|
172
|
+
var _s, _e;
|
|
166
173
|
|
|
167
174
|
try {
|
|
168
|
-
for (
|
|
175
|
+
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
|
|
169
176
|
_arr.push(_s.value);
|
|
170
177
|
|
|
171
178
|
if (i && _arr.length === i) break;
|
|
@@ -317,6 +324,7 @@ var promiseGuess = function promiseGuess(executor, valuer) {
|
|
|
317
324
|
};
|
|
318
325
|
};
|
|
319
326
|
|
|
327
|
+
var _excluded = ["forwardRef", "__key"];
|
|
320
328
|
var _filehash = "nNBh";
|
|
321
329
|
var context = /*#__PURE__*/React.createContext();
|
|
322
330
|
var Provider = context.Provider;
|
|
@@ -325,7 +333,7 @@ function withSanti(Component) {
|
|
|
325
333
|
function WrappedComponent(_ref) {
|
|
326
334
|
var forwardRef = _ref.forwardRef,
|
|
327
335
|
nodeKey = _ref.__key,
|
|
328
|
-
props = _objectWithoutProperties(_ref,
|
|
336
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
329
337
|
|
|
330
338
|
var count = 0;
|
|
331
339
|
var contextValue = React.useMemo(function () {
|
|
@@ -504,6 +512,7 @@ function useState(initialState, key) {
|
|
|
504
512
|
}, nodeKey];
|
|
505
513
|
}
|
|
506
514
|
|
|
515
|
+
var _excluded$1 = ["forwardedRef"];
|
|
507
516
|
var _filehash$1 = "8NS2";
|
|
508
517
|
|
|
509
518
|
var getInitialProps = function getInitialProps(fetch) {
|
|
@@ -512,7 +521,7 @@ var getInitialProps = function getInitialProps(fetch) {
|
|
|
512
521
|
return function (Component) {
|
|
513
522
|
function WrappedComponent(_ref) {
|
|
514
523
|
var forwardedRef = _ref.forwardedRef,
|
|
515
|
-
props = _objectWithoutProperties(_ref,
|
|
524
|
+
props = _objectWithoutProperties(_ref, _excluded$1);
|
|
516
525
|
|
|
517
526
|
var _useState = React.useState(false),
|
|
518
527
|
_useState2 = _slicedToArray(_useState, 2),
|
package/lib/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../client/helpers/base/is/index.js","../../client/helpers/base/try/index.js","../../client/helpers/utils.js","../../client/withSanti.js","../../client/store.js","../../client/useState.js","../../client/getInitialProps.js","../../client/ready.js","../../client/components/Container/index.js","../../client/render.js","../../client/components/Ready/index.js","../../client/components/NoSSR/index.js","../../client/index.js"],"sourcesContent":["// 值类型判断 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\nexport const isUndefined = val => typeof val === 'undefined'\n\nexport const isNull = val => val === null\n\nexport const isFunction = val => typeof val === 'function'\n\nexport const isArray = val =>\n isFunction(Array.isArray) ? Array.isArray(val) : val instanceof Array\n\nexport const isRegExp = val => val instanceof RegExp\n\nexport const isObject = val =>\n typeof val === 'object' && !(isArray(val) || isNull(val))\n\nexport const isBoolean = val => typeof val === 'boolean'\n\nexport const isString = val => typeof val === 'string'\n\nexport const isExist = val => !(isUndefined(val) || isNull(val))\n\nexport const isNaN = val =>\n isFunction(Number.isNaN) ? Number.isNaN(val) : val !== val // eslint-disable-line\n\nexport const isNumber = val => typeof val === 'number' && !isNaN(val)\n\nexport const isPromiseLike = val => isExist(val) && isFunction(val.then)\n// 值类型判断 -------------------------------------------------------------\n","import { isString, isUndefined, isFunction, isNumber } from '../is'\n\nexport const get = (obj, keys = [], defaultValue) => {\n try {\n if (isNumber(keys)) {\n keys = String(keys)\n }\n let result = (isString(keys) ? keys.split('.') : keys).reduce(\n (res, key) => res[key],\n obj\n )\n return isUndefined(result) ? defaultValue : result\n } catch (e) {\n return defaultValue\n }\n}\n\nexport const run = (obj, keys = [], ...args) => {\n keys = isString(keys) ? keys.split('.') : keys\n\n const func = get(obj, keys)\n const context = get(obj, keys.slice(0, -1))\n\n return isFunction(func) ? func.call(context, ...args) : func\n}\n\nexport const value = (...values) =>\n values.reduce(\n (value, nextValue) => (isUndefined(value) ? run(nextValue) : run(value)),\n undefined\n )\n","import { isArray, isPromiseLike } from './base/is'\n\nexport const nextTick = (func) => Promise.resolve().then(func)\n\nexport const delay = (time) =>\n new Promise((resolve) => setTimeout(resolve, time))\n\n/**\n * [防抖]\n * @param {Function} func 执行函数\n * @param {Number} wait 多少毫秒后运行一次\n */\nexport const debounce = (func, wait = 16) => {\n let timeout\n\n return function (...args) {\n clearTimeout(timeout)\n\n timeout = setTimeout(() => {\n func.apply(this, args)\n }, wait)\n\n return timeout\n }\n}\n\n/**\n * [用来智能处理Promise类型返回值]\n * 当值生成过程为 promise 时,将得到 promise 类型返回值,按约定 resolve 最终值\n * 当过程不为 promise 时将直接得到值\n * @param {Function} executor 执行过程获取\n * @param {Function} valuer 值处理过程\n */\nexport const promiseGuess = (executor, valuer) =>\n function (...args) {\n let value = executor.apply(this, args)\n\n return isPromiseLike(value)\n ? new Promise((resolve) =>\n value\n .then((value) => resolve(valuer.call(this, null, value, ...args)))\n .catch((err) => resolve(valuer.call(this, err, undefined, ...args)))\n )\n : valuer.call(this, null, value, ...args)\n }\n\nexport function getKey2Id() {\n let uuid = 0\n const map = new Map()\n\n // 对每种 NodeType 做编号处理\n return function key2Id(key) {\n let id = map.get(key)\n\n if (!id) {\n id = (++uuid).toString(32)\n map.set(key, id)\n }\n\n return id\n }\n}\n\nexport function isBrowser() {\n return !window.__SSR__\n}\n\nexport function isPrerendering() {\n return !!window.__PR__\n}\n","import React, { forwardRef, createContext, useContext, useMemo } from 'react'\nimport hoistStatics from 'hoist-non-react-statics'\nimport NodeKey from 'react-node-key'\n\nconst context = createContext()\nconst { Provider } = context\n\nfunction withSanti(Component) {\n function WrappedComponent({ forwardRef, __key: nodeKey, ...props }) {\n let count = 0\n const contextValue = useMemo(\n () => ({\n nodeKey,\n getCountedKey: () => (nodeKey ? `${nodeKey}:${count++}` : undefined)\n }),\n [nodeKey]\n )\n\n return (\n <Provider value={contextValue}>\n <Component {...props} ref={forwardRef} />\n </Provider>\n )\n }\n\n const ForwardedRefHOC = forwardRef((props, ref) => (\n <NodeKey>\n {nodeKey => (\n <WrappedComponent {...props} forwardedRef={ref} __key={nodeKey} />\n )}\n </NodeKey>\n ))\n\n return hoistStatics(ForwardedRefHOC, WrappedComponent)\n}\n\nexport function useNodeKey() {\n return (\n useContext(context) || {\n nodeKey: undefined,\n getCountedKey: () => undefined\n }\n )\n}\n\nexport function useSID() {\n const { nodeKey: sid, getCountedKey: getCountedSID } = useNodeKey()\n return { sid, getCountedSID }\n}\n\nexport default withSanti\n","import { run, isUndefined, promiseGuess, isExist } from './helpers'\n\nconst KEY = '__SSRDATA__'\n\nfunction inject() {\n let script = document.getElementById(KEY) || document.createElement('script')\n script.id = KEY\n script.innerHTML = `window.${KEY}={};`\n document.head.appendChild(script)\n}\n\nfunction bootstrap() {\n if (window.__SSR__) {\n inject()\n } else {\n if (isExist(document.getElementById(KEY))) {\n window.__SSRED__ = true\n }\n }\n const data = window[KEY] || {}\n\n function remove(key) {\n delete data[key]\n }\n\n function set(key, value) {\n if (!window.__SSR__) {\n return\n }\n data[key] = value\n document.getElementById(KEY).innerHTML = `window.${KEY}=${JSON.stringify(\n data\n )};`\n }\n\n function get(key) {\n let value = data[key]\n remove(key) // 初始值只在 html 就绪后使用一次,使用即销毁\n return value\n }\n\n return { set, get, remove }\n}\n\nconst store = bootstrap()\n\nexport default {\n get: promiseGuess(\n (key, builder) => {\n if (!key && window.__SSR__) {\n // 若无 key 则 SSR 阶段不计算\n return undefined\n }\n\n let value\n\n if (!window.__SSR__) {\n value = store.get(key)\n }\n\n if (isUndefined(value)) {\n value = run(builder)\n }\n\n return value\n },\n (err, value, key) => {\n if (!key) {\n return [null, value]\n }\n\n if (err) {\n store.remove(key)\n return [err, undefined]\n }\n\n if (window.__SSR__) {\n store.set(key, value)\n }\n\n return [null, value]\n }\n ),\n set: store.set\n}\n","import { useState as useReactState } from 'react'\n\nimport { run, debounce } from './helpers'\nimport { useNodeKey } from './withSanti'\nimport store from './store'\n\nconst warningMissingKey = debounce(() => {\n if (window.__SSR__) {\n return\n }\n\n console.warn('You shouldn\\'t use \"santi.useState\" outside a \"withSanti\"')\n}, 32)\n\nfunction useState(initialState, key) {\n const { getCountedKey } = useNodeKey()\n const nodeKey = key || run(getCountedKey)\n const [state, setState] = useReactState(() => {\n if (!nodeKey) {\n warningMissingKey()\n }\n\n const [err, value] = store.get(nodeKey, initialState)\n\n if (err) {\n console.error(err)\n }\n\n return value\n })\n\n return [\n state,\n getNextState => {\n const nextState = run(getNextState, undefined, state)\n\n store.set(nodeKey, nextState)\n\n return setState(nextState)\n },\n nodeKey\n ]\n}\n\nexport default useState\n","import React, { useState, forwardRef, useRef, useEffect } from 'react'\nimport hoistStatics from 'hoist-non-react-statics'\n\nimport { run } from './helpers'\nimport withSanti, { useNodeKey } from './withSanti'\nimport store from './store'\n\nconst getInitialProps = (fetch, fallback = null, key) => Component => {\n function WrappedComponent({ forwardedRef, ...props }) {\n const [ready, setReady] = useState(false)\n const [ssrProps, setSsrProps] = useState({})\n const mounted = useRef(true)\n const { getCountedKey } = useNodeKey()\n const nodeKey = key || run(getCountedKey)\n\n useEffect(() => {\n async function init() {\n const [err, ssrProps] = await store.get(nodeKey, () =>\n run(fetch, undefined, props)\n )\n\n if (err) {\n console.error('[getInitialProps error]', err)\n return\n }\n\n if (mounted.current && ssrProps) {\n setSsrProps(ssrProps)\n setReady(true)\n }\n }\n\n init()\n\n return () => {\n mounted.current = false\n }\n }, [])\n\n return ready ? (\n <Component {...{ ...props, ...ssrProps }} ref={forwardedRef} />\n ) : (\n run(fallback, undefined, props)\n )\n }\n\n const ForwardedRefHOC = forwardRef((props, ref) => (\n <WrappedComponent {...props} forwardedRef={ref} />\n ))\n\n return withSanti(hoistStatics(ForwardedRefHOC, WrappedComponent))\n}\n\nexport default getInitialProps\n","import { delay } from './helpers'\n\nconst ready = async (delayMillisecond = -1) => {\n try {\n if (delayMillisecond && Number(delayMillisecond) >= 0) {\n await delay(delayMillisecond)\n }\n\n if (window.__SSR__ && !window.__SSRREADY__) {\n const script = document.createElement('script')\n script.innerHTML = 'window.__SSRREADY__=true'\n document.head.appendChild(script)\n }\n // ssr 阶段:通知 santi 可以采集页面内容\n // csr 阶段:通知 santi/render 已完成呈现\n document.dispatchEvent(new Event('ssr-ready'))\n } finally {\n // nothing\n }\n}\n\nexport default ready\n","import withSanti from '../../withSanti'\n\nexport default withSanti(({ children }) => children)\n","import React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport Container from './components/Container'\nimport { isFunction } from './helpers'\n\nconst ROOT_KEY = 'ssr-root'\n\nfunction render(content, container, callback) {\n const element = <Container>{content}</Container>\n\n // 支持热加载\n // FIXME: Dev 阶段会导致渲染抖动\n if (module.hot) {\n return ReactDOM.render(element, container, callback)\n }\n\n // ssr 阶段将内容渲染至动态生成的 ssr-root 节点中\n if (window.__SSR__) {\n let ssrRoot = document.getElementById(ROOT_KEY)\n if (!ssrRoot) {\n ssrRoot = document.createElement('div')\n ssrRoot.style.cssText = 'width:100%;height:100%;'\n ssrRoot.id = ROOT_KEY\n document.body.insertBefore(ssrRoot, container)\n }\n\n return ReactDOM.render(element, ssrRoot, callback)\n }\n\n // csr 阶段若为 ssr 渲染结果,则在 csr 完成后替换 ssr 结果\n // 注:不使用水合操作(ReactDOM.hydrate)因为可能造成节点错误问题\n if (window.__SSRED__) {\n const ssrRoot = document.getElementById(ROOT_KEY)\n let renderCallback = callback\n\n container.style.display = 'none'\n container.innerHTML = ssrRoot.innerHTML\n\n function display() {\n // 做一定延时,尽可能保证平滑呈现\n setTimeout(() => {\n const ssrRoot = document.getElementById(ROOT_KEY)\n if (ssrRoot) {\n try {\n ssrRoot.parentNode.removeChild(ssrRoot)\n } finally {\n // nothing\n }\n }\n container.style.display = ''\n }, 56)\n }\n\n // 若为快照 ssr 则 csr 阶段将同样收到 ssr-ready 事件,在此事件后平滑呈现真实可用交互\n if (window.__SSRREADY__) {\n function onReady() {\n display()\n document.removeEventListener('ssr-ready', onReady)\n }\n document.addEventListener('ssr-ready', onReady)\n } else {\n // 若不为快照 ssr(一般为超时自动快照),则在 render 回调结束后呈现真实结果\n renderCallback = function(...args) {\n // FIXME: 超时快照可能造成呈现不平滑,具体表现为 SSR 切到真实内容过程中有轻微空屏现象,通俗为 “闪一下”,此问题待完美修正\n display()\n\n if (isFunction(callback)) {\n callback.apply(this, args)\n }\n }\n }\n\n return ReactDOM.render(element, container, renderCallback)\n }\n\n // csr 若不为 ssr 渲染结果则正常渲染\n return ReactDOM.render(element, container, callback)\n}\n\nexport default render\n","import React, { useState, useEffect } from 'react'\n\nimport ready from '../../ready'\n\nfunction Ready({ children, delay, onMount = false, when = false }) {\n useEffect(() => {\n if (onMount) {\n ready(delay)\n }\n }, [])\n\n useEffect(() => {\n if (when) {\n ready(delay)\n }\n }, [when])\n\n return children\n}\n\nfunction ReadyOnMount({ children, delay }) {\n const [ready, setReady] = useState(false)\n useEffect(() => {\n setReady(true)\n }, [])\n\n return (\n <Ready delay={delay} when={ready}>\n {children}\n </Ready>\n )\n}\n\nReady.OnMount = ReadyOnMount\n\nexport default Ready\n","import { run } from '../../helpers'\n\nfunction NoSSR({ children, fallback = null }) {\n return window.__SSR__ ? run(fallback) : children\n}\n\nexport default NoSSR\n","import useState from './useState'\nimport getInitialProps from './getInitialProps'\nimport ready from './ready'\nimport render from './render'\nimport store from './store'\nimport withSanti, { useNodeKey, useSID } from './withSanti'\nimport Ready from './components/Ready'\nimport NoSSR from './components/NoSSR'\n\nexport default {\n render,\n store,\n useState,\n getInitialProps,\n ready,\n withSanti,\n useNodeKey,\n useSID,\n Ready,\n NoSSR\n}\n\nexport {\n render,\n store,\n useState,\n getInitialProps,\n ready,\n withSanti,\n useNodeKey,\n useSID,\n Ready,\n NoSSR\n}\n"],"names":["isUndefined","val","isNull","isFunction","isString","isExist","isNaN","Number","isNumber","isPromiseLike","then","get","obj","keys","defaultValue","String","result","split","reduce","res","key","e","run","func","context","slice","args","call","delay","time","Promise","resolve","setTimeout","debounce","wait","timeout","clearTimeout","apply","promiseGuess","executor","valuer","value","err","undefined","createContext","Provider","withSanti","Component","WrappedComponent","forwardRef","nodeKey","__key","props","count","contextValue","useMemo","getCountedKey","React","ForwardedRefHOC","ref","hoistStatics","useNodeKey","useContext","useSID","sid","getCountedSID","KEY","inject","script","document","getElementById","createElement","id","innerHTML","head","appendChild","bootstrap","window","__SSR__","__SSRED__","data","remove","set","JSON","stringify","store","builder","warningMissingKey","console","warn","useState","initialState","useReactState","error","state","setState","getNextState","nextState","getInitialProps","fetch","fallback","forwardedRef","ready","setReady","ssrProps","setSsrProps","mounted","useRef","useEffect","init","current","delayMillisecond","__SSRREADY__","dispatchEvent","Event","children","ROOT_KEY","render","content","container","callback","element","module","hot","ReactDOM","ssrRoot","style","cssText","body","insertBefore","display","parentNode","removeChild","renderCallback","onReady","removeEventListener","addEventListener","Ready","onMount","when","ReadyOnMount","OnMount","NoSSR"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../client/helpers/base/is/index.js","../../client/helpers/base/try/index.js","../../client/helpers/utils.js","../../client/withSanti.js","../../client/store.js","../../client/useState.js","../../client/getInitialProps.js","../../client/ready.js","../../client/components/Container/index.js","../../client/render.js","../../client/components/Ready/index.js","../../client/components/NoSSR/index.js","../../client/index.js"],"sourcesContent":["// 值类型判断 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\nexport const isUndefined = val => typeof val === 'undefined'\n\nexport const isNull = val => val === null\n\nexport const isFunction = val => typeof val === 'function'\n\nexport const isArray = val =>\n isFunction(Array.isArray) ? Array.isArray(val) : val instanceof Array\n\nexport const isRegExp = val => val instanceof RegExp\n\nexport const isObject = val =>\n typeof val === 'object' && !(isArray(val) || isNull(val))\n\nexport const isBoolean = val => typeof val === 'boolean'\n\nexport const isString = val => typeof val === 'string'\n\nexport const isExist = val => !(isUndefined(val) || isNull(val))\n\nexport const isNaN = val =>\n isFunction(Number.isNaN) ? Number.isNaN(val) : val !== val // eslint-disable-line\n\nexport const isNumber = val => typeof val === 'number' && !isNaN(val)\n\nexport const isPromiseLike = val => isExist(val) && isFunction(val.then)\n// 值类型判断 -------------------------------------------------------------\n","import { isString, isUndefined, isFunction, isNumber } from '../is'\n\nexport const get = (obj, keys = [], defaultValue) => {\n try {\n if (isNumber(keys)) {\n keys = String(keys)\n }\n let result = (isString(keys) ? keys.split('.') : keys).reduce(\n (res, key) => res[key],\n obj\n )\n return isUndefined(result) ? defaultValue : result\n } catch (e) {\n return defaultValue\n }\n}\n\nexport const run = (obj, keys = [], ...args) => {\n keys = isString(keys) ? keys.split('.') : keys\n\n const func = get(obj, keys)\n const context = get(obj, keys.slice(0, -1))\n\n return isFunction(func) ? func.call(context, ...args) : func\n}\n\nexport const value = (...values) =>\n values.reduce(\n (value, nextValue) => (isUndefined(value) ? run(nextValue) : run(value)),\n undefined\n )\n","import { isArray, isPromiseLike } from './base/is'\n\nexport const nextTick = (func) => Promise.resolve().then(func)\n\nexport const delay = (time) =>\n new Promise((resolve) => setTimeout(resolve, time))\n\n/**\n * [防抖]\n * @param {Function} func 执行函数\n * @param {Number} wait 多少毫秒后运行一次\n */\nexport const debounce = (func, wait = 16) => {\n let timeout\n\n return function (...args) {\n clearTimeout(timeout)\n\n timeout = setTimeout(() => {\n func.apply(this, args)\n }, wait)\n\n return timeout\n }\n}\n\n/**\n * [用来智能处理Promise类型返回值]\n * 当值生成过程为 promise 时,将得到 promise 类型返回值,按约定 resolve 最终值\n * 当过程不为 promise 时将直接得到值\n * @param {Function} executor 执行过程获取\n * @param {Function} valuer 值处理过程\n */\nexport const promiseGuess = (executor, valuer) =>\n function (...args) {\n let value = executor.apply(this, args)\n\n return isPromiseLike(value)\n ? new Promise((resolve) =>\n value\n .then((value) => resolve(valuer.call(this, null, value, ...args)))\n .catch((err) => resolve(valuer.call(this, err, undefined, ...args)))\n )\n : valuer.call(this, null, value, ...args)\n }\n\nexport function getKey2Id() {\n let uuid = 0\n const map = new Map()\n\n // 对每种 NodeType 做编号处理\n return function key2Id(key) {\n let id = map.get(key)\n\n if (!id) {\n id = (++uuid).toString(32)\n map.set(key, id)\n }\n\n return id\n }\n}\n\nexport function isBrowser() {\n return !window.__SSR__\n}\n\nexport function isPrerendering() {\n return !!window.__PR__\n}\n","import React, { forwardRef, createContext, useContext, useMemo } from 'react'\nimport hoistStatics from 'hoist-non-react-statics'\nimport NodeKey from 'react-node-key'\n\nconst context = createContext()\nconst { Provider } = context\n\nfunction withSanti(Component) {\n function WrappedComponent({ forwardRef, __key: nodeKey, ...props }) {\n let count = 0\n const contextValue = useMemo(\n () => ({\n nodeKey,\n getCountedKey: () => (nodeKey ? `${nodeKey}:${count++}` : undefined)\n }),\n [nodeKey]\n )\n\n return (\n <Provider value={contextValue}>\n <Component {...props} ref={forwardRef} />\n </Provider>\n )\n }\n\n const ForwardedRefHOC = forwardRef((props, ref) => (\n <NodeKey>\n {nodeKey => (\n <WrappedComponent {...props} forwardedRef={ref} __key={nodeKey} />\n )}\n </NodeKey>\n ))\n\n return hoistStatics(ForwardedRefHOC, WrappedComponent)\n}\n\nexport function useNodeKey() {\n return (\n useContext(context) || {\n nodeKey: undefined,\n getCountedKey: () => undefined\n }\n )\n}\n\nexport function useSID() {\n const { nodeKey: sid, getCountedKey: getCountedSID } = useNodeKey()\n return { sid, getCountedSID }\n}\n\nexport default withSanti\n","import { run, isUndefined, promiseGuess, isExist } from './helpers'\n\nconst KEY = '__SSRDATA__'\n\nfunction inject() {\n let script = document.getElementById(KEY) || document.createElement('script')\n script.id = KEY\n script.innerHTML = `window.${KEY}={};`\n document.head.appendChild(script)\n}\n\nfunction bootstrap() {\n if (window.__SSR__) {\n inject()\n } else {\n if (isExist(document.getElementById(KEY))) {\n window.__SSRED__ = true\n }\n }\n const data = window[KEY] || {}\n\n function remove(key) {\n delete data[key]\n }\n\n function set(key, value) {\n if (!window.__SSR__) {\n return\n }\n data[key] = value\n document.getElementById(KEY).innerHTML = `window.${KEY}=${JSON.stringify(\n data\n )};`\n }\n\n function get(key) {\n let value = data[key]\n remove(key) // 初始值只在 html 就绪后使用一次,使用即销毁\n return value\n }\n\n return { set, get, remove }\n}\n\nconst store = bootstrap()\n\nexport default {\n get: promiseGuess(\n (key, builder) => {\n if (!key && window.__SSR__) {\n // 若无 key 则 SSR 阶段不计算\n return undefined\n }\n\n let value\n\n if (!window.__SSR__) {\n value = store.get(key)\n }\n\n if (isUndefined(value)) {\n value = run(builder)\n }\n\n return value\n },\n (err, value, key) => {\n if (!key) {\n return [null, value]\n }\n\n if (err) {\n store.remove(key)\n return [err, undefined]\n }\n\n if (window.__SSR__) {\n store.set(key, value)\n }\n\n return [null, value]\n }\n ),\n set: store.set\n}\n","import { useState as useReactState } from 'react'\n\nimport { run, debounce } from './helpers'\nimport { useNodeKey } from './withSanti'\nimport store from './store'\n\nconst warningMissingKey = debounce(() => {\n if (window.__SSR__) {\n return\n }\n\n console.warn('You shouldn\\'t use \"santi.useState\" outside a \"withSanti\"')\n}, 32)\n\nfunction useState(initialState, key) {\n const { getCountedKey } = useNodeKey()\n const nodeKey = key || run(getCountedKey)\n const [state, setState] = useReactState(() => {\n if (!nodeKey) {\n warningMissingKey()\n }\n\n const [err, value] = store.get(nodeKey, initialState)\n\n if (err) {\n console.error(err)\n }\n\n return value\n })\n\n return [\n state,\n getNextState => {\n const nextState = run(getNextState, undefined, state)\n\n store.set(nodeKey, nextState)\n\n return setState(nextState)\n },\n nodeKey\n ]\n}\n\nexport default useState\n","import React, { useState, forwardRef, useRef, useEffect } from 'react'\nimport hoistStatics from 'hoist-non-react-statics'\n\nimport { run } from './helpers'\nimport withSanti, { useNodeKey } from './withSanti'\nimport store from './store'\n\nconst getInitialProps = (fetch, fallback = null, key) => Component => {\n function WrappedComponent({ forwardedRef, ...props }) {\n const [ready, setReady] = useState(false)\n const [ssrProps, setSsrProps] = useState({})\n const mounted = useRef(true)\n const { getCountedKey } = useNodeKey()\n const nodeKey = key || run(getCountedKey)\n\n useEffect(() => {\n async function init() {\n const [err, ssrProps] = await store.get(nodeKey, () =>\n run(fetch, undefined, props)\n )\n\n if (err) {\n console.error('[getInitialProps error]', err)\n return\n }\n\n if (mounted.current && ssrProps) {\n setSsrProps(ssrProps)\n setReady(true)\n }\n }\n\n init()\n\n return () => {\n mounted.current = false\n }\n }, [])\n\n return ready ? (\n <Component {...{ ...props, ...ssrProps }} ref={forwardedRef} />\n ) : (\n run(fallback, undefined, props)\n )\n }\n\n const ForwardedRefHOC = forwardRef((props, ref) => (\n <WrappedComponent {...props} forwardedRef={ref} />\n ))\n\n return withSanti(hoistStatics(ForwardedRefHOC, WrappedComponent))\n}\n\nexport default getInitialProps\n","import { delay } from './helpers'\n\nconst ready = async (delayMillisecond = -1) => {\n try {\n if (delayMillisecond && Number(delayMillisecond) >= 0) {\n await delay(delayMillisecond)\n }\n\n if (window.__SSR__ && !window.__SSRREADY__) {\n const script = document.createElement('script')\n script.innerHTML = 'window.__SSRREADY__=true'\n document.head.appendChild(script)\n }\n // ssr 阶段:通知 santi 可以采集页面内容\n // csr 阶段:通知 santi/render 已完成呈现\n document.dispatchEvent(new Event('ssr-ready'))\n } finally {\n // nothing\n }\n}\n\nexport default ready\n","import withSanti from '../../withSanti'\n\nexport default withSanti(({ children }) => children)\n","import React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport Container from './components/Container'\nimport { isFunction } from './helpers'\n\nconst ROOT_KEY = 'ssr-root'\n\nfunction render(content, container, callback) {\n const element = <Container>{content}</Container>\n\n // 支持热加载\n // FIXME: Dev 阶段会导致渲染抖动\n if (module.hot) {\n return ReactDOM.render(element, container, callback)\n }\n\n // ssr 阶段将内容渲染至动态生成的 ssr-root 节点中\n if (window.__SSR__) {\n let ssrRoot = document.getElementById(ROOT_KEY)\n if (!ssrRoot) {\n ssrRoot = document.createElement('div')\n ssrRoot.style.cssText = 'width:100%;height:100%;'\n ssrRoot.id = ROOT_KEY\n document.body.insertBefore(ssrRoot, container)\n }\n\n return ReactDOM.render(element, ssrRoot, callback)\n }\n\n // csr 阶段若为 ssr 渲染结果,则在 csr 完成后替换 ssr 结果\n // 注:不使用水合操作(ReactDOM.hydrate)因为可能造成节点错误问题\n if (window.__SSRED__) {\n const ssrRoot = document.getElementById(ROOT_KEY)\n let renderCallback = callback\n\n container.style.display = 'none'\n container.innerHTML = ssrRoot.innerHTML\n\n function display() {\n // 做一定延时,尽可能保证平滑呈现\n setTimeout(() => {\n const ssrRoot = document.getElementById(ROOT_KEY)\n if (ssrRoot) {\n try {\n ssrRoot.parentNode.removeChild(ssrRoot)\n } finally {\n // nothing\n }\n }\n container.style.display = ''\n }, 56)\n }\n\n // 若为快照 ssr 则 csr 阶段将同样收到 ssr-ready 事件,在此事件后平滑呈现真实可用交互\n if (window.__SSRREADY__) {\n function onReady() {\n display()\n document.removeEventListener('ssr-ready', onReady)\n }\n document.addEventListener('ssr-ready', onReady)\n } else {\n // 若不为快照 ssr(一般为超时自动快照),则在 render 回调结束后呈现真实结果\n renderCallback = function(...args) {\n // FIXME: 超时快照可能造成呈现不平滑,具体表现为 SSR 切到真实内容过程中有轻微空屏现象,通俗为 “闪一下”,此问题待完美修正\n display()\n\n if (isFunction(callback)) {\n callback.apply(this, args)\n }\n }\n }\n\n return ReactDOM.render(element, container, renderCallback)\n }\n\n // csr 若不为 ssr 渲染结果则正常渲染\n return ReactDOM.render(element, container, callback)\n}\n\nexport default render\n","import React, { useState, useEffect } from 'react'\n\nimport ready from '../../ready'\n\nfunction Ready({ children, delay, onMount = false, when = false }) {\n useEffect(() => {\n if (onMount) {\n ready(delay)\n }\n }, [])\n\n useEffect(() => {\n if (when) {\n ready(delay)\n }\n }, [when])\n\n return children\n}\n\nfunction ReadyOnMount({ children, delay }) {\n const [ready, setReady] = useState(false)\n useEffect(() => {\n setReady(true)\n }, [])\n\n return (\n <Ready delay={delay} when={ready}>\n {children}\n </Ready>\n )\n}\n\nReady.OnMount = ReadyOnMount\n\nexport default Ready\n","import { run } from '../../helpers'\n\nfunction NoSSR({ children, fallback = null }) {\n return window.__SSR__ ? run(fallback) : children\n}\n\nexport default NoSSR\n","import useState from './useState'\nimport getInitialProps from './getInitialProps'\nimport ready from './ready'\nimport render from './render'\nimport store from './store'\nimport withSanti, { useNodeKey, useSID } from './withSanti'\nimport Ready from './components/Ready'\nimport NoSSR from './components/NoSSR'\n\nexport default {\n render,\n store,\n useState,\n getInitialProps,\n ready,\n withSanti,\n useNodeKey,\n useSID,\n Ready,\n NoSSR\n}\n\nexport {\n render,\n store,\n useState,\n getInitialProps,\n ready,\n withSanti,\n useNodeKey,\n useSID,\n Ready,\n NoSSR\n}\n"],"names":["isUndefined","val","isNull","isFunction","isString","isExist","isNaN","Number","isNumber","isPromiseLike","then","get","obj","keys","defaultValue","String","result","split","reduce","res","key","e","run","func","context","slice","args","call","delay","time","Promise","resolve","setTimeout","debounce","wait","timeout","clearTimeout","apply","promiseGuess","executor","valuer","value","err","undefined","createContext","Provider","withSanti","Component","WrappedComponent","forwardRef","nodeKey","__key","props","count","contextValue","useMemo","getCountedKey","React","ForwardedRefHOC","ref","hoistStatics","useNodeKey","useContext","useSID","sid","getCountedSID","KEY","inject","script","document","getElementById","createElement","id","innerHTML","head","appendChild","bootstrap","window","__SSR__","__SSRED__","data","remove","set","JSON","stringify","store","builder","warningMissingKey","console","warn","useState","initialState","useReactState","error","state","setState","getNextState","nextState","getInitialProps","fetch","fallback","forwardedRef","ready","setReady","ssrProps","setSsrProps","mounted","useRef","useEffect","init","current","delayMillisecond","__SSRREADY__","dispatchEvent","Event","children","ROOT_KEY","render","content","container","callback","element","module","hot","ReactDOM","ssrRoot","style","cssText","body","insertBefore","display","parentNode","removeChild","renderCallback","onReady","removeEventListener","addEventListener","Ready","onMount","when","ReadyOnMount","OnMount","NoSSR"],"mappings":"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"}
|
package/lib/client/index.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("hoist-non-react-statics"),require("react-node-key"),require("react-dom")):"function"==typeof define&&define.amd?define(["exports","react","hoist-non-react-statics","react-node-key","react-dom"],t):t((e=e||self).SantiClient={},e.React,e.hoistStatics,e.NodeKey,e.ReactDOM)}(this,function(e,y,t,o,i){"use strict";var p="default"in y?y.default:y;function a(e,t,n,r,o,u,i){try{var c=e[u](i),a=c.value}catch(e){return void n(e)}c.done?t(a):Promise.resolve(a).then(r,o)}function
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("hoist-non-react-statics"),require("react-node-key"),require("react-dom")):"function"==typeof define&&define.amd?define(["exports","react","hoist-non-react-statics","react-node-key","react-dom"],t):t((e=e||self).SantiClient={},e.React,e.hoistStatics,e.NodeKey,e.ReactDOM)}(this,function(e,y,t,o,i){"use strict";var p="default"in y?y.default:y;function n(t,e){var n,r=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)),r}function v(r){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?n(Object(o),!0).forEach(function(e){var t,n;t=r,e=o[n=e],n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):n(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))})}return r}function a(e,t,n,r,o,u,i){try{var c=e[u](i),a=c.value}catch(e){return void n(e)}c.done?t(a):Promise.resolve(a).then(r,o)}function m(c){return function(){var e=this,i=arguments;return new Promise(function(t,n){var r=c.apply(e,i);function o(e){a(r,t,n,o,u,"next",e)}function u(e){a(r,t,n,o,u,"throw",e)}o(void 0)})}}function w(){return(w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n,r=arguments[t];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function h(e,t){if(null==e)return{};var n,r=function(e,t){if(null==e)return{};for(var n,r={},o=Object.keys(e),u=0;u<o.length;u++)n=o[u],0<=t.indexOf(n)||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols)for(var o=Object.getOwnPropertySymbols(e),u=0;u<o.length;u++)n=o[u],0<=t.indexOf(n)||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n]);return r}function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,u=[],i=!0,c=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(u.push(r.value),!t||u.length!==t);i=!0);}catch(e){c=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(c)throw o}}return u}}(e,t)||function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Map"===(n="Object"===n&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t,o=o&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o,i=i&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i;function c(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[],n=2<arguments.length?arguments[2]:void 0;try{g(t)&&(t=String(t));var r=(d(t)?t.split("."):t).reduce(function(e,t){return e[t]},e);return u(r)?n:r}catch(e){return n}}function S(e){for(var t=d(t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[])?t.split("."):t,n=c(e,t),t=c(e,t.slice(0,-1)),r=arguments.length,o=new Array(2<r?r-2:0),u=2;u<r;u++)o[u-2]=arguments[u];return l(n)?n.call.apply(n,[t].concat(o)):n}var u=function(e){return void 0===e},f=function(e){return null===e},l=function(e){return"function"==typeof e},d=function(e){return"string"==typeof e},s=function(e){return!(u(e)||f(e))},g=function(e){return"number"==typeof e&&(e=e,!(l(Number.isNaN)?Number.isNaN(e):e!=e))},b=["forwardRef","__key"],O="nNBh",R=y.createContext(),E=R.Provider;function j(u){function r(e){var t=e.forwardRef,n=e.__key,r=h(e,b),o=0,e=y.useMemo(function(){return{nodeKey:n,getCountedKey:function(){return n?"".concat(n,":").concat(o++):void 0}}},[n]);return p.createElement(E,{value:e,_nk:"".concat(O,"11")},p.createElement(u,w({},r,{ref:t,_nk:"".concat(O,"21")})))}return t(y.forwardRef(function(t,n){return p.createElement(o,{_nk:"".concat(O,"31")},function(e){return p.createElement(r,w({},t,{forwardedRef:n,__key:e,_nk:"".concat(O,"41")}))})}),r)}function P(){return y.useContext(R)||{nodeKey:void 0,getCountedKey:function(){}}}function k(){var e=P();return{sid:e.nodeKey,getCountedSID:e.getCountedKey}}var x="__SSRDATA__";var I,N,A=function(){var e;window.__SSR__?((e=document.getElementById(x)||document.createElement("script")).id=x,e.innerHTML="window.".concat(x,"={};"),document.head.appendChild(e)):s(document.getElementById(x))&&(window.__SSRED__=!0);var n=window[x]||{};function r(e){delete n[e]}return{set:function(e,t){window.__SSR__&&(n[e]=t,document.getElementById(x).innerHTML="window.".concat(x,"=").concat(JSON.stringify(n),";"))},get:function(e){var t=n[e];return r(e),t},remove:r}}(),D={get:(I=function(e,t){var n;if(e||!window.__SSR__)return window.__SSR__||(n=A.get(e)),n=u(n)?S(t):n},N=function(e,t,n){return n?e?(A.remove(n),[e,void 0]):(window.__SSR__&&A.set(n,t),[null,t]):[null,t]},function(){for(var n=this,e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];var o,u=I.apply(this,r);return s(o=u)&&l(o.then)?new Promise(function(t){return u.then(function(e){return t(N.call.apply(N,[n,null,e].concat(r)))}).catch(function(e){return t(N.call.apply(N,[n,e,void 0].concat(r)))})}):N.call.apply(N,[this,null,u].concat(r))}),set:A.set},C=function(o){var u,i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:16;return function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return clearTimeout(u),u=setTimeout(function(){o.apply(e,n)},i)}}(function(){window.__SSR__||console.warn('You shouldn\'t use "santi.useState" outside a "withSanti"')},32);function K(n,e){var t=P().getCountedKey,r=e||S(t),t=y.useState(function(){r||C();var e=_(D.get(r,n),2),t=e[0],e=e[1];return t&&console.error(t),e}),t=_(t,2),o=t[0],u=t[1];return[o,function(e){e=S(e,void 0,o);return D.set(r,e),u(e)},r]}function T(l){var d=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,s=2<arguments.length?arguments[2]:void 0;return function(f){function n(e){var t=e.forwardedRef,r=h(e,M),n=_(y.useState(!1),2),o=n[0],u=n[1],e=_(y.useState({}),2),n=e[0],i=e[1],c=y.useRef(!0),e=P().getCountedKey,a=s||S(e);return y.useEffect(function(){function e(){return(e=m(regeneratorRuntime.mark(function e(){var t,n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,D.get(a,function(){return S(l,void 0,r)});case 2:if(t=e.sent,n=_(t,2),t=n[0],n=n[1],t)return console.error("[getInitialProps error]",t),e.abrupt("return");e.next=9;break;case 9:c.current&&n&&(i(n),u(!0));case 10:case"end":return e.stop()}},e)}))).apply(this,arguments)}return function(){e.apply(this,arguments)}(),function(){c.current=!1}},[]),o?p.createElement(f,w({},v(v({},r),n),{ref:t,_nk:"".concat(B,"11")})):S(d,void 0,r)}return j(t(y.forwardRef(function(e,t){return p.createElement(n,w({},e,{forwardedRef:t,_nk:"".concat(B,"21")}))}),n))}}var M=["forwardedRef"],B="8NS2",L=function(){var e=m(regeneratorRuntime.mark(function e(){var t,n=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=0<n.length&&void 0!==n[0]?n[0]:-1,e.prev=1,t&&0<=Number(t))return e.next=5,function(t){return new Promise(function(e){return setTimeout(e,t)})}(t);e.next=5;break;case 5:window.__SSR__&&!window.__SSRREADY__&&((t=document.createElement("script")).innerHTML="window.__SSRREADY__=true",document.head.appendChild(t)),document.dispatchEvent(new Event("ssr-ready"));case 7:return e.prev=7,e.finish(7);case 9:case"end":return e.stop()}},e,null,[[1,,7,9]])}));return function(){return e.apply(this,arguments)}}(),H=j(function(e){return e.children}),q="ssr-root";function Y(e,t,r){var n=p.createElement(H,{_nk:"".concat("4mmK","11")},e);if(module.hot)return i.render(n,t,r);if(window.__SSR__){var o=document.getElementById(q);return o||((o=document.createElement("div")).style.cssText="width:100%;height:100%;",o.id=q,document.body.insertBefore(o,t)),i.render(n,o,r)}if(window.__SSRED__){var u=function(){setTimeout(function(){var e=document.getElementById(q);e&&e.parentNode.removeChild(e),t.style.display=""},56)},e=document.getElementById(q),o=r;return t.style.display="none",t.innerHTML=e.innerHTML,window.__SSRREADY__?document.addEventListener("ssr-ready",function e(){u(),document.removeEventListener("ssr-ready",e)}):o=function(){if(u(),l(r)){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];r.apply(this,t)}},i.render(n,t,o)}return i.render(n,t,r)}function J(e){var t=e.children,n=e.delay,r=e.onMount,o=void 0!==r&&r,e=e.when,u=void 0!==e&&e;return y.useEffect(function(){o&&L(n)},[]),y.useEffect(function(){u&&L(n)},[u]),t}function U(e){var t=e.children,e=e.fallback;return window.__SSR__?S(void 0===e?null:e):t}J.OnMount=function(e){var t=e.children,n=e.delay,r=_(y.useState(!1),2),e=r[0],o=r[1];return y.useEffect(function(){o(!0)},[]),p.createElement(J,{delay:n,when:e,_nk:"".concat("B/hE","11")},t)};var $={render:Y,store:D,useState:K,getInitialProps:T,ready:L,withSanti:j,useNodeKey:P,useSID:k,Ready:J,NoSSR:U};e.NoSSR=U,e.Ready=J,e.default=$,e.getInitialProps=T,e.ready=L,e.render=Y,e.store=D,e.useNodeKey=P,e.useSID=k,e.useState=K,e.withSanti=j,Object.defineProperty(e,"__esModule",{value:!0})});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "santi",
|
|
3
|
-
"version": "0.0.0-beta.
|
|
3
|
+
"version": "0.0.0-beta.42",
|
|
4
4
|
"description": "Isomorphic framework for base on create-react-app and jsdom",
|
|
5
5
|
"bin": {
|
|
6
6
|
"santi": "bin/santi.js"
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"promise-limit": "^2.7.0",
|
|
52
52
|
"qs": "^6.9.1",
|
|
53
53
|
"react-app-rewired": "^2.1.8",
|
|
54
|
-
"react-node-key": "^0.1
|
|
54
|
+
"react-node-key": "^0.3.1",
|
|
55
55
|
"react-scripts": "^3.4.4",
|
|
56
56
|
"szfe-tools": "^0.0.0-beta.7",
|
|
57
57
|
"webpack-bundle-analyzer": "^3.6.0",
|