@jelper/context-composer 0.1.0

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/es/index.js ADDED
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ export const createCtxComposer = (useCfgHook) => {
3
+ const ComposerCtx = React.createContext({});
4
+ return {
5
+ forwardComposer: (Com) => (props) => {
6
+ const value = useCfgHook(props);
7
+ return (React.createElement(ComposerCtx.Provider, { value: value },
8
+ React.createElement(Com, Object.assign({}, props))));
9
+ },
10
+ useComposerCtx() {
11
+ return React.useContext(ComposerCtx);
12
+ },
13
+ };
14
+ };
15
+ export const mergeComposer = (list) => {
16
+ return (Com) => {
17
+ return list.reduce((res, it) => {
18
+ return (props) => {
19
+ const CurrCom = it(res);
20
+ return React.createElement(CurrCom, Object.assign({}, props));
21
+ };
22
+ }, Com);
23
+ };
24
+ };
package/es/types.js ADDED
@@ -0,0 +1,18 @@
1
+ /*
2
+ * @Author: jade <apathyjade@outlook.com>
3
+ * @Version: 0.0.1
4
+ * @Date: 2022-06-22 16:44:40
5
+ * @Last Modified by: jade
6
+ * @Last Modified Time: 2022-06-22 16:44:40
7
+ */
8
+ export var StorageType;
9
+ (function (StorageType) {
10
+ StorageType["memory"] = "memory";
11
+ StorageType["session"] = "session";
12
+ StorageType["local"] = "local";
13
+ })(StorageType || (StorageType = {}));
14
+ export var StoreType;
15
+ (function (StoreType) {
16
+ StoreType["global"] = "global";
17
+ StoreType["page"] = "page";
18
+ })(StoreType || (StoreType = {}));
package/lib/index.js ADDED
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.mergeComposer = exports.createCtxComposer = void 0;
18
+ var react_1 = __importDefault(require("react"));
19
+ var createCtxComposer = function (useCfgHook) {
20
+ var ComposerCtx = react_1.default.createContext({});
21
+ return {
22
+ forwardComposer: function (Com) { return function (props) {
23
+ var value = useCfgHook(props);
24
+ return (react_1.default.createElement(ComposerCtx.Provider, { value: value },
25
+ react_1.default.createElement(Com, __assign({}, props))));
26
+ }; },
27
+ useComposerCtx: function () {
28
+ return react_1.default.useContext(ComposerCtx);
29
+ },
30
+ };
31
+ };
32
+ exports.createCtxComposer = createCtxComposer;
33
+ var mergeComposer = function (list) {
34
+ return function (Com) {
35
+ return list.reduce(function (res, it) {
36
+ return function (props) {
37
+ var CurrCom = it(res);
38
+ return react_1.default.createElement(CurrCom, __assign({}, props));
39
+ };
40
+ }, Com);
41
+ };
42
+ };
43
+ exports.mergeComposer = mergeComposer;
package/lib/types.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /*
3
+ * @Author: jade <apathyjade@outlook.com>
4
+ * @Version: 0.0.1
5
+ * @Date: 2022-06-22 16:44:40
6
+ * @Last Modified by: jade
7
+ * @Last Modified Time: 2022-06-22 16:44:40
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.StoreType = exports.StorageType = void 0;
11
+ var StorageType;
12
+ (function (StorageType) {
13
+ StorageType["memory"] = "memory";
14
+ StorageType["session"] = "session";
15
+ StorageType["local"] = "local";
16
+ })(StorageType || (exports.StorageType = StorageType = {}));
17
+ var StoreType;
18
+ (function (StoreType) {
19
+ StoreType["global"] = "global";
20
+ StoreType["page"] = "page";
21
+ })(StoreType || (exports.StoreType = StoreType = {}));
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@jelper/context-composer",
3
+ "version": "0.1.0",
4
+ "description": "react context helper",
5
+ "main": "lib/index.js",
6
+ "module": "es/index.js",
7
+ "types": "types/index.d.ts",
8
+ "scripts": {
9
+ "test": "echo \"Error: no test specified\" && exit 1",
10
+ "build": "jelper build",
11
+ "build:debug": "jelper build --debug",
12
+ "build:help": "jelper build --help",
13
+ "serve": "jelper serve"
14
+ },
15
+ "keywords": [
16
+ "store",
17
+ "helper"
18
+ ],
19
+ "files": [
20
+ "package.json",
21
+ "README.md",
22
+ "es/**",
23
+ "lib/**",
24
+ "types/**"
25
+ ],
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
29
+ "devDependencies": {
30
+ "@jelper/builder": "workspace:*",
31
+ "@types/node": "~18.0.0",
32
+ "@types/react": "~18.2.17"
33
+ },
34
+ "dependencies": {
35
+ "react": "~18.2.0"
36
+ },
37
+ "author": "apathyjade@outlook.com",
38
+ "license": "ISC"
39
+ }
@@ -0,0 +1,8 @@
1
+ import React, { FC } from 'react';
2
+ type Composer<P> = (Com: FC<P>) => FC<P>;
3
+ export declare const createCtxComposer: <P extends React.JSX.IntrinsicAttributes, T>(useCfgHook: (props: P) => T) => {
4
+ forwardComposer: (Com: FC<P>) => FC<P>;
5
+ useComposerCtx(): T;
6
+ };
7
+ export declare const mergeComposer: <P extends React.JSX.IntrinsicAttributes>(list: Array<Composer<P>>) => Composer<P>;
8
+ export {};