aeria-sdk 0.0.192 → 0.0.193
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/index.d.ts +1 -2
- package/dist/index.js +1 -2
- package/dist/index.mjs +1 -2
- package/dist/instance.d.ts +31 -0
- package/dist/instance.js +61 -0
- package/dist/instance.mjs +56 -0
- package/dist/mirror.js +20 -16
- package/dist/mirror.mjs +19 -15
- package/package.json +3 -3
- package/dist/topLevel.d.ts +0 -24
- package/dist/topLevel.js +0 -52
- package/dist/topLevel.mjs +0 -55
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
export { Result, } from '@aeriajs/types';
|
|
2
2
|
export { throwIfError, } from '@aeriajs/common';
|
|
3
3
|
export * from './auth.js';
|
|
4
|
-
export * from './
|
|
4
|
+
export * from './instance.js';
|
|
5
5
|
export * from './constants.js';
|
|
6
6
|
export * from './http.js';
|
|
7
7
|
export * from './runtime.js';
|
|
8
8
|
export * from './storage.js';
|
|
9
|
-
export * from './topLevel.js';
|
|
10
9
|
export * from './types.js';
|
|
11
10
|
export * from './utils.js';
|
package/dist/index.js
CHANGED
|
@@ -20,11 +20,10 @@ Object.defineProperty(exports, "Result", { enumerable: true, get: function () {
|
|
|
20
20
|
var common_1 = require("@aeriajs/common");
|
|
21
21
|
Object.defineProperty(exports, "throwIfError", { enumerable: true, get: function () { return common_1.throwIfError; } });
|
|
22
22
|
__exportStar(require("./auth.js"), exports);
|
|
23
|
-
__exportStar(require("./
|
|
23
|
+
__exportStar(require("./instance.js"), exports);
|
|
24
24
|
__exportStar(require("./constants.js"), exports);
|
|
25
25
|
__exportStar(require("./http.js"), exports);
|
|
26
26
|
__exportStar(require("./runtime.js"), exports);
|
|
27
27
|
__exportStar(require("./storage.js"), exports);
|
|
28
|
-
__exportStar(require("./topLevel.js"), exports);
|
|
29
28
|
__exportStar(require("./types.js"), exports);
|
|
30
29
|
__exportStar(require("./utils.js"), exports);
|
package/dist/index.mjs
CHANGED
|
@@ -6,11 +6,10 @@ export {
|
|
|
6
6
|
throwIfError
|
|
7
7
|
} from "@aeriajs/common";
|
|
8
8
|
export * from "./auth.mjs";
|
|
9
|
-
export * from "./
|
|
9
|
+
export * from "./instance.mjs";
|
|
10
10
|
export * from "./constants.mjs";
|
|
11
11
|
export * from "./http.mjs";
|
|
12
12
|
export * from "./runtime.mjs";
|
|
13
13
|
export * from "./storage.mjs";
|
|
14
|
-
export * from "./topLevel.mjs";
|
|
15
14
|
export * from "./types.mjs";
|
|
16
15
|
export * from "./utils.mjs";
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { RequestTransformer, ResponseTransformer } from '@aeriajs/common';
|
|
2
|
+
import type { ContractWithRoles, RequestMethod, InferEndpointFunction, InferEndpointFromContract } from '@aeriajs/types';
|
|
3
|
+
import type { InstanceConfig } from './types.js';
|
|
4
|
+
export type ApiPrototype = {
|
|
5
|
+
[node: string]: ApiPrototype;
|
|
6
|
+
} | Record<RequestMethod, (payload: unknown) => Promise<unknown>>;
|
|
7
|
+
export type TopLevelObject = ApiPrototype & {
|
|
8
|
+
describe: {
|
|
9
|
+
POST: (...args: unknown[]) => Promise<string>;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export type ApiSchema = {
|
|
13
|
+
[route: string]: {
|
|
14
|
+
[method: RequestMethod]: ContractWithRoles;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export type MakeEndpoint<TRoute extends string, TRouteMethod extends RequestMethod, TRouteResponse = unknown, TRoutePayload = null> = TRoute extends `/${infer RouteTail}` ? MakeEndpoint<RouteTail, TRouteMethod, TRouteResponse, TRoutePayload> : TRoute extends `${infer Route}/${infer RouteTail}` ? Record<Route, MakeEndpoint<RouteTail, TRouteMethod, TRouteResponse, TRoutePayload>> : TRoute extends `(${string}` ? Record<string, Record<TRouteMethod, InferEndpointFunction<TRouteResponse, TRoutePayload>>> : Record<TRoute, Record<TRouteMethod, InferEndpointFunction<TRouteResponse, TRoutePayload>>>;
|
|
18
|
+
export type InstanceContext = {
|
|
19
|
+
interceptors: {
|
|
20
|
+
request?: RequestTransformer;
|
|
21
|
+
response?: ResponseTransformer;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export declare const interceptors: InstanceContext['interceptors'];
|
|
25
|
+
export declare const call: <TApiSchema extends ApiSchema>() => <TRoute extends keyof TApiSchema, TRouteMethod extends keyof TApiSchema[TRoute]>(method: TRouteMethod & string, route: TRoute & string, config: InstanceConfig, context?: InstanceContext, bearerToken?: string) => InferEndpointFromContract<TApiSchema[TRoute][TRouteMethod]>;
|
|
26
|
+
export declare const createInstance: <TApiPrototype extends ApiPrototype>(config: InstanceConfig, instanceContext?: {
|
|
27
|
+
interceptors: {
|
|
28
|
+
request?: RequestTransformer;
|
|
29
|
+
response?: ResponseTransformer;
|
|
30
|
+
};
|
|
31
|
+
}) => ((bearerToken?: string) => TApiPrototype) & ApiPrototype;
|
package/dist/instance.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createInstance = exports.call = exports.interceptors = void 0;
|
|
4
|
+
const http_js_1 = require("./http.js");
|
|
5
|
+
const utils_js_1 = require("./utils.js");
|
|
6
|
+
exports.interceptors = {};
|
|
7
|
+
const proxify = (config, _target, instanceContext, bearerToken, segment) => {
|
|
8
|
+
return new Proxy(_target, {
|
|
9
|
+
get: (target, key) => {
|
|
10
|
+
if (typeof key === 'symbol') {
|
|
11
|
+
return target[key];
|
|
12
|
+
}
|
|
13
|
+
const uri = segment
|
|
14
|
+
? segment
|
|
15
|
+
: key;
|
|
16
|
+
const newUri = segment
|
|
17
|
+
? `${segment}/${key}`
|
|
18
|
+
: key;
|
|
19
|
+
const fn = (0, exports.call)()(key, uri, config, instanceContext);
|
|
20
|
+
return proxify(config, fn, instanceContext, bearerToken, newUri);
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
const call = () => (method, route, config, context = {
|
|
25
|
+
interceptors: exports.interceptors,
|
|
26
|
+
}, bearerToken) => {
|
|
27
|
+
const { request: requestTransformer = exports.interceptors.request, response: responseTransformer = exports.interceptors.response, } = context.interceptors;
|
|
28
|
+
const fn = async (payload) => {
|
|
29
|
+
const requestConfig = {
|
|
30
|
+
requestTransformer,
|
|
31
|
+
responseTransformer,
|
|
32
|
+
params: {
|
|
33
|
+
method,
|
|
34
|
+
headers: {},
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
if (method !== 'GET' && method !== 'HEAD') {
|
|
38
|
+
if (payload) {
|
|
39
|
+
requestConfig.params.headers = {
|
|
40
|
+
'content-type': 'application/json',
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (bearerToken) {
|
|
45
|
+
requestConfig.params.headers.authorization = `Bearer ${bearerToken}`;
|
|
46
|
+
}
|
|
47
|
+
const { data } = await (0, http_js_1.request)(config, `${(0, utils_js_1.publicUrl)(config)}/${route}`, payload, requestConfig);
|
|
48
|
+
return data;
|
|
49
|
+
};
|
|
50
|
+
return fn;
|
|
51
|
+
};
|
|
52
|
+
exports.call = call;
|
|
53
|
+
const createInstance = (config, instanceContext = {
|
|
54
|
+
interceptors: exports.interceptors,
|
|
55
|
+
}) => {
|
|
56
|
+
const fn = (bearerToken) => {
|
|
57
|
+
return proxify(config, {}, instanceContext, bearerToken);
|
|
58
|
+
};
|
|
59
|
+
return proxify(config, fn, instanceContext);
|
|
60
|
+
};
|
|
61
|
+
exports.createInstance = createInstance;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { request } from "./http.mjs";
|
|
3
|
+
import { publicUrl } from "./utils.mjs";
|
|
4
|
+
export const interceptors = {};
|
|
5
|
+
const proxify = (config, _target, instanceContext, bearerToken, segment) => {
|
|
6
|
+
return new Proxy(_target, {
|
|
7
|
+
get: (target, key) => {
|
|
8
|
+
if (typeof key === "symbol") {
|
|
9
|
+
return target[key];
|
|
10
|
+
}
|
|
11
|
+
const uri = segment ? segment : key;
|
|
12
|
+
const newUri = segment ? `${segment}/${key}` : key;
|
|
13
|
+
const fn = call()(key, uri, config, instanceContext);
|
|
14
|
+
return proxify(config, fn, instanceContext, bearerToken, newUri);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
export const call = () => (method, route, config, context = {
|
|
19
|
+
interceptors
|
|
20
|
+
}, bearerToken) => {
|
|
21
|
+
const {
|
|
22
|
+
request: requestTransformer = interceptors.request,
|
|
23
|
+
response: responseTransformer = interceptors.response
|
|
24
|
+
} = context.interceptors;
|
|
25
|
+
const fn = async (payload) => {
|
|
26
|
+
const requestConfig = {
|
|
27
|
+
requestTransformer,
|
|
28
|
+
responseTransformer,
|
|
29
|
+
params: {
|
|
30
|
+
method,
|
|
31
|
+
headers: {}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
if (method !== "GET" && method !== "HEAD") {
|
|
35
|
+
if (payload) {
|
|
36
|
+
requestConfig.params.headers = {
|
|
37
|
+
"content-type": "application/json"
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (bearerToken) {
|
|
42
|
+
requestConfig.params.headers.authorization = `Bearer ${bearerToken}`;
|
|
43
|
+
}
|
|
44
|
+
const { data } = await request(config, `${publicUrl(config)}/${route}`, payload, requestConfig);
|
|
45
|
+
return data;
|
|
46
|
+
};
|
|
47
|
+
return fn;
|
|
48
|
+
};
|
|
49
|
+
export const createInstance = (config, instanceContext = {
|
|
50
|
+
interceptors
|
|
51
|
+
}) => {
|
|
52
|
+
const fn = (bearerToken) => {
|
|
53
|
+
return proxify(config, {}, instanceContext, bearerToken);
|
|
54
|
+
};
|
|
55
|
+
return proxify(config, fn, instanceContext);
|
|
56
|
+
};
|
package/dist/mirror.js
CHANGED
|
@@ -5,7 +5,7 @@ const common_1 = require("@aeriajs/common");
|
|
|
5
5
|
const path = require("node:path");
|
|
6
6
|
const promises_1 = require("node:fs/promises");
|
|
7
7
|
const module_1 = require("module");
|
|
8
|
-
const
|
|
8
|
+
const instance_js_1 = require("./instance.js");
|
|
9
9
|
const utils_js_1 = require("./utils.js");
|
|
10
10
|
const DTS_FILENAME = 'aeria-sdk.d.ts';
|
|
11
11
|
const mirrorDts = (mirrorObj, config) => {
|
|
@@ -15,7 +15,6 @@ const mirrorDts = (mirrorObj, config) => {
|
|
|
15
15
|
InferProperties,
|
|
16
16
|
SchemaWithId,
|
|
17
17
|
PackReferences,
|
|
18
|
-
MakeEndpoint,
|
|
19
18
|
RequestMethod,
|
|
20
19
|
CollectionFunctionsSDK
|
|
21
20
|
|
|
@@ -23,7 +22,7 @@ const mirrorDts = (mirrorObj, config) => {
|
|
|
23
22
|
|
|
24
23
|
declare type MirrorDescriptions = ${JSON.stringify(descriptions, null, 2)}\n
|
|
25
24
|
|
|
26
|
-
declare type
|
|
25
|
+
declare type MirrorApiSchema = ${JSON.stringify(router, null, 2)}\n
|
|
27
26
|
|
|
28
27
|
${config.integrated
|
|
29
28
|
? ''
|
|
@@ -35,28 +34,28 @@ ${config.integrated
|
|
|
35
34
|
}
|
|
36
35
|
}\n`}
|
|
37
36
|
declare module 'aeria-sdk' {
|
|
38
|
-
import { TopLevelObject } from 'aeria-sdk'
|
|
37
|
+
import { TopLevelObject, MakeEndpoint } from 'aeria-sdk'
|
|
39
38
|
|
|
40
39
|
type UnionToIntersection<T> = (T extends unknown ? ((x: T) => 0) : never) extends ((x: infer R) => 0)
|
|
41
40
|
? R
|
|
42
41
|
: never
|
|
43
42
|
|
|
44
|
-
type
|
|
45
|
-
[Method in keyof
|
|
46
|
-
?
|
|
43
|
+
type InferEndpoints<TApiSchema extends ApiSchema, TRoute extends keyof TApiSchema> = {
|
|
44
|
+
[Method in keyof TApiSchema[TRoute]]: Method extends RequestMethod
|
|
45
|
+
? TApiSchema[TRoute][Method] extends infer Contract
|
|
47
46
|
? Contract extends
|
|
48
47
|
| { response: infer RouteResponse }
|
|
49
48
|
| { payload: infer RoutePayload }
|
|
50
49
|
| { query: infer RoutePayload }
|
|
51
50
|
? MakeEndpoint<
|
|
52
|
-
|
|
51
|
+
TRoute,
|
|
53
52
|
Method,
|
|
54
53
|
InferProperties<RouteResponse>,
|
|
55
54
|
RoutePayload extends {}
|
|
56
55
|
? PackReferences<InferProperty<RoutePayload>>
|
|
57
56
|
: undefined
|
|
58
57
|
>
|
|
59
|
-
: MakeEndpoint<
|
|
58
|
+
: MakeEndpoint<TRoute, Method>
|
|
60
59
|
: never
|
|
61
60
|
: never
|
|
62
61
|
} extends infer Methods
|
|
@@ -64,7 +63,7 @@ declare module 'aeria-sdk' {
|
|
|
64
63
|
: never
|
|
65
64
|
|
|
66
65
|
export type Api = {
|
|
67
|
-
[Route in keyof
|
|
66
|
+
[Route in keyof MirrorApiSchema]: Route extends \`/\${infer Coll}/\${infer Fn}\`
|
|
68
67
|
? Coll extends keyof Collections
|
|
69
68
|
? Fn extends keyof CollectionFunctionsSDK
|
|
70
69
|
? Record<Coll, Record<
|
|
@@ -72,9 +71,9 @@ declare module 'aeria-sdk' {
|
|
|
72
71
|
POST: CollectionFunctionsSDK<MirrorDescriptions[Coll]>[Fn]
|
|
73
72
|
}
|
|
74
73
|
>>
|
|
75
|
-
:
|
|
76
|
-
:
|
|
77
|
-
:
|
|
74
|
+
: InferEndpoints<Route>
|
|
75
|
+
: InferEndpoints<Route>
|
|
76
|
+
: InferEndpoints<Route>
|
|
78
77
|
} extends infer Api
|
|
79
78
|
? UnionToIntersection<Api[keyof Api]>
|
|
80
79
|
: never
|
|
@@ -85,6 +84,11 @@ declare module 'aeria-sdk' {
|
|
|
85
84
|
|
|
86
85
|
const topLevelAeria: TopLevelAeria
|
|
87
86
|
|
|
87
|
+
export {
|
|
88
|
+
MirrorDescriptions,
|
|
89
|
+
MirrorApiSchema,
|
|
90
|
+
}
|
|
91
|
+
|
|
88
92
|
export const url: string
|
|
89
93
|
export const aeria: TopLevelAeria
|
|
90
94
|
export default topLevelAeria
|
|
@@ -92,7 +96,7 @@ declare module 'aeria-sdk' {
|
|
|
92
96
|
\n`;
|
|
93
97
|
};
|
|
94
98
|
const runtimeCjs = (config) => `const config = ${JSON.stringify(config)}
|
|
95
|
-
const aeria = require('./
|
|
99
|
+
const aeria = require('./instance.js').createInstance(config)
|
|
96
100
|
exports.config = config
|
|
97
101
|
exports.url = '${(0, utils_js_1.publicUrl)(config)}'
|
|
98
102
|
exports.aeria = aeria
|
|
@@ -101,7 +105,7 @@ exports.upload = require('./upload.js').uploader(config)
|
|
|
101
105
|
exports.default = aeria
|
|
102
106
|
\n`;
|
|
103
107
|
exports.runtimeCjs = runtimeCjs;
|
|
104
|
-
const runtimeEsm = (config) => `import { createInstance } from './
|
|
108
|
+
const runtimeEsm = (config) => `import { createInstance } from './instance.mjs'
|
|
105
109
|
import { getStorage } from './storage.mjs'
|
|
106
110
|
import { uploader } from './upload.mjs'
|
|
107
111
|
export const config = ${JSON.stringify(config)}
|
|
@@ -143,7 +147,7 @@ const writeMirrorFiles = async (mirror, config) => {
|
|
|
143
147
|
};
|
|
144
148
|
exports.writeMirrorFiles = writeMirrorFiles;
|
|
145
149
|
const mirrorRemotely = async (config) => {
|
|
146
|
-
const aeria = (0,
|
|
150
|
+
const aeria = (0, instance_js_1.createInstance)(config);
|
|
147
151
|
const mirror = (0, common_1.deserialize)(await aeria().describe.POST({
|
|
148
152
|
router: true,
|
|
149
153
|
}));
|
package/dist/mirror.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { deserialize } from "@aeriajs/common";
|
|
|
3
3
|
import * as path from "node:path";
|
|
4
4
|
import { writeFile } from "node:fs/promises";
|
|
5
5
|
import { createRequire } from "module";
|
|
6
|
-
import { createInstance } from "./
|
|
6
|
+
import { createInstance } from "./instance.mjs";
|
|
7
7
|
import { publicUrl } from "./utils.mjs";
|
|
8
8
|
const DTS_FILENAME = "aeria-sdk.d.ts";
|
|
9
9
|
const mirrorDts = (mirrorObj, config) => {
|
|
@@ -16,7 +16,6 @@ const mirrorDts = (mirrorObj, config) => {
|
|
|
16
16
|
InferProperties,
|
|
17
17
|
SchemaWithId,
|
|
18
18
|
PackReferences,
|
|
19
|
-
MakeEndpoint,
|
|
20
19
|
RequestMethod,
|
|
21
20
|
CollectionFunctionsSDK
|
|
22
21
|
|
|
@@ -25,7 +24,7 @@ const mirrorDts = (mirrorObj, config) => {
|
|
|
25
24
|
declare type MirrorDescriptions = ${JSON.stringify(descriptions, null, 2)}
|
|
26
25
|
|
|
27
26
|
|
|
28
|
-
declare type
|
|
27
|
+
declare type MirrorApiSchema = ${JSON.stringify(router, null, 2)}
|
|
29
28
|
|
|
30
29
|
|
|
31
30
|
${config.integrated ? "" : `declare global {
|
|
@@ -37,28 +36,28 @@ ${config.integrated ? "" : `declare global {
|
|
|
37
36
|
}
|
|
38
37
|
`}
|
|
39
38
|
declare module 'aeria-sdk' {
|
|
40
|
-
import { TopLevelObject } from 'aeria-sdk'
|
|
39
|
+
import { TopLevelObject, MakeEndpoint } from 'aeria-sdk'
|
|
41
40
|
|
|
42
41
|
type UnionToIntersection<T> = (T extends unknown ? ((x: T) => 0) : never) extends ((x: infer R) => 0)
|
|
43
42
|
? R
|
|
44
43
|
: never
|
|
45
44
|
|
|
46
|
-
type
|
|
47
|
-
[Method in keyof
|
|
48
|
-
?
|
|
45
|
+
type InferEndpoints<TApiSchema extends ApiSchema, TRoute extends keyof TApiSchema> = {
|
|
46
|
+
[Method in keyof TApiSchema[TRoute]]: Method extends RequestMethod
|
|
47
|
+
? TApiSchema[TRoute][Method] extends infer Contract
|
|
49
48
|
? Contract extends
|
|
50
49
|
| { response: infer RouteResponse }
|
|
51
50
|
| { payload: infer RoutePayload }
|
|
52
51
|
| { query: infer RoutePayload }
|
|
53
52
|
? MakeEndpoint<
|
|
54
|
-
|
|
53
|
+
TRoute,
|
|
55
54
|
Method,
|
|
56
55
|
InferProperties<RouteResponse>,
|
|
57
56
|
RoutePayload extends {}
|
|
58
57
|
? PackReferences<InferProperty<RoutePayload>>
|
|
59
58
|
: undefined
|
|
60
59
|
>
|
|
61
|
-
: MakeEndpoint<
|
|
60
|
+
: MakeEndpoint<TRoute, Method>
|
|
62
61
|
: never
|
|
63
62
|
: never
|
|
64
63
|
} extends infer Methods
|
|
@@ -66,7 +65,7 @@ declare module 'aeria-sdk' {
|
|
|
66
65
|
: never
|
|
67
66
|
|
|
68
67
|
export type Api = {
|
|
69
|
-
[Route in keyof
|
|
68
|
+
[Route in keyof MirrorApiSchema]: Route extends \`/\${infer Coll}/\${infer Fn}\`
|
|
70
69
|
? Coll extends keyof Collections
|
|
71
70
|
? Fn extends keyof CollectionFunctionsSDK
|
|
72
71
|
? Record<Coll, Record<
|
|
@@ -74,9 +73,9 @@ declare module 'aeria-sdk' {
|
|
|
74
73
|
POST: CollectionFunctionsSDK<MirrorDescriptions[Coll]>[Fn]
|
|
75
74
|
}
|
|
76
75
|
>>
|
|
77
|
-
:
|
|
78
|
-
:
|
|
79
|
-
:
|
|
76
|
+
: InferEndpoints<Route>
|
|
77
|
+
: InferEndpoints<Route>
|
|
78
|
+
: InferEndpoints<Route>
|
|
80
79
|
} extends infer Api
|
|
81
80
|
? UnionToIntersection<Api[keyof Api]>
|
|
82
81
|
: never
|
|
@@ -87,6 +86,11 @@ declare module 'aeria-sdk' {
|
|
|
87
86
|
|
|
88
87
|
const topLevelAeria: TopLevelAeria
|
|
89
88
|
|
|
89
|
+
export {
|
|
90
|
+
MirrorDescriptions,
|
|
91
|
+
MirrorApiSchema,
|
|
92
|
+
}
|
|
93
|
+
|
|
90
94
|
export const url: string
|
|
91
95
|
export const aeria: TopLevelAeria
|
|
92
96
|
export default topLevelAeria
|
|
@@ -95,7 +99,7 @@ declare module 'aeria-sdk' {
|
|
|
95
99
|
`;
|
|
96
100
|
};
|
|
97
101
|
export const runtimeCjs = (config) => `const config = ${JSON.stringify(config)}
|
|
98
|
-
const aeria = require('./
|
|
102
|
+
const aeria = require('./instance.mjs').createInstance(config)
|
|
99
103
|
exports.config = config
|
|
100
104
|
exports.url = '${publicUrl(config)}'
|
|
101
105
|
exports.aeria = aeria
|
|
@@ -104,7 +108,7 @@ exports.upload = require('./upload.mjs').uploader(config)
|
|
|
104
108
|
exports.default = aeria
|
|
105
109
|
|
|
106
110
|
`;
|
|
107
|
-
export const runtimeEsm = (config) => `import { createInstance } from './
|
|
111
|
+
export const runtimeEsm = (config) => `import { createInstance } from './instance.mjs'
|
|
108
112
|
import { getStorage } from './storage.mjs'
|
|
109
113
|
import { uploader } from './upload.mjs'
|
|
110
114
|
export const config = ${JSON.stringify(config)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aeria-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.193",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
"@aeriajs/types": "link:../types"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@aeriajs/common": "^0.0.
|
|
56
|
-
"@aeriajs/types": "^0.0.
|
|
55
|
+
"@aeriajs/common": "^0.0.150",
|
|
56
|
+
"@aeriajs/types": "^0.0.128"
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
59
59
|
"test": "echo skipping",
|
package/dist/topLevel.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { RequestTransformer, ResponseTransformer } from '@aeriajs/common';
|
|
2
|
-
import type { RequestMethod } from '@aeriajs/types';
|
|
3
|
-
import type { InstanceConfig } from './types.js';
|
|
4
|
-
export type ApiPrototype = {
|
|
5
|
-
[node: string]: ApiPrototype;
|
|
6
|
-
} | Record<RequestMethod, (payload: unknown) => Promise<unknown>>;
|
|
7
|
-
export type TopLevelObject = ApiPrototype & {
|
|
8
|
-
describe: {
|
|
9
|
-
POST: (...args: unknown[]) => Promise<string>;
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
export type InstanceContext = {
|
|
13
|
-
interceptors: {
|
|
14
|
-
request?: RequestTransformer;
|
|
15
|
-
response?: ResponseTransformer;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
export declare const interceptors: InstanceContext['interceptors'];
|
|
19
|
-
export declare const createInstance: <TApiPrototype extends ApiPrototype>(config: InstanceConfig, instanceContext?: {
|
|
20
|
-
interceptors: {
|
|
21
|
-
request?: RequestTransformer;
|
|
22
|
-
response?: ResponseTransformer;
|
|
23
|
-
};
|
|
24
|
-
}) => ((bearerToken?: string) => TApiPrototype) & ApiPrototype;
|
package/dist/topLevel.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createInstance = exports.interceptors = void 0;
|
|
4
|
-
const http_js_1 = require("./http.js");
|
|
5
|
-
const utils_js_1 = require("./utils.js");
|
|
6
|
-
exports.interceptors = {};
|
|
7
|
-
const proxify = (config, _target, instanceContext, bearerToken, parent) => {
|
|
8
|
-
const { request: requestTransformer = exports.interceptors.request, response: responseTransformer = exports.interceptors.response, } = instanceContext.interceptors;
|
|
9
|
-
return new Proxy(_target, {
|
|
10
|
-
get: (target, key) => {
|
|
11
|
-
if (typeof key === 'symbol') {
|
|
12
|
-
return target[key];
|
|
13
|
-
}
|
|
14
|
-
const fn = async (payload) => {
|
|
15
|
-
const method = key;
|
|
16
|
-
const requestConfig = {
|
|
17
|
-
requestTransformer,
|
|
18
|
-
responseTransformer,
|
|
19
|
-
params: {
|
|
20
|
-
method,
|
|
21
|
-
headers: {},
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
if (method !== 'GET' && method !== 'HEAD') {
|
|
25
|
-
if (payload) {
|
|
26
|
-
requestConfig.params.headers = {
|
|
27
|
-
'content-type': 'application/json',
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (bearerToken) {
|
|
32
|
-
requestConfig.params.headers.authorization = `Bearer ${bearerToken}`;
|
|
33
|
-
}
|
|
34
|
-
const response = await (0, http_js_1.request)(config, `${(0, utils_js_1.publicUrl)(config)}/${parent}`, payload, requestConfig);
|
|
35
|
-
return response.data;
|
|
36
|
-
};
|
|
37
|
-
const path = parent
|
|
38
|
-
? `${parent}/${key}`
|
|
39
|
-
: key;
|
|
40
|
-
return proxify(config, fn, instanceContext, bearerToken, path);
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
const createInstance = (config, instanceContext = {
|
|
45
|
-
interceptors: exports.interceptors,
|
|
46
|
-
}) => {
|
|
47
|
-
const fn = (bearerToken) => {
|
|
48
|
-
return proxify(config, {}, instanceContext, bearerToken);
|
|
49
|
-
};
|
|
50
|
-
return proxify(config, fn, instanceContext);
|
|
51
|
-
};
|
|
52
|
-
exports.createInstance = createInstance;
|
package/dist/topLevel.mjs
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import { request } from "./http.mjs";
|
|
3
|
-
import { publicUrl } from "./utils.mjs";
|
|
4
|
-
export const interceptors = {};
|
|
5
|
-
const proxify = (config, _target, instanceContext, bearerToken, parent) => {
|
|
6
|
-
const {
|
|
7
|
-
request: requestTransformer = interceptors.request,
|
|
8
|
-
response: responseTransformer = interceptors.response
|
|
9
|
-
} = instanceContext.interceptors;
|
|
10
|
-
return new Proxy(_target, {
|
|
11
|
-
get: (target, key) => {
|
|
12
|
-
if (typeof key === "symbol") {
|
|
13
|
-
return target[key];
|
|
14
|
-
}
|
|
15
|
-
const fn = async (payload) => {
|
|
16
|
-
const method = key;
|
|
17
|
-
const requestConfig = {
|
|
18
|
-
requestTransformer,
|
|
19
|
-
responseTransformer,
|
|
20
|
-
params: {
|
|
21
|
-
method,
|
|
22
|
-
headers: {}
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
if (method !== "GET" && method !== "HEAD") {
|
|
26
|
-
if (payload) {
|
|
27
|
-
requestConfig.params.headers = {
|
|
28
|
-
"content-type": "application/json"
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (bearerToken) {
|
|
33
|
-
requestConfig.params.headers.authorization = `Bearer ${bearerToken}`;
|
|
34
|
-
}
|
|
35
|
-
const response = await request(
|
|
36
|
-
config,
|
|
37
|
-
`${publicUrl(config)}/${parent}`,
|
|
38
|
-
payload,
|
|
39
|
-
requestConfig
|
|
40
|
-
);
|
|
41
|
-
return response.data;
|
|
42
|
-
};
|
|
43
|
-
const path = parent ? `${parent}/${key}` : key;
|
|
44
|
-
return proxify(config, fn, instanceContext, bearerToken, path);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
export const createInstance = (config, instanceContext = {
|
|
49
|
-
interceptors
|
|
50
|
-
}) => {
|
|
51
|
-
const fn = (bearerToken) => {
|
|
52
|
-
return proxify(config, {}, instanceContext, bearerToken);
|
|
53
|
-
};
|
|
54
|
-
return proxify(config, fn, instanceContext);
|
|
55
|
-
};
|