react-rx 1.0.0-beta.3 → 1.0.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/.idea/codeStyles/Project.xml +0 -6
- package/.idea/inspectionProfiles/Project_Default.xml +0 -4
- package/.idea/workspace.xml +62 -49
- package/dist/cjs/WithObservable.d.ts +3 -3
- package/dist/cjs/WithObservable.js +3 -3
- package/dist/cjs/index.d.ts +6 -2
- package/dist/cjs/index.js +18 -11
- package/dist/cjs/reactiveComponent.d.ts +6 -6
- package/dist/cjs/reactiveComponent.js +8 -26
- package/dist/cjs/useAsObservable.d.ts +9 -0
- package/dist/cjs/useAsObservable.js +31 -0
- package/dist/cjs/useIsomorphicEffect.d.ts +2 -0
- package/dist/cjs/useIsomorphicEffect.js +5 -0
- package/dist/cjs/useObservable.d.ts +6 -15
- package/dist/cjs/useObservable.js +17 -73
- package/dist/cjs/useObservableCallback.d.ts +3 -0
- package/dist/cjs/useObservableCallback.js +24 -0
- package/dist/cjs/useWithObservable.d.ts +9 -0
- package/dist/cjs/useWithObservable.js +11 -0
- package/dist/cjs/utils.d.ts +7 -3
- package/dist/cjs/utils.js +29 -5
- package/dist/cjs/withPropsStream.js +3 -3
- package/dist/es2015/WithObservable.d.ts +3 -3
- package/dist/es2015/index.d.ts +6 -2
- package/dist/es2015/index.js +7 -2
- package/dist/es2015/reactiveComponent.d.ts +6 -6
- package/dist/es2015/reactiveComponent.js +9 -6
- package/dist/es2015/useAsObservable.d.ts +9 -0
- package/dist/es2015/useAsObservable.js +27 -0
- package/dist/es2015/useIsomorphicEffect.d.ts +2 -0
- package/dist/es2015/useIsomorphicEffect.js +2 -0
- package/dist/es2015/useObservable.d.ts +6 -15
- package/dist/es2015/useObservable.js +15 -46
- package/dist/es2015/useObservableCallback.d.ts +3 -0
- package/dist/es2015/useObservableCallback.js +19 -0
- package/dist/es2015/useWithObservable.d.ts +9 -0
- package/dist/es2015/useWithObservable.js +7 -0
- package/dist/es2015/utils.d.ts +7 -3
- package/dist/es2015/utils.js +24 -3
- package/dist/esm/WithObservable.d.ts +3 -3
- package/dist/esm/index.d.ts +6 -2
- package/dist/esm/index.js +7 -2
- package/dist/esm/reactiveComponent.d.ts +6 -6
- package/dist/esm/reactiveComponent.js +7 -6
- package/dist/esm/useAsObservable.d.ts +9 -0
- package/dist/esm/useAsObservable.js +27 -0
- package/dist/esm/useIsomorphicEffect.d.ts +2 -0
- package/dist/esm/useIsomorphicEffect.js +2 -0
- package/dist/esm/useObservable.d.ts +6 -15
- package/dist/esm/useObservable.js +15 -48
- package/dist/esm/useObservableCallback.d.ts +3 -0
- package/dist/esm/useObservableCallback.js +20 -0
- package/dist/esm/useWithObservable.d.ts +9 -0
- package/dist/esm/useWithObservable.js +7 -0
- package/dist/esm/utils.d.ts +7 -3
- package/dist/esm/utils.js +24 -3
- package/package.json +9 -4
- package/src/WithObservable.tsx +4 -3
- package/src/index.ts +12 -12
- package/src/reactiveComponent.ts +28 -20
- package/src/useAsObservable.ts +43 -0
- package/src/useIsomorphicEffect.ts +3 -0
- package/src/useObservable.ts +36 -77
- package/src/useObservableCallback.ts +30 -0
- package/src/useWithObservable.ts +23 -0
- package/src/utils.ts +39 -3
- package/website/.babelrc +21 -0
- package/website/.prettierrc +7 -0
- package/website/README.mdx +1 -0
- package/website/package.json +84 -0
- package/website/src/@types/babel.d.ts +4 -0
- package/website/src/@types/mdx.d.ts +11 -0
- package/website/src/@types/react-css-burger.d.ts +4 -0
- package/website/src/App.tsx +68 -0
- package/website/src/components/Header.tsx +118 -0
- package/website/src/components/Link.tsx +18 -0
- package/website/src/components/LoadPage.tsx +60 -0
- package/website/src/components/Sidebar.tsx +88 -0
- package/website/src/components/logos/Github.tsx +10 -0
- package/website/src/components/logos/React.tsx +27 -0
- package/website/src/components/logos/ReactRxLogo.tsx +39 -0
- package/website/src/components/logos/RxJs.tsx +69 -0
- package/website/src/components/repl/Checkerboard.tsx +25 -0
- package/website/src/components/repl/CodeBlock.tsx +147 -0
- package/website/src/components/repl/CodeMirror.tsx +37 -0
- package/website/src/components/repl/CodeMirrorMode.tsx +67 -0
- package/website/src/components/repl/EvalCode.tsx +55 -0
- package/website/src/components/repl/Prelude.tsx +50 -0
- package/website/src/components/repl/ShowError.tsx +27 -0
- package/website/src/components/repl/codemirror-lib.ts +8 -0
- package/website/src/components/repl/codemirror-theme.css +131 -0
- package/website/src/components/repl/compile/babel.ts +21 -0
- package/website/src/components/repl/eval/evalCallback.ts +27 -0
- package/website/src/components/repl/eval/evalCode.ts +7 -0
- package/website/src/components/repl/eval/evalExpression.ts +4 -0
- package/website/src/components/repl/eval/evalReactDomRender.ts +23 -0
- package/website/src/components/repl/index.ts +1 -0
- package/website/src/components/repl/runMode.ts +42 -0
- package/website/src/datastores/location.ts +14 -0
- package/website/src/datastores/page.ts +11 -0
- package/website/src/datastores/pageTransition.ts +97 -0
- package/website/src/entries/main.css +2 -0
- package/website/src/entries/main.tsx +6 -0
- package/website/src/examples/FizzBuzz/FizzBuzzExample.tsx +39 -0
- package/website/src/examples/FizzBuzz/index.tsx +9 -0
- package/website/src/examples/_utils/globalScope.ts +45 -0
- package/website/src/examples/animation/AnimationExample.tsx +152 -0
- package/website/src/examples/animation/easings.ts +0 -0
- package/website/src/examples/animation/index.tsx +15 -0
- package/website/src/examples/context/Context.example.jsx +67 -0
- package/website/src/examples/context/index.tsx +9 -0
- package/website/src/examples/errors/Errors.example.jsx +69 -0
- package/website/src/examples/errors/index.tsx +9 -0
- package/website/src/examples/event-handlers/EventHandlersExample.tsx +48 -0
- package/website/src/examples/event-handlers/index.tsx +9 -0
- package/website/src/examples/fetch/FetchExample.jsx +43 -0
- package/website/src/examples/fetch/a.txt +1 -0
- package/website/src/examples/fetch/b.txt +1 -0
- package/website/src/examples/fetch/index.tsx +9 -0
- package/website/src/examples/form-data/FormDataExample.jsx +119 -0
- package/website/src/examples/form-data/index.tsx +12 -0
- package/website/src/examples/form-data/storage.ts +27 -0
- package/website/src/examples/forward-ref/ForwardRefExample.tsx +55 -0
- package/website/src/examples/forward-ref/index.tsx +9 -0
- package/website/src/examples/hello-world/HelloWorld.example.jsx +6 -0
- package/website/src/examples/hello-world/index.tsx +9 -0
- package/website/src/examples/hooks-interop/HooksInterop.example.tsx +42 -0
- package/website/src/examples/hooks-interop/index.tsx +9 -0
- package/website/src/examples/passthrough-props/PassThroughPropsExample.jsx +57 -0
- package/website/src/examples/passthrough-props/index.tsx +11 -0
- package/website/src/examples/reactive-state/ReactiveState.example.jsx +43 -0
- package/website/src/examples/reactive-state/index.ts +9 -0
- package/website/src/examples/readme-examples/README.mdx +0 -0
- package/website/src/examples/readme-examples/index.ts +11 -0
- package/website/src/examples/shared-state/SharedState.example.tsx +59 -0
- package/website/src/examples/shared-state/index.tsx +9 -0
- package/website/src/examples/simple/Counter.example.tsx +14 -0
- package/website/src/examples/simple/index.tsx +9 -0
- package/website/src/examples/sync/Sync.example.tsx +9 -0
- package/website/src/examples/sync/index.tsx +9 -0
- package/website/src/examples/tick/TickExample.jsx +51 -0
- package/website/src/examples/tick/index.ts +9 -0
- package/website/src/examples/todo-app/TodoApp.example.tsx +88 -0
- package/website/src/examples/todo-app/index.tsx +12 -0
- package/website/src/examples/todo-app/storage.ts +27 -0
- package/website/src/examples/use-element/UseElementExample.tsx +70 -0
- package/website/src/examples/use-element/index.tsx +9 -0
- package/website/src/examples/use-observable/search/SearchExample.tsx +82 -0
- package/website/src/examples/use-observable/search/index.tsx +8 -0
- package/website/src/examples/use-observable/use-observable/UseObservableExample.tsx +70 -0
- package/website/src/examples/use-observable/use-observable/index.tsx +9 -0
- package/website/src/index.html +10 -0
- package/website/src/mdx-components.tsx +74 -0
- package/website/src/pages/Api/Api.mdx +134 -0
- package/website/src/pages/Api/ApiPage.tsx +25 -0
- package/website/src/pages/Examples/Examples.tsx +105 -0
- package/website/src/pages/Examples/ExamplesPage.tsx +13 -0
- package/website/src/pages/Guide/Guide.mdx +275 -0
- package/website/src/pages/Guide/GuidePage.tsx +25 -0
- package/website/src/pages/Index/IndexPage.tsx +50 -0
- package/website/src/pages/Index/ReactRxReadme.md +20 -0
- package/website/src/pages/NotFound.tsx +3 -0
- package/website/src/pages/pages.ts +46 -0
- package/website/src/pages/styles.tsx +24 -0
- package/website/src/theme.ts +61 -0
- package/website/src/utils/parseCodeFenceHeader.ts +32 -0
- package/website/tsconfig.json +30 -0
- package/website/vercel.json +4 -0
- package/website/webpack/config.js +5 -0
- package/website/webpack/createConfig.js +95 -0
- package/website/webpack/mdx-toc-loader.js +38 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
const path = require('path')
|
|
2
|
+
const CopyPlugin = require('copy-webpack-plugin')
|
|
3
|
+
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
|
4
|
+
const webpack = require('webpack')
|
|
5
|
+
const {CleanWebpackPlugin} = require('clean-webpack-plugin')
|
|
6
|
+
|
|
7
|
+
module.exports = function createConfig(env) {
|
|
8
|
+
return {
|
|
9
|
+
mode: env,
|
|
10
|
+
entry: './src/entries/main.tsx',
|
|
11
|
+
output: {
|
|
12
|
+
path: path.resolve(__dirname, '..', 'public'),
|
|
13
|
+
filename: '[name]-[hash].js'
|
|
14
|
+
},
|
|
15
|
+
resolve: {
|
|
16
|
+
extensions: ['.tsx', '.ts', '.js']
|
|
17
|
+
},
|
|
18
|
+
plugins: [
|
|
19
|
+
new CleanWebpackPlugin(),
|
|
20
|
+
env === 'development' && new webpack.ProgressPlugin(),
|
|
21
|
+
new CopyPlugin({
|
|
22
|
+
patterns: ['a', 'b'].map((n) => ({
|
|
23
|
+
from: `src/examples/fetch/${n}.txt`,
|
|
24
|
+
to: `${n}.txt`
|
|
25
|
+
}))
|
|
26
|
+
}),
|
|
27
|
+
new HtmlWebpackPlugin({
|
|
28
|
+
template: 'src/index.html',
|
|
29
|
+
inject: true
|
|
30
|
+
})
|
|
31
|
+
].filter(Boolean),
|
|
32
|
+
node: {
|
|
33
|
+
global: true,
|
|
34
|
+
fs: 'empty',
|
|
35
|
+
__filename: 'mock',
|
|
36
|
+
__dirname: 'mock'
|
|
37
|
+
},
|
|
38
|
+
module: {
|
|
39
|
+
rules: [
|
|
40
|
+
{
|
|
41
|
+
test: /\.([tj])sx?$/,
|
|
42
|
+
use: 'babel-loader',
|
|
43
|
+
exclude: /node_modules/
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
test: /\.mdx?$/,
|
|
47
|
+
use: ['babel-loader', path.resolve(__dirname, './mdx-toc-loader.js')]
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
test: /\.html$/,
|
|
51
|
+
use: 'html-loader'
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
test: /\.css$/i,
|
|
55
|
+
use: ['style-loader', 'css-loader']
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
...(env === 'development' && {
|
|
60
|
+
devServer: {
|
|
61
|
+
port: 3000,
|
|
62
|
+
host: '0.0.0.0',
|
|
63
|
+
historyApiFallback: true,
|
|
64
|
+
disableHostCheck: true
|
|
65
|
+
}
|
|
66
|
+
}),
|
|
67
|
+
devtool: env === 'development' ? 'source-map' : false,
|
|
68
|
+
...(env === 'production' && {
|
|
69
|
+
optimization: {
|
|
70
|
+
usedExports: true,
|
|
71
|
+
minimize: true,
|
|
72
|
+
splitChunks: {
|
|
73
|
+
chunks: 'async',
|
|
74
|
+
minSize: 30000,
|
|
75
|
+
maxSize: 0,
|
|
76
|
+
minChunks: 1,
|
|
77
|
+
maxAsyncRequests: 6,
|
|
78
|
+
maxInitialRequests: 4,
|
|
79
|
+
automaticNameDelimiter: '~',
|
|
80
|
+
cacheGroups: {
|
|
81
|
+
defaultVendors: {
|
|
82
|
+
test: /[\\/]node_modules[\\/]/,
|
|
83
|
+
priority: -10
|
|
84
|
+
},
|
|
85
|
+
default: {
|
|
86
|
+
minChunks: 2,
|
|
87
|
+
priority: -20,
|
|
88
|
+
reuseExistingChunk: true
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
})
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const mdx = require('@mdx-js/mdx')
|
|
2
|
+
const toc = require('markdown-toc')
|
|
3
|
+
const slug = require('remark-slug')
|
|
4
|
+
const ghSlugger = require('github-slugger')
|
|
5
|
+
const emoji = require('remark-emoji')
|
|
6
|
+
|
|
7
|
+
const slugify = ghSlugger()
|
|
8
|
+
|
|
9
|
+
module.exports = async function MdxTocLoader(src) {
|
|
10
|
+
const callback = this.async()
|
|
11
|
+
|
|
12
|
+
if (!callback) {
|
|
13
|
+
return
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const mdxConfig = {
|
|
17
|
+
skipExport: true,
|
|
18
|
+
remarkPlugins: [emoji, slug]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const tocResult = toc(src, {slugify})
|
|
22
|
+
|
|
23
|
+
const compiled = mdx(src, mdxConfig)
|
|
24
|
+
const compiledToc = mdx(tocResult.content, mdxConfig)
|
|
25
|
+
|
|
26
|
+
const code = `/* @jsx mdx */
|
|
27
|
+
import React from 'react';
|
|
28
|
+
import { mdx } from '@mdx-js/react'
|
|
29
|
+
export default ${iife(await compiled)};
|
|
30
|
+
export const Toc = ${iife(await compiledToc)}
|
|
31
|
+
`
|
|
32
|
+
return callback(null, code)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function iife(body) {
|
|
36
|
+
return `(function() {${body}
|
|
37
|
+
return MDXContent})()`
|
|
38
|
+
}
|