├── .gitignore
├── README.md
├── package.json
├── rollup.config.js
├── src
└── index.tsx
├── tsconfig.json
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | # created by git-ignore
3 | # Logs
4 | logs
5 | *.log
6 |
7 | # Runtime data
8 | pids
9 | *.pid
10 | *.seed
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
19 | .grunt
20 |
21 | # Compiled binary addons (http://nodejs.org/api/addons.html)
22 | build/Release
23 |
24 | # Dependency directory
25 | # Deployed apps should consider commenting this line out:
26 | # see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git
27 | node_modules
28 |
29 |
30 | # created by git-ignore
31 | .DS_Store
32 | .AppleDouble
33 | .LSOverride
34 |
35 | # Icon must ends with two \r.
36 | Icon
37 |
38 |
39 | # Thumbnails
40 | ._*
41 |
42 | # Files that might appear on external disk
43 | .Spotlight-V100
44 | .Trashes
45 |
46 | /esm/
47 | /umd/
48 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # react-lambda
2 |
3 | Anonymous functional components for React. How about using hooks inside hooks?
4 |
5 | ## Motivation
6 |
7 | I wished there’s a way to use hooks inside a component’s *subtree*.
8 | That means all the state and effects should be localized in that subtree only.
9 | Using it in my current project, it helped me write more cohesive code:
10 |
11 | ```js
12 | import λ from 'react-lambda'
13 | function AppNav() {
14 | return
24 | }
25 | ```
26 |
27 | ## Another example
28 |
29 |
30 |
31 | ```js
32 | import λ from 'react-lambda'
33 |
34 | function App() {
35 | const [n, setN] = useState(3)
36 | const more = () => setN(n => n + 1)
37 | const less = () => setN(n => n - 1)
38 | return (
39 |
40 |
react-lambda demo
41 |
42 |
43 |
44 |
45 |
46 | {Array(n)
47 | .fill()
48 | .map((_, i) =>
49 | λ(i, () => {
50 | // Hooks inside component body, how cool is that!
51 | const [v, setV] = useState(0)
52 | const inc = () => setV(v => v + 1)
53 | return - {v}
54 | })
55 | )}
56 |
57 |
58 | )
59 | }
60 | ```
61 |
62 |
63 |
64 | ## API
65 |
66 | ```js
67 | import λ from 'react-lambda'
68 | ```
69 |
70 | ### λ([key,] f)
71 |
72 | Returns an optionally-keyed React element that executes `f`.
73 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "devDependencies": {
3 | "@types/react": "^16.8.0",
4 | "react": "^16.8.0",
5 | "rollup": "^0.66.6",
6 | "rollup-plugin-typescript": "^1.0.0",
7 | "tslib": "^1.9.3",
8 | "typescript": "^3.3.3"
9 | },
10 | "name": "react-lambda",
11 | "description": "Anonymous functional components for React. How about using hooks inside hooks?",
12 | "version": "1.0.0-rc.0",
13 | "main": "umd/react-lambda.js",
14 | "module": "esm/index.js",
15 | "typings": "esm/index.d.ts",
16 | "dependencies": {},
17 | "scripts": {
18 | "build": "yarn build:umd && yarn build:esm",
19 | "build:umd": "rollup -c",
20 | "build:esm": "tsc",
21 | "prepare": "yarn build"
22 | },
23 | "repository": {
24 | "type": "git",
25 | "url": "git+https://github.com/dtinth/react-lambda.git"
26 | },
27 | "keywords": [
28 | "react",
29 | "hooks"
30 | ],
31 | "author": "Thai Pangsakulyanont (http://dt.in.th/)",
32 | "license": "MIT",
33 | "bugs": {
34 | "url": "https://github.com/dtinth/react-lambda/issues"
35 | },
36 | "homepage": "https://github.com/dtinth/react-lambda#readme",
37 | "files": [
38 | "umd/react-lambda.js",
39 | "esm"
40 | ]
41 | }
42 |
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | import typescript from 'rollup-plugin-typescript'
2 |
3 | export default {
4 | input: './src/index.tsx',
5 | output: {
6 | file: 'umd/react-lambda.js',
7 | format: 'umd',
8 | name: 'react-lambda',
9 | exports: 'named',
10 | globals: {
11 | react: 'React'
12 | }
13 | },
14 | plugins: [typescript()],
15 | external: ['react']
16 | }
17 |
--------------------------------------------------------------------------------
/src/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export function Λ(props: { f: () => JSX.Element | null }) {
4 | return props.f()
5 | }
6 |
7 | export function λ(f: () => JSX.Element | null, props?: any): JSX.Element
8 | export function λ(key: string | number, f: () => JSX.Element | null, props?: any): JSX.Element
9 | export function λ(...args: any) {
10 | let f: any
11 | let props: any = {}
12 | if (typeof args[0] === 'string' || typeof args[0] === 'number') {
13 | props.key = args.shift()
14 | }
15 | if (typeof args[0] !== 'function') {
16 | throw new Error('You must pass a function!')
17 | }
18 | f = args.shift()
19 | if (args[0] && typeof args[0] === 'object') {
20 | Object.assign(props, args.shift())
21 | }
22 | return <Λ {...props || {}} f={f} />
23 | }
24 |
25 | export default λ
26 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "es6",
4 | "moduleResolution": "node",
5 | "jsx": "react",
6 | "target": "es5",
7 | "strict": true,
8 | "sourceMap": true,
9 | "rootDir": "src",
10 | "outDir": "esm",
11 | "declaration": true,
12 | "skipLibCheck": true,
13 | "lib": ["es2015", "dom"],
14 | "esModuleInterop": true
15 | },
16 | "include": ["src"],
17 | "exclude": ["node_modules"]
18 | }
19 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@types/estree@0.0.39":
6 | version "0.0.39"
7 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
8 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
9 |
10 | "@types/node@*":
11 | version "10.12.21"
12 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
13 | integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
14 |
15 | "@types/prop-types@*":
16 | version "15.5.8"
17 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.8.tgz#8ae4e0ea205fe95c3901a5a1df7f66495e3a56ce"
18 | integrity sha512-3AQoUxQcQtLHsK25wtTWIoIpgYjH3vSDroZOUr7PpCHw/jLY1RB9z9E8dBT/OSmwStVgkRNvdh+ZHNiomRieaw==
19 |
20 | "@types/react@^16.8.0":
21 | version "16.8.2"
22 | resolved "https://registry.yarnpkg.com/@types/react/-/react-16.8.2.tgz#3b7a7f7ea89d1c7d68b00849fb5de839011c077b"
23 | integrity sha512-6mcKsqlqkN9xADrwiUz2gm9Wg4iGnlVGciwBRYFQSMWG6MQjhOZ/AVnxn+6v8nslFgfYTV8fNdE6XwKu6va5PA==
24 | dependencies:
25 | "@types/prop-types" "*"
26 | csstype "^2.2.0"
27 |
28 | arr-diff@^2.0.0:
29 | version "2.0.0"
30 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
31 | integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=
32 | dependencies:
33 | arr-flatten "^1.0.1"
34 |
35 | arr-flatten@^1.0.1:
36 | version "1.1.0"
37 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
38 | integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
39 |
40 | array-unique@^0.2.1:
41 | version "0.2.1"
42 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
43 | integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
44 |
45 | braces@^1.8.2:
46 | version "1.8.5"
47 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
48 | integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=
49 | dependencies:
50 | expand-range "^1.8.1"
51 | preserve "^0.2.0"
52 | repeat-element "^1.1.2"
53 |
54 | csstype@^2.2.0:
55 | version "2.6.2"
56 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.2.tgz#3043d5e065454579afc7478a18de41909c8a2f01"
57 | integrity sha512-Rl7PvTae0pflc1YtxtKbiSqq20Ts6vpIYOD5WBafl4y123DyHUeLrRdQP66sQW8/6gmX8jrYJLXwNeMqYVJcow==
58 |
59 | estree-walker@^0.5.2:
60 | version "0.5.2"
61 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.2.tgz#d3850be7529c9580d815600b53126515e146dd39"
62 | integrity sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==
63 |
64 | expand-brackets@^0.1.4:
65 | version "0.1.5"
66 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
67 | integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=
68 | dependencies:
69 | is-posix-bracket "^0.1.0"
70 |
71 | expand-range@^1.8.1:
72 | version "1.8.2"
73 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
74 | integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
75 | dependencies:
76 | fill-range "^2.1.0"
77 |
78 | extglob@^0.3.1:
79 | version "0.3.2"
80 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
81 | integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=
82 | dependencies:
83 | is-extglob "^1.0.0"
84 |
85 | filename-regex@^2.0.0:
86 | version "2.0.1"
87 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
88 | integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
89 |
90 | fill-range@^2.1.0:
91 | version "2.2.4"
92 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
93 | integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==
94 | dependencies:
95 | is-number "^2.1.0"
96 | isobject "^2.0.0"
97 | randomatic "^3.0.0"
98 | repeat-element "^1.1.2"
99 | repeat-string "^1.5.2"
100 |
101 | for-in@^1.0.1:
102 | version "1.0.2"
103 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
104 | integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
105 |
106 | for-own@^0.1.4:
107 | version "0.1.5"
108 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
109 | integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
110 | dependencies:
111 | for-in "^1.0.1"
112 |
113 | glob-base@^0.3.0:
114 | version "0.3.0"
115 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
116 | integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
117 | dependencies:
118 | glob-parent "^2.0.0"
119 | is-glob "^2.0.0"
120 |
121 | glob-parent@^2.0.0:
122 | version "2.0.0"
123 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
124 | integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
125 | dependencies:
126 | is-glob "^2.0.0"
127 |
128 | is-buffer@^1.1.5:
129 | version "1.1.6"
130 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
131 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
132 |
133 | is-dotfile@^1.0.0:
134 | version "1.0.3"
135 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
136 | integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
137 |
138 | is-equal-shallow@^0.1.3:
139 | version "0.1.3"
140 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
141 | integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=
142 | dependencies:
143 | is-primitive "^2.0.0"
144 |
145 | is-extendable@^0.1.1:
146 | version "0.1.1"
147 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
148 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
149 |
150 | is-extglob@^1.0.0:
151 | version "1.0.0"
152 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
153 | integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
154 |
155 | is-glob@^2.0.0, is-glob@^2.0.1:
156 | version "2.0.1"
157 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
158 | integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=
159 | dependencies:
160 | is-extglob "^1.0.0"
161 |
162 | is-number@^2.1.0:
163 | version "2.1.0"
164 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
165 | integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
166 | dependencies:
167 | kind-of "^3.0.2"
168 |
169 | is-number@^4.0.0:
170 | version "4.0.0"
171 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
172 | integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
173 |
174 | is-posix-bracket@^0.1.0:
175 | version "0.1.1"
176 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
177 | integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
178 |
179 | is-primitive@^2.0.0:
180 | version "2.0.0"
181 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
182 | integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
183 |
184 | isarray@1.0.0:
185 | version "1.0.0"
186 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
187 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
188 |
189 | isobject@^2.0.0:
190 | version "2.1.0"
191 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
192 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
193 | dependencies:
194 | isarray "1.0.0"
195 |
196 | "js-tokens@^3.0.0 || ^4.0.0":
197 | version "4.0.0"
198 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
199 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
200 |
201 | kind-of@^3.0.2:
202 | version "3.2.2"
203 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
204 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
205 | dependencies:
206 | is-buffer "^1.1.5"
207 |
208 | kind-of@^6.0.0:
209 | version "6.0.2"
210 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
211 | integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
212 |
213 | loose-envify@^1.1.0, loose-envify@^1.3.1:
214 | version "1.4.0"
215 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
216 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
217 | dependencies:
218 | js-tokens "^3.0.0 || ^4.0.0"
219 |
220 | math-random@^1.0.1:
221 | version "1.0.4"
222 | resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
223 | integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
224 |
225 | micromatch@^2.3.11:
226 | version "2.3.11"
227 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
228 | integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=
229 | dependencies:
230 | arr-diff "^2.0.0"
231 | array-unique "^0.2.1"
232 | braces "^1.8.2"
233 | expand-brackets "^0.1.4"
234 | extglob "^0.3.1"
235 | filename-regex "^2.0.0"
236 | is-extglob "^1.0.0"
237 | is-glob "^2.0.1"
238 | kind-of "^3.0.2"
239 | normalize-path "^2.0.1"
240 | object.omit "^2.0.0"
241 | parse-glob "^3.0.4"
242 | regex-cache "^0.4.2"
243 |
244 | normalize-path@^2.0.1:
245 | version "2.1.1"
246 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
247 | integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
248 | dependencies:
249 | remove-trailing-separator "^1.0.1"
250 |
251 | object-assign@^4.1.1:
252 | version "4.1.1"
253 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
254 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
255 |
256 | object.omit@^2.0.0:
257 | version "2.0.1"
258 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
259 | integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=
260 | dependencies:
261 | for-own "^0.1.4"
262 | is-extendable "^0.1.1"
263 |
264 | parse-glob@^3.0.4:
265 | version "3.0.4"
266 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
267 | integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
268 | dependencies:
269 | glob-base "^0.3.0"
270 | is-dotfile "^1.0.0"
271 | is-extglob "^1.0.0"
272 | is-glob "^2.0.0"
273 |
274 | path-parse@^1.0.6:
275 | version "1.0.6"
276 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
277 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
278 |
279 | preserve@^0.2.0:
280 | version "0.2.0"
281 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
282 | integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
283 |
284 | prop-types@^15.6.2:
285 | version "15.6.2"
286 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
287 | integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
288 | dependencies:
289 | loose-envify "^1.3.1"
290 | object-assign "^4.1.1"
291 |
292 | randomatic@^3.0.0:
293 | version "3.1.1"
294 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
295 | integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==
296 | dependencies:
297 | is-number "^4.0.0"
298 | kind-of "^6.0.0"
299 | math-random "^1.0.1"
300 |
301 | react@^16.8.0:
302 | version "16.8.1"
303 | resolved "https://registry.yarnpkg.com/react/-/react-16.8.1.tgz#ae11831f6cb2a05d58603a976afc8a558e852c4a"
304 | integrity sha512-wLw5CFGPdo7p/AgteFz7GblI2JPOos0+biSoxf1FPsGxWQZdN/pj6oToJs1crn61DL3Ln7mN86uZ4j74p31ELQ==
305 | dependencies:
306 | loose-envify "^1.1.0"
307 | object-assign "^4.1.1"
308 | prop-types "^15.6.2"
309 | scheduler "^0.13.1"
310 |
311 | regex-cache@^0.4.2:
312 | version "0.4.4"
313 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
314 | integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==
315 | dependencies:
316 | is-equal-shallow "^0.1.3"
317 |
318 | remove-trailing-separator@^1.0.1:
319 | version "1.1.0"
320 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
321 | integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
322 |
323 | repeat-element@^1.1.2:
324 | version "1.1.3"
325 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
326 | integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
327 |
328 | repeat-string@^1.5.2:
329 | version "1.6.1"
330 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
331 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
332 |
333 | resolve@^1.8.1:
334 | version "1.10.0"
335 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba"
336 | integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==
337 | dependencies:
338 | path-parse "^1.0.6"
339 |
340 | rollup-plugin-typescript@^1.0.0:
341 | version "1.0.0"
342 | resolved "https://registry.yarnpkg.com/rollup-plugin-typescript/-/rollup-plugin-typescript-1.0.0.tgz#f7bcefe576011d9d2ebcc725b542ef35fb5005d4"
343 | integrity sha512-d2KDNMJXgaaB//dDGd/YmyMiopt1Pz965Iu3zmEoL08YqNcKRBz26uHqqc47rFGfrJV5kFqifC9IYlh6dpSCLg==
344 | dependencies:
345 | resolve "^1.8.1"
346 | rollup-pluginutils "^2.3.1"
347 |
348 | rollup-pluginutils@^2.3.1:
349 | version "2.3.3"
350 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz#3aad9b1eb3e7fe8262820818840bf091e5ae6794"
351 | integrity sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==
352 | dependencies:
353 | estree-walker "^0.5.2"
354 | micromatch "^2.3.11"
355 |
356 | rollup@^0.66.6:
357 | version "0.66.6"
358 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.66.6.tgz#ce7d6185beb7acea644ce220c25e71ae03275482"
359 | integrity sha512-J7/SWanrcb83vfIHqa8+aVVGzy457GcjA6GVZEnD0x2u4OnOd0Q1pCrEoNe8yLwM6z6LZP02zBT2uW0yh5TqOw==
360 | dependencies:
361 | "@types/estree" "0.0.39"
362 | "@types/node" "*"
363 |
364 | scheduler@^0.13.1:
365 | version "0.13.1"
366 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.1.tgz#1a217df1bfaabaf4f1b92a9127d5d732d85a9591"
367 | integrity sha512-VJKOkiKIN2/6NOoexuypwSrybx13MY7NSy9RNt8wPvZDMRT1CW6qlpF5jXRToXNHz3uWzbm2elNpZfXfGPqP9A==
368 | dependencies:
369 | loose-envify "^1.1.0"
370 | object-assign "^4.1.1"
371 |
372 | tslib@^1.9.3:
373 | version "1.9.3"
374 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
375 | integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
376 |
377 | typescript@^3.3.3:
378 | version "3.3.3"
379 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.3.3.tgz#f1657fc7daa27e1a8930758ace9ae8da31403221"
380 | integrity sha512-Y21Xqe54TBVp+VDSNbuDYdGw0BpoR/Q6wo/+35M8PAU0vipahnyduJWirxxdxjsAkS7hue53x2zp8gz7F05u0A==
381 |
--------------------------------------------------------------------------------