wardens 0.5.0-rc.0 → 0.5.1-rc.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +8 -1
- package/package.json +1 -1
- package/src/__tests__/types.test-d.ts +14 -1
- package/src/types.ts +4 -3
package/CHANGELOG.md
CHANGED
@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
### Fixed
|
10
|
+
|
11
|
+
- Added support for parametrized resources in `ResourceHandle<T>`.
|
12
|
+
|
13
|
+
## [0.5.0]
|
14
|
+
|
9
15
|
### Changed
|
10
16
|
|
11
17
|
- Wardens is now published with ESM (`type=module`). It should be backwards compatible.
|
@@ -75,7 +81,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
75
81
|
- `mount`/`unmount` hooks to provision resources
|
76
82
|
- `allocate`/`deallocate` for creating hierarchies of resources
|
77
83
|
|
78
|
-
[Unreleased]: https://github.com/PsychoLlama/wardens/compare/v0.
|
84
|
+
[Unreleased]: https://github.com/PsychoLlama/wardens/compare/v0.5.0...HEAD
|
85
|
+
[0.5.0]: https://github.com/PsychoLlama/wardens/compare/v0.4.1...v0.5.0
|
79
86
|
[0.4.1]: https://github.com/PsychoLlama/wardens/compare/v0.4.0...v0.4.1
|
80
87
|
[0.4.0]: https://github.com/PsychoLlama/wardens/compare/v0.3.0...v0.4.0
|
81
88
|
[0.3.0]: https://github.com/PsychoLlama/wardens/compare/v0.2.0...v0.3.0
|
package/package.json
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { create, ResourceHandle } from '../';
|
1
|
+
import { create, ResourceContext, ResourceHandle } from '../';
|
2
2
|
|
3
3
|
describe('Utility types', () => {
|
4
4
|
describe('ResourceHandle', () => {
|
@@ -15,5 +15,18 @@ describe('Utility types', () => {
|
|
15
15
|
hello: 'world',
|
16
16
|
});
|
17
17
|
});
|
18
|
+
|
19
|
+
it('infers the type when the value comes from a parameter', async () => {
|
20
|
+
async function Test(_ctx: ResourceContext, value: { count: number }) {
|
21
|
+
return {
|
22
|
+
value,
|
23
|
+
};
|
24
|
+
}
|
25
|
+
|
26
|
+
const test = await create(Test, { count: 2 });
|
27
|
+
expectTypeOf(test).toEqualTypeOf<ResourceHandle<typeof Test>>({
|
28
|
+
count: 2,
|
29
|
+
});
|
30
|
+
});
|
18
31
|
});
|
19
32
|
});
|
package/src/types.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
1
2
|
import type ResourceContext from './resource-context';
|
2
3
|
|
3
4
|
/**
|
@@ -25,6 +26,6 @@ export interface Resource<Value extends object> {
|
|
25
26
|
}
|
26
27
|
|
27
28
|
/** The `value` type returned when creating a resource. */
|
28
|
-
export type ResourceHandle<
|
29
|
-
|
30
|
-
>['value'];
|
29
|
+
export type ResourceHandle<
|
30
|
+
Factory extends ParametrizedResourceFactory<object, Array<any>>,
|
31
|
+
> = Awaited<ReturnType<Factory>>['value'];
|