Skip to content

Commit 1a0dc97

Browse files
committed
feat(compat): set up correct imports & get build working for rxjs-comapt
1 parent 70e562b commit 1a0dc97

File tree

139 files changed

+618
-516
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

139 files changed

+618
-516
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ typings/
1212

1313
# Generated
1414
dist/
15+
dist-compat/
1516
tmp/
1617
coverage/
1718
img/

.make-compat-package.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
"use strict";
2+
3+
let pkg = require('./compat/package.json');
4+
let fs = require('fs-extra');
5+
let mkdirp = require('mkdirp');
6+
let path = require('path');
7+
let klawSync = require('klaw-sync');
8+
let licenseTool = require('./tools/add-license-to-file');
9+
let addLicenseToFile = licenseTool.addLicenseToFile;
10+
let addLicenseTextToFile = licenseTool.addLicenseTextToFile;
11+
12+
const ROOT = 'dist-compat/';
13+
const CJS_ROOT = ROOT + 'cjs/compat/';
14+
const ESM5_ROOT = ROOT + 'esm5/compat/';
15+
const ESM2015_ROOT = ROOT + 'esm2015/compat/';
16+
const TYPE_ROOT = ROOT + 'typings/compat/';
17+
const PKG_ROOT = ROOT + 'package/';
18+
const CJS_PKG = PKG_ROOT + '';
19+
const ESM5_PKG = PKG_ROOT + '_esm5/';
20+
const ESM2015_PKG = PKG_ROOT + '_esm2015/';
21+
const UMD_PKG = PKG_ROOT + 'bundles/';
22+
const TYPE_PKG = PKG_ROOT;
23+
24+
// License info for minified files
25+
let licenseUrl = 'https://github.com/ReactiveX/RxJS/blob/master/LICENSE.txt';
26+
let license = 'Apache License 2.0 ' + licenseUrl;
27+
28+
// Recreate the distribution folder
29+
fs.removeSync(PKG_ROOT);
30+
mkdirp.sync(PKG_ROOT);
31+
32+
// Copy over the sources
33+
fs.copySync(TYPE_ROOT, TYPE_PKG);
34+
copySources(CJS_ROOT, CJS_PKG);
35+
copySources(ESM5_ROOT, ESM5_PKG, true);
36+
copySources(ESM2015_ROOT, ESM2015_PKG, true);
37+
38+
fs.copySync('compat/package.json', PKG_ROOT + '/package.json');
39+
40+
function copySources(rootDir, packageDir, ignoreMissing) {
41+
// If we are ignoring missing directories, early return when source doesn't exist
42+
if (!fs.existsSync(rootDir)) {
43+
if (ignoreMissing) {
44+
return;
45+
} else {
46+
throw "Source root dir does not exist!";
47+
}
48+
}
49+
// Copy over the CommonJS files
50+
fs.copySync(rootDir, packageDir);
51+
fs.copySync('./LICENSE.txt', packageDir + 'LICENSE.txt');
52+
fs.copySync('./compat/README.md', packageDir + 'README.md');
53+
}

compat/README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# RxJS Compatibility Package
2+
3+
This package is required to get backwards compatibility with RxJS pervious to version 6. It contains the imports to add operators to `Observable.prototype` and creation methods to `Observable`. This is what allows, for instance, dot-chaining:
4+
5+
```
6+
Observable.interval(1)
7+
.map(i => i * i)
8+
```
9+
10+
vs
11+
12+
```
13+
Observable.interval(1)
14+
.pipe(map(i => i * i))
15+
```

compat/index.ts renamed to compat/Rx.ts

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -157,23 +157,21 @@ export {
157157

158158
export {TestScheduler} from 'rxjs/testing';
159159

160-
export {Operator} from 'rxjs/internal/Operator';
161-
export {Subscriber} from 'rxjs/internal/Subscriber';
162-
export {AsyncSubject} from 'rxjs/internal/AsyncSubject';
163-
export {ConnectableObservable} from 'rxjs/internal/observable/ConnectableObservable';
164-
export {TimeoutError} from 'rxjs/internal/util/TimeoutError';
165-
export {TimeInterval} from 'rxjs/internal/patching/operator/timeInterval';
166-
export {Timestamp} from 'rxjs/internal/operators/timestamp';
167-
export {VirtualTimeScheduler} from 'rxjs/internal/scheduler/VirtualTimeScheduler';
168-
export {AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError} from 'rxjs/internal/observable/dom/AjaxObservable';
160+
export { Operator } from 'rxjs/internal/Operator';
161+
export { Subscriber } from 'rxjs/internal/Subscriber';
162+
export { AsyncSubject } from 'rxjs/internal/AsyncSubject';
163+
export { ConnectableObservable } from 'rxjs/internal/observable/ConnectableObservable';
164+
export { TimeoutError } from 'rxjs/internal/util/TimeoutError';
165+
export { TimeInterval } from 'rxjs/internal/patching/operator/timeInterval';
166+
export { Timestamp } from 'rxjs/internal/operators/timestamp';
167+
export { VirtualTimeScheduler } from 'rxjs/internal/scheduler/VirtualTimeScheduler';
168+
export { AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError } from 'rxjs/internal/observable/dom/AjaxObservable';
169+
import { AsapScheduler } from 'rxjs/internal/scheduler/AsapScheduler';
170+
import { AsyncScheduler } from 'rxjs/internal/scheduler/AsyncScheduler';
171+
import { QueueScheduler } from 'rxjs/internal/scheduler/QueueScheduler';
172+
import { AnimationFrameScheduler } from 'rxjs/internal/scheduler/AnimationFrameScheduler';
169173

170-
import {
171-
asapScheduler as asap,
172-
asyncScheduler as async,
173-
queueScheduler as queue,
174-
animationFrameScheduler as animationFrame,
175-
176-
} from 'rxjs';
174+
import { asapScheduler, asyncScheduler, queueScheduler, animationFrameScheduler } from 'rxjs';
177175

178176
import { rxSubscriber } from 'rxjs/internal/symbol/rxSubscriber';
179177
import { iterator } from 'rxjs/internal/symbol/iterator';
@@ -199,10 +197,10 @@ export const operators = _operators;
199197
* Use this for synchronizing with the platform's painting
200198
*/
201199
let Scheduler = {
202-
asap,
203-
queue,
204-
animationFrame,
205-
async
200+
asap: asapScheduler,
201+
queue: queueScheduler,
202+
animationFrame: animationFrameScheduler,
203+
async: asyncScheduler
206204
};
207205

208206
/**

compat/add/observable/bindCallback.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import { Observable } from '../../internal/Observable';
2-
import { bindCallback as staticBindCallback } from '../../internal/observable/bindCallback';
1+
import { Observable, bindCallback as staticBindCallback } from 'rxjs';
32

43
Observable.bindCallback = staticBindCallback;
54

6-
declare module '../../internal/Observable' {
5+
declare module 'rxjs/internal/Observable' {
76
namespace Observable {
87
export let bindCallback: typeof staticBindCallback;
98
}

compat/add/observable/bindNodeCallback.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import { Observable } from '../../internal/Observable';
2-
import { bindNodeCallback as staticBindNodeCallback } from '../../internal/observable/bindNodeCallback';
1+
import { Observable, bindNodeCallback as staticBindNodeCallback } from 'rxjs';
32

43
Observable.bindNodeCallback = staticBindNodeCallback;
54

6-
declare module '../../internal/Observable' {
5+
declare module 'rxjs/internal/Observable' {
76
namespace Observable {
87
export let bindNodeCallback: typeof staticBindNodeCallback;
98
}

compat/add/observable/combineLatest.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import { Observable } from '../../internal/Observable';
2-
import { combineLatest as combineLatestStatic } from '../../internal/observable/combineLatest';
1+
import { Observable, combineLatest as combineLatestStatic } from 'rxjs';
32

43
Observable.combineLatest = combineLatestStatic;
54

6-
declare module '../../internal/Observable' {
5+
declare module 'rxjs/internal/Observable' {
76
namespace Observable {
87
export let combineLatest: typeof combineLatestStatic;
98
}

compat/add/observable/concat.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import { Observable } from '../../internal/Observable';
2-
import { concat as concatStatic } from '../../internal/observable/concat';
1+
import { Observable, concat as concatStatic } from 'rxjs';
32

43
Observable.concat = concatStatic;
54

6-
declare module '../../internal/Observable' {
5+
declare module 'rxjs/internal/Observable' {
76
namespace Observable {
87
export let concat: typeof concatStatic;
98
}

compat/add/observable/defer.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { Observable } from '../../internal/Observable';
2-
import { defer as staticDefer } from '../../internal/observable/defer';
1+
import { Observable } from 'rxjs';
2+
import { defer as staticDefer } from 'rxjs/observable/defer';
33

44
Observable.defer = staticDefer;
55

6-
declare module '../../internal/Observable' {
6+
declare module 'rxjs/internal/Observable' {
77
namespace Observable {
88
export let defer: typeof staticDefer;
99
}

compat/add/observable/dom/ajax.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { Observable } from '../../../internal/Observable';
2-
import { ajax as staticAjax } from '../../../internal/observable/dom/ajax';
3-
import { AjaxCreationMethod } from '../../../internal/observable/dom/AjaxObservable';
1+
import { Observable } from 'rxjs';
2+
import { ajax as staticAjax } from 'rxjs/ajax';
3+
import { AjaxCreationMethod } from 'rxjs/internal/observable/dom/AjaxObservable';
44

55
Observable.ajax = staticAjax;
66

7-
declare module '../../../internal/Observable' {
7+
declare module 'rxjs/internal/Observable' {
88
namespace Observable {
99
export let ajax: AjaxCreationMethod;
1010
}

0 commit comments

Comments
 (0)