main repo

This commit is contained in:
Basilosaurusrex
2025-11-24 18:09:40 +01:00
parent b636ee5e70
commit f027651f9b
34146 changed files with 4436636 additions and 0 deletions

5
node_modules/use-sidecar/dist/es2019/config.d.ts generated vendored Normal file
View File

@@ -0,0 +1,5 @@
export interface IConfig {
onError(e: Error): void;
}
export declare const config: IConfig;
export declare const setConfig: (conf: Partial<IConfig>) => void;

6
node_modules/use-sidecar/dist/es2019/config.js generated vendored Normal file
View File

@@ -0,0 +1,6 @@
export const config = {
onError: e => console.error(e),
};
export const setConfig = (conf) => {
Object.assign(config, conf);
};

4
node_modules/use-sidecar/dist/es2019/env.d.ts generated vendored Normal file
View File

@@ -0,0 +1,4 @@
export declare const env: {
isNode: boolean;
forceCache: boolean;
};

5
node_modules/use-sidecar/dist/es2019/env.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { isNode } from 'detect-node-es';
export const env = {
isNode,
forceCache: false,
};

3
node_modules/use-sidecar/dist/es2019/exports.d.ts generated vendored Normal file
View File

@@ -0,0 +1,3 @@
import * as React from 'react';
import { SideCarComponent, SideCarMedium } from './types';
export declare function exportSidecar<T>(medium: SideCarMedium<T>, exported: React.ComponentType<T>): SideCarComponent<T>;

16
node_modules/use-sidecar/dist/es2019/exports.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
import * as React from 'react';
const SideCar = ({ sideCar, ...rest }) => {
if (!sideCar) {
throw new Error('Sidecar: please provide `sideCar` property to import the right car');
}
const Target = sideCar.read();
if (!Target) {
throw new Error('Sidecar medium not found');
}
return React.createElement(Target, { ...rest });
};
SideCar.isSideCarExport = true;
export function exportSidecar(medium, exported) {
medium.useMedium(exported);
return SideCar;
}

3
node_modules/use-sidecar/dist/es2019/hoc.d.ts generated vendored Normal file
View File

@@ -0,0 +1,3 @@
import * as React from 'react';
import { Importer, SideCarHOC } from './types';
export declare function sidecar<T>(importer: Importer<T>, errorComponent?: React.ReactNode): React.FunctionComponent<Omit<T, 'sideCar'> & SideCarHOC<Omit<T, 'sideCar'>>>;

14
node_modules/use-sidecar/dist/es2019/hoc.js generated vendored Normal file
View File

@@ -0,0 +1,14 @@
import * as React from 'react';
import { useSidecar } from './hook';
// eslint-disable-next-line @typescript-eslint/ban-types
export function sidecar(importer, errorComponent) {
const ErrorCase = () => errorComponent;
return function Sidecar(props) {
const [Car, error] = useSidecar(importer, props.sideCar);
if (error && errorComponent) {
return ErrorCase;
}
// @ts-expect-error type shenanigans
return Car ? React.createElement(Car, { ...props }) : null;
};
}

2
node_modules/use-sidecar/dist/es2019/hook.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
import { Importer, SideMedium } from './types';
export declare function useSidecar<T>(importer: Importer<T>, effect?: SideMedium<any>): [React.ComponentType<T> | null, Error | null];

41
node_modules/use-sidecar/dist/es2019/hook.js generated vendored Normal file
View File

@@ -0,0 +1,41 @@
import { useState, useEffect } from 'react';
import { env } from './env';
const cache = new WeakMap();
const NO_OPTIONS = {};
export function useSidecar(importer, effect) {
const options = (effect && effect.options) || NO_OPTIONS;
if (env.isNode && !options.ssr) {
return [null, null];
}
// eslint-disable-next-line react-hooks/rules-of-hooks
return useRealSidecar(importer, effect);
}
function useRealSidecar(importer, effect) {
const options = (effect && effect.options) || NO_OPTIONS;
const couldUseCache = env.forceCache || (env.isNode && !!options.ssr) || !options.async;
const [Car, setCar] = useState(couldUseCache ? () => cache.get(importer) : undefined);
const [error, setError] = useState(null);
useEffect(() => {
if (!Car) {
importer().then((car) => {
const resolved = effect ? effect.read() : car.default || car;
if (!resolved) {
console.error('Sidecar error: with importer', importer);
let error;
if (effect) {
console.error('Sidecar error: with medium', effect);
error = new Error('Sidecar medium was not found');
}
else {
error = new Error('Sidecar was not found in exports');
}
setError(() => error);
throw error;
}
cache.set(importer, resolved);
setCar(() => resolved);
}, (e) => setError(() => e));
}
}, []);
return [Car, error];
}

7
node_modules/use-sidecar/dist/es2019/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,7 @@
export { sidecar } from './hoc';
export { useSidecar } from './hook';
export { setConfig } from './config';
export { createMedium, createSidecarMedium } from './medium';
export { renderCar } from './renderProp';
export { exportSidecar } from './exports';
export type { SideCarComponent } from './types';

6
node_modules/use-sidecar/dist/es2019/index.js generated vendored Normal file
View File

@@ -0,0 +1,6 @@
export { sidecar } from './hoc';
export { useSidecar } from './hook';
export { setConfig } from './config';
export { createMedium, createSidecarMedium } from './medium';
export { renderCar } from './renderProp';
export { exportSidecar } from './exports';

3
node_modules/use-sidecar/dist/es2019/medium.d.ts generated vendored Normal file
View File

@@ -0,0 +1,3 @@
import { MiddlewareCallback, SideCarMedium, SideCarMediumOptions, SideMedium } from './types';
export declare function createMedium<T>(defaults?: T, middleware?: MiddlewareCallback<T>): Readonly<SideMedium<T>>;
export declare function createSidecarMedium<T = {}>(options?: SideCarMediumOptions): Readonly<SideCarMedium<T>>;

78
node_modules/use-sidecar/dist/es2019/medium.js generated vendored Normal file
View File

@@ -0,0 +1,78 @@
function ItoI(a) {
return a;
}
function innerCreateMedium(defaults, middleware = ItoI) {
let buffer = [];
let assigned = false;
const medium = {
read() {
if (assigned) {
throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');
}
if (buffer.length) {
return buffer[buffer.length - 1];
}
return defaults;
},
useMedium(data) {
const item = middleware(data, assigned);
buffer.push(item);
return () => {
buffer = buffer.filter((x) => x !== item);
};
},
assignSyncMedium(cb) {
assigned = true;
while (buffer.length) {
const cbs = buffer;
buffer = [];
cbs.forEach(cb);
}
buffer = {
push: (x) => cb(x),
filter: () => buffer,
};
},
assignMedium(cb) {
assigned = true;
let pendingQueue = [];
if (buffer.length) {
const cbs = buffer;
buffer = [];
cbs.forEach(cb);
pendingQueue = buffer;
}
const executeQueue = () => {
const cbs = pendingQueue;
pendingQueue = [];
cbs.forEach(cb);
};
const cycle = () => Promise.resolve().then(executeQueue);
cycle();
buffer = {
push: (x) => {
pendingQueue.push(x);
cycle();
},
filter: (filter) => {
pendingQueue = pendingQueue.filter(filter);
return buffer;
},
};
},
};
return medium;
}
export function createMedium(defaults, middleware = ItoI) {
return innerCreateMedium(defaults, middleware);
}
// eslint-disable-next-line @typescript-eslint/ban-types
export function createSidecarMedium(options = {}) {
const medium = innerCreateMedium(null);
medium.options = {
async: true,
ssr: false,
...options,
};
return medium;
}

8
node_modules/use-sidecar/dist/es2019/renderProp.d.ts generated vendored Normal file
View File

@@ -0,0 +1,8 @@
import * as React from 'react';
import { SideCarHOC } from './types';
declare type CombinedProps<T extends any[], K> = {
children: (...prop: T) => any;
} & K;
declare type RenderPropComponent<T extends any[], K> = React.ComponentType<CombinedProps<T, K>>;
export declare function renderCar<T extends any[], K, C = RenderPropComponent<T, K & Partial<SideCarHOC>>>(WrappedComponent: C, defaults: (props: K) => T): (props: CombinedProps<T, K>) => JSX.Element;
export {};

28
node_modules/use-sidecar/dist/es2019/renderProp.js generated vendored Normal file
View File

@@ -0,0 +1,28 @@
import * as React from 'react';
import { useState, useCallback, useEffect, useLayoutEffect } from 'react';
export function renderCar(WrappedComponent, defaults) {
function State({ stateRef, props }) {
const renderTarget = useCallback(function SideTarget(...args) {
useLayoutEffect(() => {
stateRef.current(args);
});
return null;
}, []);
// @ts-ignore
return React.createElement(WrappedComponent, { ...props, children: renderTarget });
}
const Children = React.memo(({ stateRef, defaultState, children }) => {
const [state, setState] = useState(defaultState.current);
useEffect(() => {
stateRef.current = setState;
}, []);
return children(...state);
}, () => true);
return function Combiner(props) {
const defaultState = React.useRef(defaults(props));
const ref = React.useRef((state) => (defaultState.current = state));
return (React.createElement(React.Fragment, null,
React.createElement(State, { stateRef: ref, props: props }),
React.createElement(Children, { stateRef: ref, defaultState: defaultState, children: props.children })));
};
}

47
node_modules/use-sidecar/dist/es2019/types.d.ts generated vendored Normal file
View File

@@ -0,0 +1,47 @@
import * as React from 'react';
export declare type removeCb = () => void;
export declare type MediumCallback<T> = (data: T) => any;
export declare type MiddlewareCallback<T> = (data: T, assigned: boolean) => T;
export declare type SidePush<T> = {
length?: number;
push(data: T): void;
filter(cb: (x: T) => boolean): SidePush<T>;
};
/**
* An object describing side medium
*/
export interface SideMedium<T> {
/**
* Pushes effect to the medium
* @param effect any information for real handler
*/
useMedium(effect: T): removeCb;
/**
* Assigns effect handler to the medium
* @param {Function(effect: T)} handler effect handler
*/
assignMedium(handler: MediumCallback<T>): void;
/**
* Assigns a synchronous effect handler to the medium, which would be executed right on call
* @param {Function(effect: T)} handler effect handler
*/
assignSyncMedium(handler: MediumCallback<T>): void;
/**
* reads the data stored in the medium
*/
read(): T | undefined;
options?: Record<string, any>;
}
export declare type DefaultOrNot<T> = {
default: T;
} | T;
export declare type Importer<T> = () => Promise<DefaultOrNot<React.ComponentType<T>>>;
export declare type SideCarMedium<T = {}> = SideMedium<React.ComponentType<T>>;
export declare type SideCarHOC<T = {}> = {
readonly sideCar: SideCarMedium<T>;
};
export declare type SideCarComponent<T> = React.FunctionComponent<T & SideCarHOC<T>>;
export declare type SideCarMediumOptions = {
async?: boolean;
ssr?: boolean;
};

1
node_modules/use-sidecar/dist/es2019/types.js generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};