Skip to content

Commit 9a177f6

Browse files
Copilotspearwolf
andauthored
Rename useResource() to createResource() in ShadowObjectParams API (#4)
* Initial plan * Rename useResource() to createResource() in ShadowObjectParams API Co-authored-by: spearwolf <12805+spearwolf@users.noreply.github.com> * Keep useResource() in 0.23.0 CHANGELOG entry to preserve history Co-authored-by: spearwolf <12805+spearwolf@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: spearwolf <12805+spearwolf@users.noreply.github.com>
1 parent 875bef7 commit 9a177f6

5 files changed

Lines changed: 12 additions & 8 deletions

File tree

packages/shadow-objects/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ All notable changes to [@spearwolf/shadow-objects](https://github.com/spearwolf/
55
The format is loosely based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [Unreleased]
9+
10+
- renamed `useResource()` to `createResource()` in `ShadowObjectParams` interface
11+
812
## [0.23.0] - 2025-11-26
913

1014
- enhance the shadow-objects creation api _aka_ `ShadowObjectParams`

packages/shadow-objects/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ The `ShadowObjectParams` object provides all necessary tools to interact with th
106106
| **`useParentContext(name)`** | Skips the current Entity and consumes context directly from the parent. |
107107
| **`provideContext(name, value)`** | Provides a context value (or signal) to descendant Entities. |
108108
| **`provideGlobalContext(name, value)`** | Provides a context value globally to all Entities. |
109-
| **`useResource(factory, cleanup)`** | Manages an external resource (e.g., a Three.js object) with automatic cleanup when dependencies change. |
109+
| **`createResource(factory, cleanup)`** | Manages an external resource (e.g., a Three.js object) with automatic cleanup when dependencies change. |
110110
| **`createEffect(callback)`** | Runs a side effect whenever accessed signals change. |
111111
| **`createSignal(initialValue)`** | Creates a local reactive state signal. |
112112
| **`createMemo(factory)`** | Creates a derived signal that updates only when dependencies change. |

packages/shadow-objects/src/in-the-dark/Kernel.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ describe('Kernel', () => {
547547
});
548548
});
549549

550-
describe('useResource', () => {
550+
describe('createResource', () => {
551551
it('should create a resource and call cleanup on entity destruction', () => {
552552
const registry = new Registry();
553553
const kernel = new Kernel(registry);
@@ -559,8 +559,8 @@ describe('Kernel', () => {
559559

560560
@ShadowObject({registry, token: 'testResource'})
561561
class TestResource {
562-
constructor({useResource}: ShadowObjectParams) {
563-
resourceSignal = useResource(createFn, cleanupFn);
562+
constructor({createResource}: ShadowObjectParams) {
563+
resourceSignal = createResource(createFn, cleanupFn);
564564
}
565565
}
566566
expect(TestResource).toBeDefined();
@@ -587,8 +587,8 @@ describe('Kernel', () => {
587587

588588
@ShadowObject({registry, token: 'testUndefinedResource'})
589589
class TestUndefinedResource {
590-
constructor({useResource}: ShadowObjectParams) {
591-
useResource(createFn, cleanupFn);
590+
constructor({createResource}: ShadowObjectParams) {
591+
createResource(createFn, cleanupFn);
592592
}
593593
}
594594
expect(TestUndefinedResource).toBeDefined();

packages/shadow-objects/src/in-the-dark/Kernel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ export class Kernel {
442442
return result;
443443
},
444444

445-
useResource<T>(factory: () => T | undefined, cleanup?: (resource: T) => void): Signal<T | undefined> {
445+
createResource<T>(factory: () => T | undefined, cleanup?: (resource: T) => void): Signal<T | undefined> {
446446
const resourceSignal = createSignal<T | undefined>(undefined);
447447
unsubscribeSecondary.add(() => destroySignal(resourceSignal));
448448

packages/shadow-objects/src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ export interface ShadowObjectParams {
112112
useProperty<T = any>(name: string, isEqual?: CompareFunc<T>): SignalReader<T>;
113113
useProperties<K extends string>(props: Record<K, string>): Record<K, SignalReader<any>>;
114114

115-
useResource<T>(factory: () => T | undefined, cleanup?: (resource: T) => void): Signal<T | undefined>;
115+
createResource<T>(factory: () => T | undefined, cleanup?: (resource: T) => void): Signal<T | undefined>;
116116

117117
createEffect(...args: Parameters<typeof createEffect>): ReturnType<typeof createEffect>;
118118
createSignal<T = unknown>(...args: Parameters<typeof createSignal<T>>): ReturnType<typeof createSignal<T>>;

0 commit comments

Comments
 (0)