hunk.code_window:  * @param config The configuration object for `connectable`.
    * @returns A "connectable" observable, that has a `connect()` method, that you must call to
    * connect the source to all consumers through the subject provided as the connector.
    */
   export function connectable<T>(source: ObservableInput<T>, config: ConnectableConfig<T> = DEFAULT_CONFIG): ConnectableObservableLike<T> {
     // The subscription representing the connection.
     let connection: Subscription | null = null;
     const { connector, resetOnDisconnect = true } = config;
  
hunk.labels: keep keep keep keep replace keep keep keep
hunk.after_edit: export function connectable<T>(source: ObservableInput<T>, config: ConnectableConfig<T> = DEFAULT_CONFIG): Connectable<T> {
  
hunk.file_path: src/internal/observable/connectable.ts
hunk.type: replace
file: import { of, NEVER } from 'rxjs';
  import { audit } from 'rxjs/operators';
  
  it('should infer correctly', () => {
    const o = of(1, 2, 3).pipe(audit(() => of('foo'))); // $ExpectType Observable<number>
    const p = of(1, 2, 3).pipe(audit(() => NEVER)); // $ExpectType Observable<number>
  });
  
  it('should infer correctly with a Promise', () => {
    const o = of(1, 2, 3).pipe(audit(() => new Promise<string>(() => {}))); // $ExpectType Observable<number>
  });
  
  it('should enforce types', () => {
    const o = of(1, 2, 3).pipe(audit()); // $ExpectError
    const p = of(1, 2, 3).pipe(audit((p: string) => of('foo'))); // $ExpectError
  });
  