Skip to content

Commit

Permalink
style: missing files
Browse files Browse the repository at this point in the history
BREAKING CHANGE: Missing files, last build broken
  • Loading branch information
tdreyno committed Jun 1, 2021
1 parent 5ef3f99 commit e0036af
Show file tree
Hide file tree
Showing 9 changed files with 73 additions and 76 deletions.
8 changes: 3 additions & 5 deletions src/action.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,8 @@ export const Action = <T extends string, P>(type: T, payload: P) =>
new Action_(type, payload)
export type Action<T extends string, P> = Action_<T, P>

export type ActionName<
A extends Action<any, any>,
T = A["type"]
> = T extends string ? T : never
export type ActionName<A extends Action<any, any>, T = A["type"]> =
T extends string ? T : never

export type ActionPayload<A extends Action<any, any>> = A["payload"]

Expand Down Expand Up @@ -39,7 +37,7 @@ export const createAction = <T extends string, P = undefined>(
fn.is = (action: Action<any, any>): action is Action<T, P> =>
action.type === type

return (fn as unknown) as ActionCreator<T, P> & MatchAction<T, P>
return fn as unknown as ActionCreator<T, P> & MatchAction<T, P>
}

export const enter = createAction("Enter")
Expand Down
2 changes: 1 addition & 1 deletion src/context.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { StateTransition } from "./state"

export class History<
T extends StateTransition<any, any, any> = StateTransition<any, any, any>
T extends StateTransition<any, any, any> = StateTransition<any, any, any>,
> {
constructor(private items: Array<T>, private maxHistory = Infinity) {
if (items.length <= 0) {
Expand Down
28 changes: 15 additions & 13 deletions src/effect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ const RESERVED_EFFECTS = [

export const __internalEffect = <
D extends any,
F extends (context: Context) => void
F extends (context: Context) => void,
>(
label: string,
data: D,
Expand Down Expand Up @@ -72,20 +72,22 @@ export const unsubscribe = <T extends string>(key: T): Effect<T> =>
export const goBack = (): Effect<void> =>
__internalEffect("goBack", undefined, Task.empty)

const handleLog = <T extends Array<any>>(
msgs: T,
type: "log" | "error" | "warn",
logger: (...args: T) => void,
) => (context: Context) => {
if (context.customLogger) {
context.customLogger(msgs, type)
} else if (!context.disableLogging) {
logger(...msgs)
const handleLog =
<T extends Array<any>>(
msgs: T,
type: "log" | "error" | "warn",
logger: (...args: T) => void,
) =>
(context: Context) => {
if (context.customLogger) {
context.customLogger(msgs, type)
} else if (!context.disableLogging) {
logger(...msgs)
}

return Task.empty()
}

return Task.empty()
}

export const log = <T extends Array<any>>(...msgs: T): Effect<T> =>
__internalEffect("log", msgs, handleLog(msgs, "log", console.log))

Expand Down
2 changes: 1 addition & 1 deletion src/errors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export class MissingCurrentState extends Error {}
export class EnterExitMustBeSynchronous extends Error {}

export class UnknownStateReturnType<
T extends { toString(): string }
T extends { toString(): string },
> extends Error {
constructor(public item: T) {
super(`Returned an known effect type: ${item.toString()}`)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { ActionCreatorType, createAction } from "../../../../../action"

export const finishedLoading = createAction<"FinishedLoading", string>(
"FinishedLoading",
)
export const finishedLoading =
createAction<"FinishedLoading", string>("FinishedLoading")
export type FinishedLoading = ActionCreatorType<typeof finishedLoading>
16 changes: 6 additions & 10 deletions src/react/createFizzContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { BoundStateFn, stateWrapper, StateTransition } from "../state"

export interface CreateProps<
SM extends { [key: string]: BoundStateFn<any, any, any> },
AM extends { [key: string]: (...args: Array<any>) => Action<any, any> }
AM extends { [key: string]: (...args: Array<any>) => Action<any, any> },
> {
initialState: StateTransition<any, any, any>
children:
Expand All @@ -28,7 +28,7 @@ export interface CreateProps<

export interface ContextValue<
SM extends { [key: string]: BoundStateFn<any, any, any> },
AM extends { [key: string]: (...args: Array<any>) => Action<any, any> }
AM extends { [key: string]: (...args: Array<any>) => Action<any, any> },
> {
currentState: ReturnType<SM[keyof SM]>
context: Context
Expand All @@ -46,20 +46,16 @@ interface Options {

export function createFizzContext<
SM extends { [key: string]: BoundStateFn<any, any, any> },
AM extends { [key: string]: (...args: Array<any>) => Action<any, any> }
AM extends { [key: string]: (...args: Array<any>) => Action<any, any> },
>(
_states: SM,
actions: AM,
options: Partial<Options> = {
maxHistory: 5,
},
) {
const {
restartOnInitialStateChange,
maxHistory,
fallback,
disableLogging,
} = options
const { restartOnInitialStateChange, maxHistory, fallback, disableLogging } =
options

const parentContext = options.parent
? options.parent.Context
Expand Down Expand Up @@ -161,7 +157,7 @@ export function createFizzContext<

export const useMachine = <
SM extends { [key: string]: BoundStateFn<any, any, any> },
AM extends { [key: string]: (...args: Array<any>) => Action<any, any> }
AM extends { [key: string]: (...args: Array<any>) => Action<any, any> },
>(machine: {
Context: React.Context<ContextValue<SM, AM>>
}) => {
Expand Down
4 changes: 2 additions & 2 deletions src/runtime.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export interface Runtime {
currentState: () => StateTransition<any, any, any>
onContextChange: (fn: ContextChangeSubscriber) => void
bindActions: <
AM extends { [key: string]: (...args: Array<any>) => Action<any, any> }
AM extends { [key: string]: (...args: Array<any>) => Action<any, any> },
>(
actions: AM,
) => AM
Expand Down Expand Up @@ -238,7 +238,7 @@ export const createRuntime = (
}

const bindActions = <
AM extends { [key: string]: (...args: Array<any>) => Action<any, any> }
AM extends { [key: string]: (...args: Array<any>) => Action<any, any> },
>(
actions: AM,
): AM =>
Expand Down
82 changes: 42 additions & 40 deletions src/state.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export type StateReturn =
export interface StateTransition<
Name extends string,
A extends Action<any, any>,
Data extends any
Data extends any,
> {
name: Name
data: Data
Expand All @@ -43,7 +43,7 @@ export type StateTransitionToBoundStateFn<
S extends StateTransition<string, any, any>,
// N = S extends StateTransition<infer N, any, any> ? N : never,
// A = S extends StateTransition<any, infer A, any> ? A : never,
D = S extends StateTransition<any, any, infer D> ? D : never
D = S extends StateTransition<any, any, infer D> ? D : never,
> = BoundStateFn<any, any, D>

export const isStateTransition = (
Expand All @@ -60,7 +60,7 @@ export const isStateTransition = (
export type State<
Name extends string,
A extends Action<any, any>,
Data extends any
Data extends any,
> = (
action: A,
data: Data,
Expand All @@ -73,7 +73,7 @@ export type State<
export interface BoundStateFn<
Name extends string,
A extends Action<any, any>,
Data extends any = undefined
Data extends any = undefined,
> {
(...data: Data extends undefined ? [] : [Data]): StateTransition<
Name,
Expand All @@ -85,7 +85,7 @@ export interface BoundStateFn<

export type GetStateData<
S extends BoundStateFn<any, any, any>,
D = S extends BoundStateFn<any, any, infer D> ? D : never
D = S extends BoundStateFn<any, any, infer D> ? D : never,
> = D

interface Options {
Expand Down Expand Up @@ -117,7 +117,7 @@ const cloneDeep = (value: any): any => {
export const stateWrapper = <
Name extends string,
A extends Action<any, any>,
Data extends any = undefined
Data extends any = undefined,
>(
name: Name,
executor: State<Name, A, Data>,
Expand Down Expand Up @@ -154,66 +154,68 @@ export const stateWrapper = <
const reenter = (data: Data): StateTransition<Name, A, Data> => {
const bound = fn(data)
bound.mode = "append"
return (bound as unknown) as StateTransition<Name, A, Data>
return bound as unknown as StateTransition<Name, A, Data>
}

const update = (data: Data): StateTransition<Name, A, Data> => {
const bound = fn(data)
bound.mode = "update"
return (bound as unknown) as StateTransition<Name, A, Data>
return bound as unknown as StateTransition<Name, A, Data>
}

return (fn as unknown) as BoundStateFn<Name, A, Data>
return fn as unknown as BoundStateFn<Name, A, Data>
}

const matchAction = <Actions extends Action<string, any>, Data>(
handlers: {
[A in Actions as ActionName<A>]: (
const matchAction =
<Actions extends Action<string, any>, Data>(
handlers: {
[A in Actions as ActionName<A>]: (
data: Data,
payload: ActionPayload<A>,
utils: {
update: (data: Data) => StateTransition<string, Actions, Data>
reenter: (data: Data) => StateTransition<string, Actions, Data>
},
) => StateReturn | Array<StateReturn>
},
fallback?: (
data: Data,
payload: ActionPayload<A>,
utils: {
update: (data: Data) => StateTransition<string, Actions, Data>
reenter: (data: Data) => StateTransition<string, Actions, Data>
},
) => StateReturn | Array<StateReturn>
},
fallback?: (
data: Data,
utils: {
update: (data: Data) => StateTransition<string, Actions, Data>
reenter: (data: Data) => StateTransition<string, Actions, Data>
},
) => StateReturn | Array<StateReturn>,
) => (
action: Actions,
data: Data,
utils: {
update: (data: Data) => StateTransition<string, Actions, Data>
reenter: (data: Data) => StateTransition<string, Actions, Data>
},
): StateReturn | Array<StateReturn> | undefined => {
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
const handler = (handlers as never)[action.type] as (
) => StateReturn | Array<StateReturn>,
) =>
(
action: Actions,
data: Data,
payload: ActionPayload<Actions>,
utils: {
update: (data: Data) => StateTransition<string, Actions, Data>
reenter: (data: Data) => StateTransition<string, Actions, Data>
},
) => StateReturn | Array<StateReturn>
): StateReturn | Array<StateReturn> | undefined => {
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
const handler = (handlers as never)[action.type] as (
data: Data,
payload: ActionPayload<Actions>,
utils: {
update: (data: Data) => StateTransition<string, Actions, Data>
reenter: (data: Data) => StateTransition<string, Actions, Data>
},
) => StateReturn | Array<StateReturn>

if (!handler) {
return fallback ? fallback(data, utils) : undefined
}
if (!handler) {
return fallback ? fallback(data, utils) : undefined
}

return handler(data, action.payload, utils)
}
return handler(data, action.payload, utils)
}

let counter = 1

export const state = <
Actions extends Action<string, any>,
Data extends any = undefined
Data extends any = undefined,
>(
handlers: {
[A in Actions as ActionName<A>]: (
Expand Down
2 changes: 1 addition & 1 deletion src/subscriptions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Action, onFrame } from "./action"
export { Subscription }

export const onFrameSubscription = <A extends Action<any, any>>(
actionCreator: (ts: number) => A = ts => (onFrame(ts) as unknown) as A,
actionCreator: (ts: number) => A = ts => onFrame(ts) as unknown as A,
): Subscription<A> => {
const sub = new Subscription<A>()

Expand Down

0 comments on commit e0036af

Please sign in to comment.