@azure-net/kit 0.7.0 → 0.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/delivery/index.d.ts +3 -0
- package/dist/core/delivery/index.js +3 -0
- package/dist/core/{provider/dependencies → delivery/injectableDependencies}/ErrorHandler.d.ts +1 -1
- package/dist/core/{provider/dependencies → delivery/injectableDependencies}/ErrorHandler.js +1 -1
- package/dist/core/delivery/serverAction/CreateServerAction.d.ts +12 -0
- package/dist/core/delivery/serverAction/CreateServerAction.js +12 -0
- package/dist/core/delivery/serverAction/index.d.ts +1 -0
- package/dist/core/delivery/serverAction/index.js +1 -0
- package/dist/core/index.d.ts +4 -3
- package/dist/core/index.js +4 -3
- package/dist/core/infra/resource/BaseResource.d.ts +6 -6
- package/dist/core/infra/resource/BaseResource.js +1 -1
- package/dist/core/infra/response/BaseResponse.d.ts +5 -1
- package/dist/core/infra/response/BaseResponse.js +13 -1
- package/dist/core/{boundaryProvider → shared/boundaryProvider}/Provider.js +1 -1
- package/dist/core/shared/classMirror/ClassMirror.d.ts +3 -0
- package/dist/core/{application/ProxyResourceService.js → shared/classMirror/ClassMirror.js} +4 -6
- package/dist/core/shared/classMirror/index.d.ts +1 -0
- package/dist/core/shared/classMirror/index.js +1 -0
- package/dist/edges/index.d.ts +1 -1
- package/dist/edges/index.js +1 -1
- package/dist/lib/eventModifiers/EventModifiers.d.ts +16 -5
- package/dist/lib/eventModifiers/EventModifiers.js +29 -20
- package/package.json +7 -15
- package/dist/core/application/ProxyResourceService.d.ts +0 -4
- package/dist/core/application/index.d.ts +0 -1
- package/dist/core/application/index.js +0 -1
- package/dist/core/provider/ActionsProvider.d.ts +0 -13
- package/dist/core/provider/ActionsProvider.js +0 -29
- package/dist/core/provider/index.d.ts +0 -2
- package/dist/core/provider/index.js +0 -2
- /package/dist/core/{provider/dependencies → delivery/injectableDependencies}/AsyncHelpers.d.ts +0 -0
- /package/dist/core/{provider/dependencies → delivery/injectableDependencies}/AsyncHelpers.js +0 -0
- /package/dist/core/{provider/dependencies → delivery/injectableDependencies}/index.d.ts +0 -0
- /package/dist/core/{provider/dependencies → delivery/injectableDependencies}/index.js +0 -0
- /package/dist/core/{boundaryProvider → shared/boundaryProvider}/Provider.d.ts +0 -0
- /package/dist/core/{boundaryProvider → shared/boundaryProvider}/index.d.ts +0 -0
- /package/dist/core/{boundaryProvider → shared/boundaryProvider}/index.js +0 -0
- /package/dist/core/{eventBus → shared/eventBus}/EventBus.d.ts +0 -0
- /package/dist/core/{eventBus → shared/eventBus}/EventBus.js +0 -0
- /package/dist/core/{eventBus → shared/eventBus}/index.d.ts +0 -0
- /package/dist/core/{eventBus → shared/eventBus}/index.js +0 -0
- /package/dist/core/{request → shared/request}/BaseRequest.d.ts +0 -0
- /package/dist/core/{request → shared/request}/BaseRequest.js +0 -0
- /package/dist/core/{request → shared/request}/index.d.ts +0 -0
- /package/dist/core/{request → shared/request}/index.js +0 -0
- /package/dist/core/{request → shared/request}/rules/Rules.d.ts +0 -0
- /package/dist/core/{request → shared/request}/rules/Rules.js +0 -0
- /package/dist/core/{request → shared/request}/rules/index.d.ts +0 -0
- /package/dist/core/{request → shared/request}/rules/index.js +0 -0
- /package/dist/core/{request → shared/request}/rules/messages/En.d.ts +0 -0
- /package/dist/core/{request → shared/request}/rules/messages/En.js +0 -0
- /package/dist/core/{request → shared/request}/rules/messages/Ru.d.ts +0 -0
- /package/dist/core/{request → shared/request}/rules/messages/Ru.js +0 -0
- /package/dist/core/{request → shared/request}/rules/messages/WithI18n.d.ts +0 -0
- /package/dist/core/{request → shared/request}/rules/messages/WithI18n.js +0 -0
- /package/dist/core/{request → shared/request}/rules/messages/index.d.ts +0 -0
- /package/dist/core/{request → shared/request}/rules/messages/index.js +0 -0
- /package/dist/core/{request → shared/request}/rules/messages/types.d.ts +0 -0
- /package/dist/core/{request → shared/request}/rules/messages/types.js +0 -0
package/dist/core/{provider/dependencies → delivery/injectableDependencies}/ErrorHandler.d.ts
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseRequest, type RequestErrors } from '../../request/index.js';
|
|
1
|
+
import { BaseRequest, type RequestErrors } from '../../shared/request/index.js';
|
|
2
2
|
import { HttpServiceError } from '../../infra/httpService/index.js';
|
|
3
3
|
export type AppErrorType = 'http' | 'request' | 'app' | 'abort';
|
|
4
4
|
export interface AppError<T = unknown, D = never> {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RequestContext } from '../../../edges/context/index.js';
|
|
2
|
+
import { error, fail, redirect } from '@sveltejs/kit';
|
|
3
|
+
type Deps = {
|
|
4
|
+
context: Required<ReturnType<typeof RequestContext.current>>;
|
|
5
|
+
utils: {
|
|
6
|
+
fail: typeof fail;
|
|
7
|
+
redirect: typeof redirect;
|
|
8
|
+
error: typeof error;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export declare const createServerAction: <T>(factory: (args: Deps) => T) => (() => T);
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RequestContext } from '../../../edges/context/index.js';
|
|
2
|
+
import { browser } from '$app/environment';
|
|
3
|
+
import { error, fail, redirect } from '@sveltejs/kit';
|
|
4
|
+
export const createServerAction = (factory) => {
|
|
5
|
+
return () => {
|
|
6
|
+
if (browser) {
|
|
7
|
+
throw Error('Do not use actions on client side');
|
|
8
|
+
}
|
|
9
|
+
const context = RequestContext.current();
|
|
10
|
+
return factory({ context, utils: { fail, redirect, error } });
|
|
11
|
+
};
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './CreateServerAction.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './CreateServerAction.js';
|
package/dist/core/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from './infra/resource/index.js';
|
|
|
3
3
|
export * from './infra/httpService/index.js';
|
|
4
4
|
export * from './infra/datasource/index.js';
|
|
5
5
|
export * from './infra/query/index.js';
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './request/index.js';
|
|
8
|
-
export * from './
|
|
6
|
+
export * from './delivery/index.js';
|
|
7
|
+
export * from './shared/request/index.js';
|
|
8
|
+
export * from './shared/classMirror/index.js';
|
|
9
|
+
export * from './shared/boundaryProvider/index.js';
|
package/dist/core/index.js
CHANGED
|
@@ -3,6 +3,7 @@ export * from './infra/resource/index.js';
|
|
|
3
3
|
export * from './infra/httpService/index.js';
|
|
4
4
|
export * from './infra/datasource/index.js';
|
|
5
5
|
export * from './infra/query/index.js';
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './request/index.js';
|
|
8
|
-
export * from './
|
|
6
|
+
export * from './delivery/index.js';
|
|
7
|
+
export * from './shared/request/index.js';
|
|
8
|
+
export * from './shared/classMirror/index.js';
|
|
9
|
+
export * from './shared/boundaryProvider/index.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
type
|
|
1
|
+
export type PlainObject<T> = {
|
|
2
2
|
[K in keyof T as K extends string ? (T[K] extends (...args: unknown[]) => unknown ? never : K) : never]: T[K];
|
|
3
3
|
};
|
|
4
|
-
export interface
|
|
5
|
-
toPlainObject():
|
|
4
|
+
export interface IDTOMapper<TOutput = never> {
|
|
5
|
+
toPlainObject(): [TOutput] extends [never] ? PlainObject<this> : TOutput;
|
|
6
6
|
}
|
|
7
|
-
export
|
|
8
|
-
|
|
7
|
+
export type Collection<T> = T[];
|
|
8
|
+
export declare class DTOMapper<TOutput = never> implements IDTOMapper<TOutput> {
|
|
9
|
+
toPlainObject(): [TOutput] extends [never] ? PlainObject<this> : TOutput;
|
|
9
10
|
}
|
|
10
|
-
export {};
|
|
@@ -7,14 +7,18 @@ type ResponseBuilderState<TData, TMeta = unknown> = {
|
|
|
7
7
|
data: TData;
|
|
8
8
|
meta: TMeta;
|
|
9
9
|
};
|
|
10
|
+
type ArrayElement<T> = T extends readonly (infer E)[] ? E : never;
|
|
10
11
|
export declare class ResponseBuilder<TData = unknown, TMeta = object, TWrapper = TData> {
|
|
11
12
|
protected readonly response: HttpServiceResponse<TWrapper>;
|
|
12
13
|
protected state: ResponseBuilderState<TData, TMeta>;
|
|
13
14
|
constructor(response: HttpServiceResponse<TWrapper>);
|
|
14
15
|
protected unwrapData(data: TWrapper): TData;
|
|
15
|
-
|
|
16
|
+
mapUsing<TResource>(ResourceClass: new (data: TData) => {
|
|
16
17
|
toPlainObject(): TResource;
|
|
17
18
|
}): ResponseBuilder<TResource, TMeta, TWrapper>;
|
|
19
|
+
mapCollectionUsing<TResource>(ResourceClass: new (data: ArrayElement<TData>) => {
|
|
20
|
+
toPlainObject(): TResource;
|
|
21
|
+
}): ResponseBuilder<TResource[], TMeta, TWrapper>;
|
|
18
22
|
extract<TPath extends DeepKeys<TData>>(path: TPath): ResponseBuilder<DeepValue<TData, TPath>, TMeta, TWrapper>;
|
|
19
23
|
addMeta<TNewMeta extends Record<string, unknown>>(metaData: TNewMeta | ((current: TMeta) => TNewMeta)): ResponseBuilder<TData, TMeta & TNewMeta, TWrapper>;
|
|
20
24
|
getData(): TData;
|
|
@@ -12,7 +12,7 @@ export class ResponseBuilder {
|
|
|
12
12
|
unwrapData(data) {
|
|
13
13
|
return data;
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
mapUsing(ResourceClass) {
|
|
16
16
|
const resource = new ResourceClass(this.state.data);
|
|
17
17
|
const newResponse = new ResponseBuilder(this.response);
|
|
18
18
|
newResponse.state = {
|
|
@@ -21,6 +21,18 @@ export class ResponseBuilder {
|
|
|
21
21
|
};
|
|
22
22
|
return newResponse;
|
|
23
23
|
}
|
|
24
|
+
mapCollectionUsing(ResourceClass) {
|
|
25
|
+
if (!Array.isArray(this.state.data)) {
|
|
26
|
+
throw new Error('toCollection can only be used when data is an array');
|
|
27
|
+
}
|
|
28
|
+
const collection = this.state.data.map((dataElement) => new ResourceClass(dataElement).toPlainObject());
|
|
29
|
+
const newResponse = new ResponseBuilder(this.response);
|
|
30
|
+
newResponse.state = {
|
|
31
|
+
...this.state,
|
|
32
|
+
data: collection
|
|
33
|
+
};
|
|
34
|
+
return newResponse;
|
|
35
|
+
}
|
|
24
36
|
extract(path) {
|
|
25
37
|
const keys = path.split('.');
|
|
26
38
|
let result = this.state.data;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
export class
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
this.repository = repo;
|
|
5
|
-
const proto = Object.getPrototypeOf(repo);
|
|
1
|
+
export class ClassMirror {
|
|
2
|
+
constructor(target) {
|
|
3
|
+
const proto = Object.getPrototypeOf(target);
|
|
6
4
|
for (const name of Object.getOwnPropertyNames(proto)) {
|
|
7
5
|
if (name === 'constructor')
|
|
8
6
|
continue;
|
|
@@ -12,7 +10,7 @@ export class ProxyResourceService {
|
|
|
12
10
|
if (name in this)
|
|
13
11
|
continue;
|
|
14
12
|
Object.defineProperty(this, name, {
|
|
15
|
-
value: descriptor.value.bind(
|
|
13
|
+
value: descriptor.value.bind(target),
|
|
16
14
|
configurable: true,
|
|
17
15
|
writable: true
|
|
18
16
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ClassMirror.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ClassMirror.js';
|
package/dist/edges/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createPresenter, createPresenterFactory, createStore, createStoreFactory } from 'edges-svelte';
|
package/dist/edges/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createPresenter, createPresenterFactory, createStore, createStoreFactory } from 'edges-svelte';
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
export type EventHandler<E = Event> = (event: E) => void;
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
interface EventModifier<E extends Event = Event> {
|
|
3
|
+
(fn: () => void): EventHandler<E>;
|
|
4
|
+
prevent: EventModifier<E>;
|
|
5
|
+
stop: EventModifier<E>;
|
|
6
|
+
immediate: EventModifier<E>;
|
|
7
|
+
once: EventModifier<E>;
|
|
8
|
+
preventDefault: EventModifier<E>;
|
|
9
|
+
stopPropagation: EventModifier<E>;
|
|
10
|
+
stopImmediatePropagation: EventModifier<E>;
|
|
11
|
+
}
|
|
12
|
+
export declare const prevent: EventModifier<Event>;
|
|
13
|
+
export declare const stop: EventModifier<Event>;
|
|
14
|
+
export declare const immediate: EventModifier<Event>;
|
|
15
|
+
export declare const once: EventModifier<Event>;
|
|
16
|
+
export declare const event: EventModifier<Event>;
|
|
17
|
+
export {};
|
|
@@ -1,22 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
const createEventModifier = (modifiers = new Set()) => {
|
|
2
|
+
return new Proxy(() => { }, {
|
|
3
|
+
get(_, prop) {
|
|
4
|
+
return createEventModifier(new Set([...modifiers, prop]));
|
|
5
|
+
},
|
|
6
|
+
apply(_, __, [fn]) {
|
|
7
|
+
let executed = false;
|
|
8
|
+
return (event) => {
|
|
9
|
+
if (modifiers.has('once') && executed)
|
|
10
|
+
return;
|
|
11
|
+
if (modifiers.has('prevent') || modifiers.has('preventDefault')) {
|
|
12
|
+
event.preventDefault();
|
|
13
|
+
}
|
|
14
|
+
if (modifiers.has('stop') || modifiers.has('stopPropagation')) {
|
|
15
|
+
event.stopPropagation();
|
|
16
|
+
}
|
|
17
|
+
if (modifiers.has('immediate') || modifiers.has('stopImmediatePropagation')) {
|
|
18
|
+
event.stopImmediatePropagation();
|
|
19
|
+
}
|
|
20
|
+
if (modifiers.has('once'))
|
|
21
|
+
executed = true;
|
|
22
|
+
fn();
|
|
23
|
+
};
|
|
19
24
|
}
|
|
20
|
-
};
|
|
25
|
+
});
|
|
21
26
|
};
|
|
22
|
-
export const
|
|
27
|
+
export const prevent = createEventModifier(new Set(['prevent']));
|
|
28
|
+
export const stop = createEventModifier(new Set(['stop']));
|
|
29
|
+
export const immediate = createEventModifier(new Set(['immediate']));
|
|
30
|
+
export const once = createEventModifier(new Set(['once']));
|
|
31
|
+
export const event = createEventModifier();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@azure-net/kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.5",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist",
|
|
6
6
|
"!dist/**/*.test.*",
|
|
@@ -26,20 +26,12 @@
|
|
|
26
26
|
"svelte": "./dist/lib/index.js"
|
|
27
27
|
},
|
|
28
28
|
"./request/rules": {
|
|
29
|
-
"types": "./dist/core/request/rules/index.d.ts",
|
|
30
|
-
"svelte": "./dist/core/request/rules/index.js"
|
|
29
|
+
"types": "./dist/core/shared/request/rules/index.d.ts",
|
|
30
|
+
"svelte": "./dist/core/shared/request/rules/index.js"
|
|
31
31
|
},
|
|
32
32
|
"./request/messages": {
|
|
33
|
-
"types": "./dist/core/request/rules/messages/index.d.ts",
|
|
34
|
-
"svelte": "./dist/core/request/rules/messages/index.js"
|
|
35
|
-
},
|
|
36
|
-
"./provider": {
|
|
37
|
-
"types": "./dist/core/provider/index.d.ts",
|
|
38
|
-
"svelte": "./dist/core/provider/index.js"
|
|
39
|
-
},
|
|
40
|
-
"./provider/deps": {
|
|
41
|
-
"types": "./dist/core/provider/dependencies/index.d.ts",
|
|
42
|
-
"svelte": "./dist/core/provider/dependencies/index.js"
|
|
33
|
+
"types": "./dist/core/shared/request/rules/messages/index.d.ts",
|
|
34
|
+
"svelte": "./dist/core/shared/request/rules/messages/index.js"
|
|
43
35
|
},
|
|
44
36
|
"./edges": {
|
|
45
37
|
"types": "./dist/edges/index.d.ts",
|
|
@@ -112,8 +104,8 @@
|
|
|
112
104
|
],
|
|
113
105
|
"dependencies": {
|
|
114
106
|
"azure-net-tools": "^1.0.8",
|
|
115
|
-
"edges-svelte": "^1.0
|
|
116
|
-
"edges-svelte-translations": "^0.
|
|
107
|
+
"edges-svelte": "^1.1.0",
|
|
108
|
+
"edges-svelte-translations": "^0.2.0",
|
|
117
109
|
"ky": "^1.8.1",
|
|
118
110
|
"libphonenumber-js": "^1.12.9"
|
|
119
111
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './ProxyResourceService.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './ProxyResourceService.js';
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { RequestContext } from '../../edges/context/index.js';
|
|
2
|
-
import { error, fail, redirect } from '@sveltejs/kit';
|
|
3
|
-
type Deps = {
|
|
4
|
-
context: Required<ReturnType<typeof RequestContext.current>>;
|
|
5
|
-
utils: {
|
|
6
|
-
fail: typeof fail;
|
|
7
|
-
redirect: typeof redirect;
|
|
8
|
-
error: typeof error;
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
export declare const createActionsProvider: <T, I extends Record<string, unknown> = Record<string, unknown>>(name: string, factory: (args: I & Deps) => T, inject?: I) => (() => T);
|
|
12
|
-
export declare const createActionsProviderFactory: <I extends Record<string, unknown>>(inject: I) => <T>(name: string, factory: (args: I & Deps) => T) => () => T;
|
|
13
|
-
export {};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { RequestContext } from '../../edges/context/index.js';
|
|
2
|
-
import { browser } from '$app/environment';
|
|
3
|
-
import { error, fail, redirect } from '@sveltejs/kit';
|
|
4
|
-
export const createActionsProvider = (name, factory, inject) => {
|
|
5
|
-
const cacheKey = name;
|
|
6
|
-
return () => {
|
|
7
|
-
if (browser) {
|
|
8
|
-
throw Error('Do not use actions on client side');
|
|
9
|
-
}
|
|
10
|
-
const context = RequestContext.current();
|
|
11
|
-
if (!context.data.providers) {
|
|
12
|
-
context.data.providers = new Map();
|
|
13
|
-
}
|
|
14
|
-
const contextMap = context.data.providers;
|
|
15
|
-
if (cacheKey && contextMap.has(cacheKey)) {
|
|
16
|
-
return contextMap.get(cacheKey);
|
|
17
|
-
}
|
|
18
|
-
const instance = factory({ ...inject, context, utils: { fail, redirect, error } });
|
|
19
|
-
if (cacheKey) {
|
|
20
|
-
contextMap.set(cacheKey, instance);
|
|
21
|
-
}
|
|
22
|
-
return instance;
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
export const createActionsProviderFactory = (inject) => {
|
|
26
|
-
return function createInjectedProvider(name, factory) {
|
|
27
|
-
return createActionsProvider(name, factory, inject);
|
|
28
|
-
};
|
|
29
|
-
};
|
/package/dist/core/{provider/dependencies → delivery/injectableDependencies}/AsyncHelpers.d.ts
RENAMED
|
File without changes
|
/package/dist/core/{provider/dependencies → delivery/injectableDependencies}/AsyncHelpers.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|