react-rx 1.0.0-beta.6 → 2.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.
Files changed (128) hide show
  1. package/.idea/compiler.xml +1 -1
  2. package/.idea/inspectionProfiles/Project_Default.xml +1 -0
  3. package/.idea/markdown.xml +9 -0
  4. package/.idea/misc.xml +0 -6
  5. package/dist/cjs/WithObservable.js +3 -3
  6. package/dist/cjs/displayName.js +1 -1
  7. package/dist/cjs/reactiveComponent.js +6 -6
  8. package/dist/cjs/useAsObservable.js +10 -18
  9. package/dist/cjs/useObservable.js +26 -31
  10. package/dist/cjs/useObservableCallback.js +4 -4
  11. package/dist/cjs/useWithObservable.js +2 -2
  12. package/dist/cjs/utils.js +7 -7
  13. package/dist/cjs/withPropsStream.js +8 -4
  14. package/dist/es2015/useAsObservable.js +10 -18
  15. package/dist/es2015/useObservable.js +24 -31
  16. package/dist/esm/displayName.js +1 -1
  17. package/dist/esm/useAsObservable.js +10 -18
  18. package/dist/esm/useObservable.js +26 -31
  19. package/package.json +5 -3
  20. package/src/useAsObservable.ts +13 -18
  21. package/src/useObservable.ts +39 -34
  22. package/.idea/workspace.xml +0 -228
  23. package/jest.config.js +0 -5
  24. package/website/.babelrc +0 -21
  25. package/website/.prettierrc +0 -7
  26. package/website/README.mdx +0 -1
  27. package/website/package.json +0 -84
  28. package/website/src/@types/babel.d.ts +0 -4
  29. package/website/src/@types/mdx.d.ts +0 -11
  30. package/website/src/@types/react-css-burger.d.ts +0 -4
  31. package/website/src/App.tsx +0 -68
  32. package/website/src/components/Header.tsx +0 -118
  33. package/website/src/components/Link.tsx +0 -18
  34. package/website/src/components/LoadPage.tsx +0 -60
  35. package/website/src/components/Sidebar.tsx +0 -88
  36. package/website/src/components/logos/Github.tsx +0 -10
  37. package/website/src/components/logos/React.tsx +0 -27
  38. package/website/src/components/logos/ReactRxLogo.tsx +0 -39
  39. package/website/src/components/logos/RxJs.tsx +0 -69
  40. package/website/src/components/repl/Checkerboard.tsx +0 -25
  41. package/website/src/components/repl/CodeBlock.tsx +0 -147
  42. package/website/src/components/repl/CodeMirror.tsx +0 -37
  43. package/website/src/components/repl/CodeMirrorMode.tsx +0 -67
  44. package/website/src/components/repl/EvalCode.tsx +0 -55
  45. package/website/src/components/repl/Prelude.tsx +0 -50
  46. package/website/src/components/repl/ShowError.tsx +0 -27
  47. package/website/src/components/repl/codemirror-lib.ts +0 -8
  48. package/website/src/components/repl/codemirror-theme.css +0 -131
  49. package/website/src/components/repl/compile/babel.ts +0 -21
  50. package/website/src/components/repl/eval/evalCallback.ts +0 -27
  51. package/website/src/components/repl/eval/evalCode.ts +0 -7
  52. package/website/src/components/repl/eval/evalExpression.ts +0 -4
  53. package/website/src/components/repl/eval/evalReactDomRender.ts +0 -23
  54. package/website/src/components/repl/index.ts +0 -1
  55. package/website/src/components/repl/runMode.ts +0 -42
  56. package/website/src/datastores/location.ts +0 -14
  57. package/website/src/datastores/page.ts +0 -11
  58. package/website/src/datastores/pageTransition.ts +0 -97
  59. package/website/src/entries/main.css +0 -2
  60. package/website/src/entries/main.tsx +0 -6
  61. package/website/src/examples/FizzBuzz/FizzBuzzExample.tsx +0 -39
  62. package/website/src/examples/FizzBuzz/index.tsx +0 -9
  63. package/website/src/examples/_utils/globalScope.ts +0 -45
  64. package/website/src/examples/animation/AnimationExample.tsx +0 -152
  65. package/website/src/examples/animation/easings.ts +0 -0
  66. package/website/src/examples/animation/index.tsx +0 -15
  67. package/website/src/examples/context/Context.example.jsx +0 -67
  68. package/website/src/examples/context/index.tsx +0 -9
  69. package/website/src/examples/errors/Errors.example.jsx +0 -69
  70. package/website/src/examples/errors/index.tsx +0 -9
  71. package/website/src/examples/event-handlers/EventHandlersExample.tsx +0 -48
  72. package/website/src/examples/event-handlers/index.tsx +0 -9
  73. package/website/src/examples/fetch/FetchExample.jsx +0 -43
  74. package/website/src/examples/fetch/a.txt +0 -1
  75. package/website/src/examples/fetch/b.txt +0 -1
  76. package/website/src/examples/fetch/index.tsx +0 -9
  77. package/website/src/examples/form-data/FormDataExample.jsx +0 -119
  78. package/website/src/examples/form-data/index.tsx +0 -12
  79. package/website/src/examples/form-data/storage.ts +0 -27
  80. package/website/src/examples/forward-ref/ForwardRefExample.tsx +0 -55
  81. package/website/src/examples/forward-ref/index.tsx +0 -9
  82. package/website/src/examples/hello-world/HelloWorld.example.jsx +0 -6
  83. package/website/src/examples/hello-world/index.tsx +0 -9
  84. package/website/src/examples/hooks-interop/HooksInterop.example.tsx +0 -42
  85. package/website/src/examples/hooks-interop/index.tsx +0 -9
  86. package/website/src/examples/passthrough-props/PassThroughPropsExample.jsx +0 -57
  87. package/website/src/examples/passthrough-props/index.tsx +0 -11
  88. package/website/src/examples/reactive-state/ReactiveState.example.jsx +0 -43
  89. package/website/src/examples/reactive-state/index.ts +0 -9
  90. package/website/src/examples/readme-examples/README.mdx +0 -0
  91. package/website/src/examples/readme-examples/index.ts +0 -11
  92. package/website/src/examples/shared-state/SharedState.example.tsx +0 -59
  93. package/website/src/examples/shared-state/index.tsx +0 -9
  94. package/website/src/examples/simple/Counter.example.tsx +0 -14
  95. package/website/src/examples/simple/index.tsx +0 -9
  96. package/website/src/examples/sync/Sync.example.tsx +0 -9
  97. package/website/src/examples/sync/index.tsx +0 -9
  98. package/website/src/examples/tick/TickExample.jsx +0 -51
  99. package/website/src/examples/tick/index.ts +0 -9
  100. package/website/src/examples/todo-app/TodoApp.example.tsx +0 -88
  101. package/website/src/examples/todo-app/index.tsx +0 -12
  102. package/website/src/examples/todo-app/storage.ts +0 -27
  103. package/website/src/examples/use-element/UseElementExample.tsx +0 -70
  104. package/website/src/examples/use-element/index.tsx +0 -9
  105. package/website/src/examples/use-observable/search/SearchExample.tsx +0 -82
  106. package/website/src/examples/use-observable/search/index.tsx +0 -8
  107. package/website/src/examples/use-observable/use-observable/UseObservableExample.tsx +0 -70
  108. package/website/src/examples/use-observable/use-observable/index.tsx +0 -9
  109. package/website/src/index.html +0 -10
  110. package/website/src/mdx-components.tsx +0 -74
  111. package/website/src/pages/Api/Api.mdx +0 -134
  112. package/website/src/pages/Api/ApiPage.tsx +0 -25
  113. package/website/src/pages/Examples/Examples.tsx +0 -105
  114. package/website/src/pages/Examples/ExamplesPage.tsx +0 -13
  115. package/website/src/pages/Guide/Guide.mdx +0 -275
  116. package/website/src/pages/Guide/GuidePage.tsx +0 -25
  117. package/website/src/pages/Index/IndexPage.tsx +0 -50
  118. package/website/src/pages/Index/ReactRxReadme.md +0 -20
  119. package/website/src/pages/NotFound.tsx +0 -3
  120. package/website/src/pages/pages.ts +0 -46
  121. package/website/src/pages/styles.tsx +0 -24
  122. package/website/src/theme.ts +0 -61
  123. package/website/src/utils/parseCodeFenceHeader.ts +0 -32
  124. package/website/tsconfig.json +0 -30
  125. package/website/vercel.json +0 -4
  126. package/website/webpack/config.js +0 -5
  127. package/website/webpack/createConfig.js +0 -95
  128. package/website/webpack/mdx-toc-loader.js +0 -38
@@ -1,50 +0,0 @@
1
- import * as React from 'react'
2
- import styled from 'styled-components'
3
- import {CodeMirrorMode} from './CodeMirrorMode'
4
-
5
- const Details = styled.details`
6
- text-align: right;
7
- white-space: pre;
8
- background-color: #1f222a;
9
- line-height: 1.4em;
10
- border: 0;
11
- box-sizing: border-box;
12
- `
13
-
14
- const Summary = styled.summary`
15
- background-color: #242831;
16
- display: inline-block;
17
- color: #65737e;
18
- font-size: 0.8em;
19
- border-radius: 2px 2px 0 0;
20
- margin: 1px 0 0 0;
21
- text-transform: uppercase;
22
- padding: 0.4em 0.9em;
23
- font-family: source-code-pro, Menlo, Monaco, Consolas, Courier New, monospace;
24
- -webkit-font-smoothing: antialiased;
25
- outline: none;
26
- `
27
-
28
- const StyledCodeMirrorMode = styled(CodeMirrorMode)`
29
- opacity: 0.7;
30
- text-align: left;
31
- `
32
-
33
- interface Props {
34
- mode: any
35
- value: string
36
- }
37
-
38
- export const Prelude = (props: Props) => {
39
- const [isOpen, setOpen] = React.useState(false)
40
- return (
41
- <Details>
42
- <Summary onClick={() => setOpen(current => !current)}>
43
- {isOpen ? 'hide prelude' : 'show prelude'}
44
- </Summary>
45
- <StyledCodeMirrorMode mode={props.mode}>
46
- {props.value}
47
- </StyledCodeMirrorMode>
48
- </Details>
49
- )
50
- }
@@ -1,27 +0,0 @@
1
- import * as React from 'react'
2
- import styled from 'styled-components'
3
-
4
- interface Props {
5
- title: string
6
- children: React.ReactNode
7
- className?: string
8
- }
9
-
10
- const Pre = styled.pre`
11
- color: rgb(255, 100, 100);
12
- `
13
-
14
- const Heading = styled.h2`
15
- padding: 3px:
16
- color: #fff
17
- padding: 8px;
18
- `
19
-
20
- export function ShowError(props: Props) {
21
- return (
22
- <div className={props.className}>
23
- <Heading>{props.title}</Heading>
24
- <Pre>{props.children}</Pre>
25
- </div>
26
- )
27
- }
@@ -1,8 +0,0 @@
1
- import * as codemirror from 'codemirror'
2
- import 'codemirror/mode/javascript/javascript'
3
- import 'codemirror/mode/jsx/jsx'
4
- import 'codemirror/addon/selection/active-line'
5
- import 'codemirror/addon/edit/matchbrackets'
6
- import 'codemirror/addon/edit/matchtags'
7
-
8
- export default codemirror
@@ -1,131 +0,0 @@
1
- .cm-s-custom.CodeMirror {
2
- background: rgb(32, 35, 42);
3
- color: #f8f8f2;
4
- }
5
-
6
- .cm-s-custom div.CodeMirror-selected {
7
- background: rgba(101, 115, 126, 0.33);
8
- }
9
-
10
- .cm-s-custom .CodeMirror-line::selection,
11
- .cm-s-custom .CodeMirror-line > span::selection,
12
- .cm-s-custom .CodeMirror-line > span > span::selection {
13
- background: rgba(101, 115, 126, 0.33);
14
- }
15
-
16
- .cm-s-custom .CodeMirror-line::-moz-selection,
17
- .cm-s-custom .CodeMirror-line > span::-moz-selection,
18
- .cm-s-custom .CodeMirror-line > span > span::-moz-selection {
19
- background: rgba(101, 115, 126, 0.33);
20
- }
21
-
22
- .cm-s-custom .CodeMirror-gutters {
23
- background: #304148;
24
- border-right: 10px;
25
- }
26
-
27
- .cm-s-custom .CodeMirror-guttermarker {
28
- color: white;
29
- }
30
-
31
- .cm-s-custom .CodeMirror-guttermarker-subtle {
32
- color: #d0d0d0;
33
- }
34
-
35
- .cm-s-custom .CodeMirror-linenumber {
36
- color: #d0d0d0;
37
- }
38
-
39
- .cm-s-custom .CodeMirror-cursor {
40
- border-left: 1px solid #f8f8f0;
41
- }
42
-
43
- .cm-s-custom span.cm-comment {
44
- color: #65737e;
45
- }
46
-
47
- .cm-s-custom span.cm-atom {
48
- color: #c594c5;
49
- }
50
-
51
- .cm-s-custom span.cm-number {
52
- color: #f99157;
53
- }
54
-
55
- .cm-s-custom span.cm-type {
56
- color: #48aab5;
57
- }
58
-
59
- .cm-s-custom span.cm-property {
60
- color: rgb(121, 182, 242);
61
- }
62
-
63
- .cm-s-custom span.cm-attribute,
64
- .cm-s-custom span.cm-keyword {
65
- color: rgb(197, 165, 197);
66
- }
67
-
68
- .cm-s-custom span.cm-builtin {
69
- color: #66d9ef;
70
- }
71
-
72
- .cm-s-custom span.cm-string {
73
- color: #8dc891;
74
- }
75
-
76
- .cm-s-custom span.cm-variable {
77
- color: #d8d8d8;
78
- }
79
-
80
- .cm-s-custom span.cm-variable-2,
81
- .cm-s-custom span.cm-variable-3 {
82
- color: #f8f8f2;
83
- }
84
-
85
- .cm-s-custom span.cm-def {
86
- color: #fac863;
87
- }
88
-
89
- .cm-s-custom span.cm-bracket {
90
- color: #5fb3b3;
91
- }
92
-
93
- .cm-s-custom span.cm-tag {
94
- color: rgb(252, 146, 158);
95
- }
96
-
97
- .cm-s-custom span.cm-tag.cm-bracket {
98
- color: rgb(88, 200, 252);
99
- }
100
-
101
- .cm-s-custom span.cm-header {
102
- color: #c594c5;
103
- }
104
-
105
- .cm-s-custom span.cm-link {
106
- color: #c594c5;
107
- }
108
-
109
- .cm-s-custom span.cm-error {
110
- background: #c594c5;
111
- color: #f8f8f0;
112
- }
113
-
114
- .cm-s-custom .CodeMirror-activeline-background {
115
- background: rgba(101, 115, 126, 0.1);
116
- }
117
-
118
- .cm-s-custom .CodeMirror-nonmatchingbracket {
119
- color: #fa87b5 !important;
120
- }
121
-
122
- .cm-s-custom .CodeMirror-matchingbracket {
123
- color: #fa87b5 !important;
124
- background-color: rgba(255, 255, 255, 0.22) !important;
125
- border-radius: 2px;
126
- }
127
-
128
- .cm-s-custom .CodeMirror-matchingtag {
129
- background-color: rgba(255, 255, 255, 0.1) !important;
130
- border-radius: 2px;
131
- }
@@ -1,21 +0,0 @@
1
- import * as babel from '@babel/standalone'
2
- import transformTs from '@babel/plugin-transform-typescript'
3
- import transformJsx from '@babel/plugin-transform-react-jsx'
4
- import optionalChaining from '@babel/plugin-proposal-optional-chaining'
5
-
6
- interface Options {
7
- filename?: string
8
- plugins?: any[]
9
- }
10
-
11
- export function compile(code: string, options: Options = {}) {
12
- return babel.transform(code, {
13
- filename: options.filename || 'Unknown.tsx',
14
- plugins: [
15
- ...(options.plugins || []),
16
- optionalChaining,
17
- [transformTs, {allExtensions: true, isTSX: true}],
18
- transformJsx
19
- ]
20
- })
21
- }
@@ -1,27 +0,0 @@
1
- import {evalCode} from './evalCode'
2
-
3
- export const evalCallback = (
4
- code: string,
5
- callbackName = 'callback',
6
- scope = {}
7
- ): any => {
8
- let renderCount = 0
9
- let renderRes = null
10
-
11
- const callback = (arg: any) => {
12
- renderCount++
13
- renderRes = arg
14
- }
15
-
16
- evalCode(code, {...scope, [callbackName]: callback})
17
-
18
- if (renderCount === 0) {
19
- throw new Error(`${callbackName}() was not called`)
20
- }
21
-
22
- if (renderCount > 1) {
23
- throw new Error(`${callbackName}() was called more than once`)
24
- }
25
-
26
- return renderRes
27
- }
@@ -1,7 +0,0 @@
1
- export const evalCode = (code: string, scope: {[v: string]: any}) => {
2
- const scopeKeys = Object.keys(scope)
3
- const scopeValues = scopeKeys.map(key => scope[key])
4
- // eslint-disable-next-line no-new-func
5
- const res = new Function(...scopeKeys, code)
6
- return res(...scopeValues)
7
- }
@@ -1,4 +0,0 @@
1
- import {evalCode} from './evalCode'
2
-
3
- export const evalExpression = (code: string, scope = {}) =>
4
- evalCode(`return ${code}`, scope)
@@ -1,23 +0,0 @@
1
- import {evalCode} from './evalCode'
2
-
3
- export const evalReactDomRender = (code: string, scope = {}): any => {
4
- let renderCount = 0
5
- let renderRes = null
6
-
7
- const callback = (arg: any) => {
8
- renderCount++
9
- renderRes = arg
10
- }
11
-
12
- evalCode(code, {...scope, ReactDOM: {render: callback}})
13
-
14
- if (renderCount === 0) {
15
- throw new Error(`ReactDOM.render() was never called`)
16
- }
17
-
18
- if (renderCount > 1) {
19
- throw new Error(`ReactDOM.render() was called more than once`)
20
- }
21
-
22
- return renderRes
23
- }
@@ -1 +0,0 @@
1
- export {CodeBlock} from './CodeBlock'
@@ -1,42 +0,0 @@
1
- import {Mode} from 'codemirror'
2
- import CodeMirror from './codemirror-lib'
3
- import {Observable} from 'rxjs'
4
-
5
- interface Token {
6
- style: string | null
7
- token: string
8
- }
9
-
10
- export interface ModeSpec {
11
- name: string
12
-
13
- [key: string]: any
14
- }
15
-
16
- export function runMode(
17
- source: string,
18
- modespec: ModeSpec | null,
19
- options?: {state?: any; tabSize: number}
20
- ): Observable<Token[]> {
21
- return new Observable(subscriber => {
22
- const mode: Mode<any> = CodeMirror.getMode(CodeMirror.defaults, modespec)
23
- const lines = CodeMirror.splitLines(source)
24
- const state = (options && options.state) || CodeMirror.startState(mode)
25
-
26
- for (let i = 0, e = lines.length; i < e; ++i) {
27
- const tokens = []
28
- const stream = new CodeMirror.StringStream(lines[i])
29
- if (!stream.string && mode.blankLine) mode.blankLine(state)
30
- while (!stream.eol()) {
31
- const style = mode.token!(stream, state)
32
- tokens.push({token: stream.current(), style})
33
- stream.start = stream.pos
34
- }
35
- if (i !== lines.length - 1) {
36
- tokens.push({token: '\n', style: null})
37
- }
38
- subscriber.next(tokens)
39
- }
40
- subscriber.complete()
41
- })
42
- }
@@ -1,14 +0,0 @@
1
- import {createBrowserHistory, Location} from 'history'
2
- import {Observable} from 'rxjs'
3
- import {publishReplay, refCount} from 'rxjs/operators'
4
-
5
- const history = createBrowserHistory()
6
-
7
- export const location$ = new Observable<Location>((subscriber) => {
8
- subscriber.next(history.location)
9
- return history.listen((update) => subscriber.next(update.location))
10
- }).pipe(publishReplay(1), refCount())
11
-
12
- export const navigate = (url: string) => {
13
- history.push(url)
14
- }
@@ -1,11 +0,0 @@
1
- import {map} from 'rxjs/operators'
2
- import {location$} from './location'
3
- import {NOT_FOUND, Page, pages} from '../pages/pages'
4
- import {Observable} from 'rxjs'
5
-
6
- export const page$: Observable<Page> = location$.pipe(
7
- map(
8
- location =>
9
- pages.find(page => page.route === location.pathname) || NOT_FOUND
10
- )
11
- )
@@ -1,97 +0,0 @@
1
- import {
2
- map,
3
- publishReplay,
4
- refCount,
5
- scan,
6
- skip,
7
- switchMap,
8
- tap
9
- } from 'rxjs/operators'
10
- import {concat, from, Observable, of} from 'rxjs'
11
- import * as React from 'react'
12
- import {page$} from './page'
13
- import {Page} from '../pages/pages'
14
-
15
- interface PageTransition {
16
- title: string
17
- isTransitioning: boolean
18
- component: null | React.ComponentType<any>
19
- }
20
-
21
- interface TransitionStart {
22
- type: 'transitionStart'
23
- page: Page
24
- component: null
25
- }
26
-
27
- interface TransitionEnd {
28
- type: 'transitionEnd'
29
- page: Page
30
- component: React.ComponentType<any>
31
- }
32
-
33
- type TransitionEvent = TransitionStart | TransitionEnd
34
-
35
- interface TransitionState {
36
- isTransitioning: boolean
37
- prev: null | Page
38
- current: null | Page
39
- next: null | Page
40
- component: null | React.ComponentType
41
- }
42
-
43
- const transitionStart = (page: Page): TransitionStart => ({
44
- type: 'transitionStart',
45
- page,
46
- component: null
47
- })
48
-
49
- const transitionEnd = (page: Page) => (
50
- component: React.ComponentType<any>
51
- ): TransitionEnd => ({
52
- type: 'transitionEnd',
53
- page,
54
- component
55
- })
56
-
57
- const INITIAL_TRANSITION_STATE: TransitionState = {
58
- isTransitioning: true,
59
- component: null,
60
- next: null,
61
- current: null,
62
- prev: null
63
- }
64
-
65
- export const pageTransition$: Observable<TransitionState> = page$.pipe(
66
- switchMap(page =>
67
- concat(
68
- of(transitionStart(page)),
69
- from(page.load()).pipe(map(transitionEnd(page)))
70
- )
71
- ),
72
- scan(
73
- (
74
- acc: TransitionState,
75
- event: TransitionStart | TransitionEnd
76
- ): TransitionState => {
77
- return event.type === 'transitionStart'
78
- ? {
79
- isTransitioning: true,
80
- component: acc.component,
81
- prev: acc.next || acc.current,
82
- current: acc.current || null,
83
- next: event.page
84
- }
85
- : {
86
- isTransitioning: false,
87
- component: event.component,
88
- current: acc.next,
89
- next: null,
90
- prev: acc.current
91
- }
92
- },
93
- INITIAL_TRANSITION_STATE
94
- ),
95
- publishReplay(1),
96
- refCount()
97
- )
@@ -1,2 +0,0 @@
1
- @import '~codemirror/lib/codemirror.css';
2
- @import '../components/repl/codemirror-theme.css';
@@ -1,6 +0,0 @@
1
- import './main.css'
2
- import * as React from 'react'
3
- import * as ReactDOM from 'react-dom'
4
- import {App} from '../App'
5
-
6
- ReactDOM.render(<App />, document.getElementById('app'))
@@ -1,39 +0,0 @@
1
- import {
2
- map,
3
- React,
4
- ReactDOM,
5
- rxComponent,
6
- take,
7
- timer
8
- } from '../_utils/globalScope'
9
- //@endimport
10
-
11
- const FizzBuzzExample = rxComponent(
12
- timer(0, 500).pipe(
13
- map(n => n + 1),
14
- map(n => {
15
- const divBy3 = n % 3 === 0
16
- const divBy5 = n % 5 === 0
17
- const divBy3And5 = divBy3 && divBy5
18
- return divBy3And5
19
- ? 'Fizz Buzz'
20
- : divBy3
21
- ? 'Fizz'
22
- : divBy5
23
- ? 'Buzz'
24
- : String(n)
25
- }),
26
- // map((seq: string[], curr) => seq.concat(curr), []),
27
- map((n, i) => (
28
- <div key={n + i}>
29
- {i + 1}: {n}
30
- </div>
31
- )),
32
- take(100)
33
- )
34
- )
35
-
36
- ReactDOM.render(
37
- <FizzBuzzExample />,
38
- document.getElementById('fizz-buzz-example')
39
- )
@@ -1,9 +0,0 @@
1
- import {Example} from '../../pages/Examples/Examples'
2
-
3
- const fs = require('fs')
4
-
5
- export const FizzBuzzExample: Example = {
6
- id: 'fizz-buzz',
7
- title: 'Fizz Buzz',
8
- source: fs.readFileSync(`${__dirname}/FizzBuzzExample.tsx`, 'utf-8')
9
- }
@@ -1,45 +0,0 @@
1
- import * as React from 'react'
2
- import * as ReactDOM from 'react-dom'
3
- import * as RxJS from 'rxjs'
4
- import * as operators from 'rxjs/operators'
5
-
6
- const {of, from, concat, merge} = RxJS
7
- const {timer, interval, throwError, combineLatest, Observable} = RxJS
8
-
9
- const {map, filter, reduce, scan, tap} = operators
10
- const {concatMap, mergeMap, switchMap, mapTo} = operators
11
- const {startWith, catchError, take} = operators
12
- //@endimport
13
-
14
- export {of, from, timer, interval, concat, merge, throwError, combineLatest, Observable}
15
- export {
16
- map,
17
- filter,
18
- reduce,
19
- scan,
20
- concatMap,
21
- tap,
22
- mapTo,
23
- mergeMap,
24
- startWith,
25
- take,
26
- switchMap,
27
- catchError
28
- }
29
-
30
- export {React, ReactDOM}
31
- export {RxJS, operators}
32
-
33
- export {
34
- useObservable,
35
- useMemoObservable,
36
- rxComponent,
37
- context,
38
- handler,
39
- state,
40
- elementRef,
41
- forwardRef,
42
- useAsObservable
43
- } from 'react-rx'
44
-
45
- export {observableCallback} from 'observable-callback'