Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up files, exports, dependencies #4974

Merged
merged 19 commits into from
Jul 29, 2024
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .knip.jsonc
with-heart marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"$schema": "https://unpkg.com/knip@5/schema.json",
"workspaces": {
".": {
"entry": ["scripts/*.js"],
"project": ["scripts/*.js"]
}
},
"ignore": [
// used for `#is-development` conditional import
"packages/**/{true,false}.ts",
// file acts as a type test
"packages/xstate-svelte/test/interpreterAsReadable.svelte"
],
"ignoreBinaries": ["svelte-check", "docs:build"],
"ignoreDependencies": [
// used by packages/xstate-svelte/test
"@tsconfig/svelte",
"@xstate-repo/jest-utils",
"@xstate-repo/jest-utils/setup",
"synckit",
// package.json#exports aren't added as entry points, because `dist/` is .gitignored
"react",
"xstate",
"@types/ws"
]
}
20 changes: 6 additions & 14 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
"typecheck": "tsc",
"test": "jest",
"test:core": "jest packages/core",
"dev": "node ./scripts/dev.js",
davidkpiano marked this conversation as resolved.
Show resolved Hide resolved
"changeset": "changeset",
"release": "changeset publish",
"version": "changeset version && node ./scripts/bump-peer-dep-ranges.js"
Expand All @@ -46,47 +45,40 @@
},
"homepage": "https://github.com/statelyai/xstate#readme",
"dependencies": {
"@actions/exec": "^1.0.2",
"@babel/core": "^7.23.3",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/preset-env": "^7.23.3",
"@babel/preset-react": "^7.23.3",
"@babel/preset-typescript": "^7.23.3",
"@changesets/changelog-github": "^0.4.8",
"@changesets/cli": "^2.26.2",
"@jest/types": "^29.6.3",
"@manypkg/cli": "^0.16.1",
"@manypkg/get-packages": "^1.1.3",
"@preconstruct/cli": "^2.8.1",
"@testing-library/jest-dom": "^6.1.4",
"@testing-library/vue": "^6.6.1",
"@types/jest": "^29.5.10",
"@types/node": "^12.11.1",
"@vue/compiler-sfc": "^3.0.11",
"@vue/vue3-jest": "^29.2.6",
"babel-jest": "^29.7.0",
"babel-preset-solid": "^1.8.4",
"gh-pages": "^2.0.1",
"husky": "^3.1.0",
"jest": "^29.7.0",
"jest-config": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jest-regex-util": "^29.6.3",
"jest-resolve": "^29.7.0",
"jest-snapshot": "^29.7.0",
"jest-watch-typeahead": "^2.2.2",
"knip": "https://pkg.pr.new/knip@bd16c98",
with-heart marked this conversation as resolved.
Show resolved Hide resolved
"lint-staged": "^8.2.1",
"markdown-it-codesandbox-embed": "^0.1.0",
"patch-package": "^6.5.1",
"prettier": "^3.1.0",
"prettier-plugin-jsdoc": "^1.3.0",
"spawn-command": "0.0.2-1",
"svelte-jester": "^2.3.2",
"synckit": "^0.8.5",
"tslib": "^2.3.1",
"tslint": "^5.11.0",
"typescript": "^5.4.2",
"vue": "^3.0.11",
"webpack-dev-middleware": "^3.6.0"
},
"resolutions": {
"**/tslib": "^2.3.1"
"vue": "^3.0.11"
},
"husky": {
"hooks": {
Expand Down
2 changes: 0 additions & 2 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,6 @@
"@scion-scxml/test-framework": "^2.0.15",
"@xstate-repo/jest-utils": "*",
"ajv": "^8.12.0",
"jsdom": "^14.0.0",
"jsdom-global": "^3.0.2",
"pkg-up": "^3.1.0",
"rxjs": "^7.8.0",
"xml-js": "^1.6.11"
Expand Down
3 changes: 1 addition & 2 deletions packages/core/src/StateMachine.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@ import type {
} from './types.ts';
import { resolveReferencedActor, toStatePath } from './utils.ts';

export const STATE_IDENTIFIER = '#';
export const WILDCARD = '*';
const STATE_IDENTIFIER = '#';

export class StateMachine<
TContext extends MachineContext,
Expand Down
1 change: 1 addition & 0 deletions packages/core/src/actions/stopChild.ts
Original file line number Diff line number Diff line change
Expand Up @@ -123,5 +123,6 @@ export function stopChild<
* Stops a child actor.
*
* @deprecated Use `stopChild(...)` instead
* @alias
*/
export const stop = stopChild;
4 changes: 2 additions & 2 deletions packages/core/src/actors/callback.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,13 +75,13 @@ export type CallbackActorRef<
TInput = NonReducibleUnknown
> = ActorRefFrom<CallbackActorLogic<TEvent, TInput>>;

export type Receiver<TEvent extends EventObject> = (
type Receiver<TEvent extends EventObject> = (
listener: {
bivarianceHack(event: TEvent): void;
}['bivarianceHack']
) => void;

export type InvokeCallback<
type InvokeCallback<
TEvent extends EventObject = AnyEventObject,
TSentEvent extends EventObject = AnyEventObject,
TInput = NonReducibleUnknown,
Expand Down
17 changes: 5 additions & 12 deletions packages/core/src/createActor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,17 +36,6 @@ import { toObserver } from './utils.ts';

export const $$ACTOR_TYPE = 1;

export type SnapshotListener<TLogic extends AnyActorLogic> = (
snapshot: SnapshotFrom<TLogic>
) => void;

export type EventListener<TEvent extends EventObject = EventObject> = (
event: TEvent
) => void;

export type Listener = () => void;
export type ErrorListener = (error: any) => void;

// those values are currently used by @xstate/react directly so it's important to keep the assigned values in sync
export enum ProcessingStatus {
NotStarted = 0,
Expand Down Expand Up @@ -817,8 +806,12 @@ export function createActor<TLogic extends AnyActorLogic>(
* options, if any.
*
* @deprecated Use `createActor` instead
* @alias
*/
export const interpret = createActor;

/** @deprecated Use `Actor` instead. */
/**
* @deprecated Use `Actor` instead.
* @alias
*/
export type Interpreter = typeof Actor;
37 changes: 0 additions & 37 deletions packages/core/src/dev/redux.ts

This file was deleted.

35 changes: 13 additions & 22 deletions packages/core/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,47 +1,38 @@
export * from './actions.ts';
export * from './actors/index.ts';
export { SimulatedClock } from './SimulatedClock.ts';
export { type Spawner } from './spawn.ts';
export { isMachineSnapshot, type MachineSnapshot } from './State.ts';
export { StateMachine } from './StateMachine.ts';
export { getStateNodes } from './stateUtils.ts';
export * from './types.ts';
export { waitFor } from './waitFor.ts';
import { createMachine } from './createMachine.ts';
export { getInitialSnapshot, getNextSnapshot } from './getNextSnapshot.ts';
import {
export { StateNode } from './StateNode.ts';
export * from './actions.ts';
export * from './actors/index.ts';
export { assertEvent } from './assert.ts';
export {
Actor,
createActor,
interpret,
type Interpreter
} from './createActor.ts';
import { StateNode } from './StateNode.ts';
// TODO: decide from where those should be exported
export { createMachine } from './createMachine.ts';
export { getInitialSnapshot, getNextSnapshot } from './getNextSnapshot.ts';
export { and, not, or, stateIn } from './guards.ts';
export { setup } from './setup.ts';
export type { ActorSystem } from './system.ts';
export type {
InspectedActorEvent,
InspectedEventEvent,
InspectedSnapshotEvent,
InspectionEvent
} from './inspection.ts';
export { setup } from './setup.ts';
export { type Spawner } from './spawn.ts';
export { getStateNodes } from './stateUtils.ts';
export type { ActorSystem } from './system.ts';
export { toPromise } from './toPromise.ts';
export * from './types.ts';
export {
getAllOwnEventDescriptors as __unsafe_getAllOwnEventDescriptors,
matchesState,
pathToStateValue,
toObserver
} from './utils.ts';
export {
Actor,
createActor,
createMachine,
interpret,
StateNode,
type Interpreter
};
export { assertEvent } from './assert.ts';
export { waitFor } from './waitFor.ts';

declare global {
interface SymbolConstructor {
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/inspection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export type InspectionEvent =
| InspectedMicrostepEvent
| InspectedActionEvent;

export interface BaseInspectionEventProperties {
interface BaseInspectionEventProperties {
rootId: string; // the session ID of the root
/**
* The relevant actorRef for the inspection event.
Expand All @@ -30,7 +30,7 @@ export interface InspectedSnapshotEvent extends BaseInspectionEventProperties {
snapshot: Snapshot<unknown>;
}

export interface InspectedMicrostepEvent extends BaseInspectionEventProperties {
interface InspectedMicrostepEvent extends BaseInspectionEventProperties {
type: '@xstate.microstep';
event: AnyEventObject; // { type: string, ... }
snapshot: Snapshot<unknown>;
Expand Down
12 changes: 0 additions & 12 deletions packages/core/src/memo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,3 @@ export function memo<T>(object: any, key: string, fn: () => T): T {

return memoizedData[key];
}

export function evict(object: any, key?: string): void {
if (!key) {
return void cache.delete(object);
}

const memoizedData = cache.get(object);

if (memoizedData) {
delete memoizedData[key];
}
}
20 changes: 10 additions & 10 deletions packages/core/src/stateUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ type AnyStateNodeIterable = StateNodeIterable<any, any>;

type AdjList = Map<AnyStateNode, Array<AnyStateNode>>;

export const isAtomicStateNode = (stateNode: StateNode<any, any>) =>
const isAtomicStateNode = (stateNode: StateNode<any, any>) =>
stateNode.type === 'atomic' || stateNode.type === 'final';

function getChildren<TContext extends MachineContext, TE extends EventObject>(
Expand Down Expand Up @@ -158,7 +158,7 @@ function getValueFromAdj(baseNode: AnyStateNode, adjList: AdjList): StateValue {
return stateValue;
}

export function getAdjList<
function getAdjList<
TContext extends MachineContext,
TE extends EventObject
>(stateNodes: StateNodeIterable<TContext, TE>): AdjList {
Expand Down Expand Up @@ -462,7 +462,7 @@ export function formatInitialTransition<
return transition;
}

export function resolveTarget(
function resolveTarget(
stateNode: AnyStateNode,
targets: ReadonlyArray<string | AnyStateNode> | undefined
): ReadonlyArray<AnyStateNode> | undefined {
Expand Down Expand Up @@ -528,7 +528,7 @@ function isHistoryNode(
return stateNode.type === 'history';
}

export function getInitialStateNodesWithTheirAncestors(
function getInitialStateNodesWithTheirAncestors(
stateNode: AnyStateNode
) {
const states = getInitialStateNodes(stateNode);
Expand Down Expand Up @@ -562,7 +562,7 @@ export function getInitialStateNodes(stateNode: AnyStateNode) {
return set;
}
/** Returns the child state node from its relative `stateKey`, or throws. */
export function getStateNode(
function getStateNode(
stateNode: AnyStateNode,
stateKey: string
): AnyStateNode {
Expand Down Expand Up @@ -653,7 +653,7 @@ export function getStateNodes<
);
}

export function transitionAtomicNode<
function transitionAtomicNode<
TContext extends MachineContext,
TEvent extends EventObject
>(
Expand All @@ -680,7 +680,7 @@ export function transitionAtomicNode<
return next;
}

export function transitionCompoundNode<
function transitionCompoundNode<
TContext extends MachineContext,
TEvent extends EventObject
>(
Expand Down Expand Up @@ -714,7 +714,7 @@ export function transitionCompoundNode<
return next;
}

export function transitionParallelNode<
function transitionParallelNode<
TContext extends MachineContext,
TEvent extends EventObject
>(
Expand Down Expand Up @@ -828,7 +828,7 @@ function hasIntersection<T>(s1: Iterable<T>, s2: Iterable<T>): boolean {
return false;
}

export function removeConflictingTransitions(
function removeConflictingTransitions(
enabledTransitions: Array<AnyTransitionDefinition>,
stateNodeSet: Set<AnyStateNode>,
historyValue: AnyHistoryValue
Expand Down Expand Up @@ -1835,7 +1835,7 @@ export function resolveStateValue(
return getStateValue(rootNode, [...allStateNodes]);
}

export function stateValuesEqual(
function stateValuesEqual(
a: StateValue | undefined,
b: StateValue | undefined
): boolean {
Expand Down
Loading
Loading