@sima-land/isomorph 11.0.0-alpha.49 → 11.0.0-alpha.50
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/cjs/config/source.js +0 -2
- package/dist/cjs/config/source.js.map +1 -1
- package/dist/cjs/config/types.js.map +1 -1
- package/dist/cjs/http/types.js.map +1 -1
- package/dist/cjs/http/utils.js +21 -16
- package/dist/cjs/http/utils.js.map +1 -1
- package/dist/cjs/package.json +2 -2
- package/dist/esm/config/source.js +0 -1
- package/dist/esm/config/source.js.map +1 -1
- package/dist/esm/config/types.js.map +1 -1
- package/dist/esm/http/types.js.map +1 -1
- package/dist/esm/http/utils.js +21 -16
- package/dist/esm/http/utils.js.map +1 -1
- package/dist/esm/package.json +2 -2
- package/dist/types/config/source.d.ts.map +1 -1
- package/dist/types/config/types.d.ts.map +1 -1
- package/dist/types/http/types.d.ts +2 -0
- package/dist/types/http/types.d.ts.map +1 -1
- package/dist/types/http/utils.d.ts +5 -1
- package/dist/types/http/utils.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.createConfigSource = createConfigSource;
|
|
7
7
|
var _env = require("@humanwhocodes/env");
|
|
8
|
-
// @ts-expect-error: https://github.com/humanwhocodes/env/issues/133 (@todo разобраться и убрать)
|
|
9
|
-
|
|
10
8
|
/**
|
|
11
9
|
* Возвращает новый источник конфигурации.
|
|
12
10
|
* @param dictionary Опции.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","names":["_env","require","createConfigSource","dictionary","source","Object","assign","__ISOMORPH_ENV__","Env"],"sources":["../../../src/config/source.ts"],"sourcesContent":["import type { ConfigSource, Dictionary } from './types';\
|
|
1
|
+
{"version":3,"file":"source.js","names":["_env","require","createConfigSource","dictionary","source","Object","assign","__ISOMORPH_ENV__","Env"],"sources":["../../../src/config/source.ts"],"sourcesContent":["import type { ConfigSource, Dictionary } from './types';\nimport { Env } from '@humanwhocodes/env';\n\ndeclare const __ISOMORPH_ENV__: unknown;\n\n/**\n * Возвращает новый источник конфигурации.\n * @param dictionary Опции.\n * @return Источник.\n */\nexport function createConfigSource(dictionary: Dictionary): ConfigSource {\n const source: Dictionary = {};\n\n // берем все переменные из предоставленной среды\n Object.assign(source, dictionary);\n\n // докидываем зашиваемые переменные окружения\n if (typeof __ISOMORPH_ENV__ !== 'undefined') {\n Object.assign(source, __ISOMORPH_ENV__);\n }\n\n return new Env(source);\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AAIA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,UAAsB,EAAgB;EACvE,MAAMC,MAAkB,GAAG,CAAC,CAAC;;EAE7B;EACAC,MAAM,CAACC,MAAM,CAACF,MAAM,EAAED,UAAU,CAAC;;EAEjC;EACA,IAAI,OAAOI,gBAAgB,KAAK,WAAW,EAAE;IAC3CF,MAAM,CAACC,MAAM,CAACF,MAAM,EAAEG,gBAAgB,CAAC;EACzC;EAEA,OAAO,IAAIC,QAAG,CAACJ,MAAM,CAAC;AACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/config/types.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/config/types.ts"],"sourcesContent":["import type { Env } from '@humanwhocodes/env';\n\n/** Источник конфигурации. */\nexport type ConfigSource = Env;\n\n/**\n * Базовая информация о приложении, необходимая в большинстве мест.\n */\nexport interface BaseConfig {\n /** Строка, характеризующая среду выполнения, например \"production\". */\n env: string;\n\n /** Имя приложения. */\n appName: string;\n\n /** Версия приложения. */\n appVersion: string;\n}\n\n/**\n * Словарь.\n */\nexport interface Dictionary {\n readonly [key: string]: string | undefined;\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/http/types.ts"],"sourcesContent":["import type { LogLevel } from '../log';\n\nexport type { Handler, Enhancer, Middleware } from '@krutoo/fetch-tools';\n\nexport type {\n LogData,\n DoneLogData,\n FailLogData,\n LogHandler,\n LogHandlerFactory,\n ProxyOptions,\n} from '@krutoo/fetch-tools/middleware';\n\nexport type URLSearchParamsInit = Record<string, string | number | boolean | undefined | null>;\n\nexport interface ResponseDone<T = unknown> {\n ok: true;\n data: T;\n error: null;\n status: number;\n statusText: string;\n}\n\nexport interface ResponseFail<T = unknown> {\n ok: false;\n data?: T;\n error: unknown;\n status?: number;\n statusText?: string;\n}\n\nexport type EitherResponse<T> = ResponseDone<T> | ResponseFail<T>;\n\nexport interface ResponseErrorInit {\n statusCode?: number;\n redirectLocation?: string;\n logLevel?: LogLevel | null;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/http/types.ts"],"sourcesContent":["import type { LogLevel } from '../log';\n\nexport type { Handler, Enhancer, Middleware } from '@krutoo/fetch-tools';\n\nexport type {\n LogData,\n DoneLogData,\n FailLogData,\n LogHandler,\n LogHandlerFactory,\n ProxyOptions,\n} from '@krutoo/fetch-tools/middleware';\n\nexport type URLSearchParamsInit = Record<string, string | number | boolean | undefined | null>;\n\nexport interface ResponseDone<T = unknown> {\n ok: true;\n data: T;\n error: null;\n status: number;\n statusText: string;\n headers: Headers;\n}\n\nexport interface ResponseFail<T = unknown> {\n ok: false;\n data?: T;\n error: unknown;\n status?: number;\n statusText?: string;\n headers?: Headers;\n}\n\nexport type EitherResponse<T> = ResponseDone<T> | ResponseFail<T>;\n\nexport interface ResponseErrorInit {\n statusCode?: number;\n redirectLocation?: string;\n logLevel?: LogLevel | null;\n}\n"],"mappings":""}
|
package/dist/cjs/http/utils.js
CHANGED
|
@@ -51,27 +51,32 @@ const FetchUtil = exports.FetchUtil = {
|
|
|
51
51
|
/**
|
|
52
52
|
* Возвращает кортеж обработчиков для Promise из fetch.
|
|
53
53
|
* Полученный Promise никогда не уйдет в состояние rejected.
|
|
54
|
+
* @param options Опции.
|
|
54
55
|
* @return Кортеж.
|
|
55
56
|
*/
|
|
56
|
-
eitherResponse(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
error: null,
|
|
63
|
-
status: response.status,
|
|
64
|
-
statusText: response.statusText
|
|
65
|
-
}));
|
|
66
|
-
} else {
|
|
67
|
-
return Promise.resolve({
|
|
57
|
+
eitherResponse({
|
|
58
|
+
parseBody = response => response.json()
|
|
59
|
+
} = {}) {
|
|
60
|
+
return [async response => {
|
|
61
|
+
if (!response.ok) {
|
|
62
|
+
return {
|
|
68
63
|
ok: false,
|
|
69
|
-
|
|
64
|
+
data: await parseBody(response).catch(() => null),
|
|
65
|
+
error: new Error(`Request failed with status code ${response.status}`),
|
|
70
66
|
status: response.status,
|
|
71
|
-
statusText: response.statusText
|
|
72
|
-
|
|
67
|
+
statusText: response.statusText,
|
|
68
|
+
headers: response.headers
|
|
69
|
+
};
|
|
73
70
|
}
|
|
74
|
-
|
|
71
|
+
return {
|
|
72
|
+
ok: true,
|
|
73
|
+
data: await parseBody(response).catch(() => null),
|
|
74
|
+
error: null,
|
|
75
|
+
status: response.status,
|
|
76
|
+
statusText: response.statusText,
|
|
77
|
+
headers: response.headers
|
|
78
|
+
};
|
|
79
|
+
}, async error => ({
|
|
75
80
|
ok: false,
|
|
76
81
|
error
|
|
77
82
|
})];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["FetchUtil","exports","setParams","url","params","paramName","paramValue","Object","entries","searchParams","delete","undefined","set","String","withParams","resultUrl","URL","withoutParams","search","eitherResponse","
|
|
1
|
+
{"version":3,"file":"utils.js","names":["FetchUtil","exports","setParams","url","params","paramName","paramValue","Object","entries","searchParams","delete","undefined","set","String","withParams","resultUrl","URL","withoutParams","search","eitherResponse","parseBody","response","json","ok","data","catch","error","Error","status","statusText","headers"],"sources":["../../../src/http/utils.ts"],"sourcesContent":["import type { URLSearchParamsInit, ResponseDone, ResponseFail } from './types';\n\n/**\n * Утилиты для работы с URL, URLSearchParams, Headers, Request, Response.\n */\nexport const FetchUtil = {\n /**\n * Получив параметры применит их к переданному URL.\n * @param url URL.\n * @param params Параметры.\n */\n setParams(url: URL, params: URLSearchParamsInit): void {\n for (const [paramName, paramValue] of Object.entries(params)) {\n if (paramValue === null) {\n url.searchParams.delete(paramName);\n continue;\n }\n\n if (paramValue !== undefined) {\n url.searchParams.set(paramName, String(paramValue));\n continue;\n }\n }\n },\n\n // @todo resetPrams?\n\n /**\n * Получив URL и параметры вернет новый URL с примененными параметрами.\n * @param url URL.\n * @param params Параметры.\n * @return URL.\n */\n withParams(url: string | URL, params: URLSearchParamsInit): URL {\n const resultUrl = new URL(url);\n\n FetchUtil.setParams(resultUrl, params);\n\n return resultUrl;\n },\n\n /**\n * Получив URL вернет его копию но без параметров.\n * @param url URL.\n * @return URL.\n */\n withoutParams(url: string | URL): URL {\n const resultUrl = new URL(url);\n\n resultUrl.search = '';\n\n return resultUrl;\n },\n\n /**\n * Возвращает кортеж обработчиков для Promise из fetch.\n * Полученный Promise никогда не уйдет в состояние rejected.\n * @param options Опции.\n * @return Кортеж.\n */\n eitherResponse<T = unknown>({\n parseBody = response => response.json(),\n }: {\n /** Парсер body. */\n parseBody?: (response: Response) => Promise<T>;\n } = {}) {\n return [\n async (response: Response): Promise<ResponseDone<T> | ResponseFail<T>> => {\n if (!response.ok) {\n return {\n ok: false,\n data: (await parseBody(response).catch(() => null)) as T,\n error: new Error(`Request failed with status code ${response.status}`),\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n return {\n ok: true,\n data: (await parseBody(response).catch(() => null)) as T,\n error: null,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n },\n async (error: unknown): Promise<ResponseFail<T>> => ({\n ok: false,\n error,\n }),\n ] as const;\n },\n} as const;\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,MAAMA,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG;EACvB;AACF;AACA;AACA;AACA;EACEE,SAASA,CAACC,GAAQ,EAAEC,MAA2B,EAAQ;IACrD,KAAK,MAAM,CAACC,SAAS,EAAEC,UAAU,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACJ,MAAM,CAAC,EAAE;MAC5D,IAAIE,UAAU,KAAK,IAAI,EAAE;QACvBH,GAAG,CAACM,YAAY,CAACC,MAAM,CAACL,SAAS,CAAC;QAClC;MACF;MAEA,IAAIC,UAAU,KAAKK,SAAS,EAAE;QAC5BR,GAAG,CAACM,YAAY,CAACG,GAAG,CAACP,SAAS,EAAEQ,MAAM,CAACP,UAAU,CAAC,CAAC;QACnD;MACF;IACF;EACF,CAAC;EAED;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEQ,UAAUA,CAACX,GAAiB,EAAEC,MAA2B,EAAO;IAC9D,MAAMW,SAAS,GAAG,IAAIC,GAAG,CAACb,GAAG,CAAC;IAE9BH,SAAS,CAACE,SAAS,CAACa,SAAS,EAAEX,MAAM,CAAC;IAEtC,OAAOW,SAAS;EAClB,CAAC;EAED;AACF;AACA;AACA;AACA;EACEE,aAAaA,CAACd,GAAiB,EAAO;IACpC,MAAMY,SAAS,GAAG,IAAIC,GAAG,CAACb,GAAG,CAAC;IAE9BY,SAAS,CAACG,MAAM,GAAG,EAAE;IAErB,OAAOH,SAAS;EAClB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEI,cAAcA,CAAc;IAC1BC,SAAS,GAAGC,QAAQ,IAAIA,QAAQ,CAACC,IAAI,CAAC;EAIxC,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,OAAO,CACL,MAAOD,QAAkB,IAAiD;MACxE,IAAI,CAACA,QAAQ,CAACE,EAAE,EAAE;QAChB,OAAO;UACLA,EAAE,EAAE,KAAK;UACTC,IAAI,EAAG,MAAMJ,SAAS,CAACC,QAAQ,CAAC,CAACI,KAAK,CAAC,MAAM,IAAI,CAAO;UACxDC,KAAK,EAAE,IAAIC,KAAK,CAAE,mCAAkCN,QAAQ,CAACO,MAAO,EAAC,CAAC;UACtEA,MAAM,EAAEP,QAAQ,CAACO,MAAM;UACvBC,UAAU,EAAER,QAAQ,CAACQ,UAAU;UAC/BC,OAAO,EAAET,QAAQ,CAACS;QACpB,CAAC;MACH;MAEA,OAAO;QACLP,EAAE,EAAE,IAAI;QACRC,IAAI,EAAG,MAAMJ,SAAS,CAACC,QAAQ,CAAC,CAACI,KAAK,CAAC,MAAM,IAAI,CAAO;QACxDC,KAAK,EAAE,IAAI;QACXE,MAAM,EAAEP,QAAQ,CAACO,MAAM;QACvBC,UAAU,EAAER,QAAQ,CAACQ,UAAU;QAC/BC,OAAO,EAAET,QAAQ,CAACS;MACpB,CAAC;IACH,CAAC,EACD,MAAOJ,KAAc,KAAgC;MACnDH,EAAE,EAAE,KAAK;MACTG;IACF,CAAC,CAAC,CACH;EACH;AACF,CAAU"}
|
package/dist/cjs/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "commonjs",
|
|
3
3
|
"name": "@sima-land/isomorph",
|
|
4
|
-
"version": "11.0.0-alpha.
|
|
4
|
+
"version": "11.0.0-alpha.50",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@humanwhocodes/env": "^3.0.
|
|
6
|
+
"@humanwhocodes/env": "^3.0.5",
|
|
7
7
|
"@krutoo/fetch-tools": "^0.0.16",
|
|
8
8
|
"@opentelemetry/api": "^1.4.1",
|
|
9
9
|
"@opentelemetry/exporter-prometheus": "^0.38.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","names":["Env","createConfigSource","dictionary","source","Object","assign","__ISOMORPH_ENV__"],"sources":["../../../src/config/source.ts"],"sourcesContent":["import type { ConfigSource, Dictionary } from './types';\
|
|
1
|
+
{"version":3,"file":"source.js","names":["Env","createConfigSource","dictionary","source","Object","assign","__ISOMORPH_ENV__"],"sources":["../../../src/config/source.ts"],"sourcesContent":["import type { ConfigSource, Dictionary } from './types';\nimport { Env } from '@humanwhocodes/env';\n\ndeclare const __ISOMORPH_ENV__: unknown;\n\n/**\n * Возвращает новый источник конфигурации.\n * @param dictionary Опции.\n * @return Источник.\n */\nexport function createConfigSource(dictionary: Dictionary): ConfigSource {\n const source: Dictionary = {};\n\n // берем все переменные из предоставленной среды\n Object.assign(source, dictionary);\n\n // докидываем зашиваемые переменные окружения\n if (typeof __ISOMORPH_ENV__ !== 'undefined') {\n Object.assign(source, __ISOMORPH_ENV__);\n }\n\n return new Env(source);\n}\n"],"mappings":"AACA,SAASA,GAAG,QAAQ,oBAAoB;AAIxC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,UAAsB,EAAgB;EACvE,MAAMC,MAAkB,GAAG,CAAC,CAAC;;EAE7B;EACAC,MAAM,CAACC,MAAM,CAACF,MAAM,EAAED,UAAU,CAAC;;EAEjC;EACA,IAAI,OAAOI,gBAAgB,KAAK,WAAW,EAAE;IAC3CF,MAAM,CAACC,MAAM,CAACF,MAAM,EAAEG,gBAAgB,CAAC;EACzC;EAEA,OAAO,IAAIN,GAAG,CAACG,MAAM,CAAC;AACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/config/types.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/config/types.ts"],"sourcesContent":["import type { Env } from '@humanwhocodes/env';\n\n/** Источник конфигурации. */\nexport type ConfigSource = Env;\n\n/**\n * Базовая информация о приложении, необходимая в большинстве мест.\n */\nexport interface BaseConfig {\n /** Строка, характеризующая среду выполнения, например \"production\". */\n env: string;\n\n /** Имя приложения. */\n appName: string;\n\n /** Версия приложения. */\n appVersion: string;\n}\n\n/**\n * Словарь.\n */\nexport interface Dictionary {\n readonly [key: string]: string | undefined;\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/http/types.ts"],"sourcesContent":["import type { LogLevel } from '../log';\n\nexport type { Handler, Enhancer, Middleware } from '@krutoo/fetch-tools';\n\nexport type {\n LogData,\n DoneLogData,\n FailLogData,\n LogHandler,\n LogHandlerFactory,\n ProxyOptions,\n} from '@krutoo/fetch-tools/middleware';\n\nexport type URLSearchParamsInit = Record<string, string | number | boolean | undefined | null>;\n\nexport interface ResponseDone<T = unknown> {\n ok: true;\n data: T;\n error: null;\n status: number;\n statusText: string;\n}\n\nexport interface ResponseFail<T = unknown> {\n ok: false;\n data?: T;\n error: unknown;\n status?: number;\n statusText?: string;\n}\n\nexport type EitherResponse<T> = ResponseDone<T> | ResponseFail<T>;\n\nexport interface ResponseErrorInit {\n statusCode?: number;\n redirectLocation?: string;\n logLevel?: LogLevel | null;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/http/types.ts"],"sourcesContent":["import type { LogLevel } from '../log';\n\nexport type { Handler, Enhancer, Middleware } from '@krutoo/fetch-tools';\n\nexport type {\n LogData,\n DoneLogData,\n FailLogData,\n LogHandler,\n LogHandlerFactory,\n ProxyOptions,\n} from '@krutoo/fetch-tools/middleware';\n\nexport type URLSearchParamsInit = Record<string, string | number | boolean | undefined | null>;\n\nexport interface ResponseDone<T = unknown> {\n ok: true;\n data: T;\n error: null;\n status: number;\n statusText: string;\n headers: Headers;\n}\n\nexport interface ResponseFail<T = unknown> {\n ok: false;\n data?: T;\n error: unknown;\n status?: number;\n statusText?: string;\n headers?: Headers;\n}\n\nexport type EitherResponse<T> = ResponseDone<T> | ResponseFail<T>;\n\nexport interface ResponseErrorInit {\n statusCode?: number;\n redirectLocation?: string;\n logLevel?: LogLevel | null;\n}\n"],"mappings":""}
|
package/dist/esm/http/utils.js
CHANGED
|
@@ -45,27 +45,32 @@ export const FetchUtil = {
|
|
|
45
45
|
/**
|
|
46
46
|
* Возвращает кортеж обработчиков для Promise из fetch.
|
|
47
47
|
* Полученный Promise никогда не уйдет в состояние rejected.
|
|
48
|
+
* @param options Опции.
|
|
48
49
|
* @return Кортеж.
|
|
49
50
|
*/
|
|
50
|
-
eitherResponse(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
error: null,
|
|
57
|
-
status: response.status,
|
|
58
|
-
statusText: response.statusText
|
|
59
|
-
}));
|
|
60
|
-
} else {
|
|
61
|
-
return Promise.resolve({
|
|
51
|
+
eitherResponse({
|
|
52
|
+
parseBody = response => response.json()
|
|
53
|
+
} = {}) {
|
|
54
|
+
return [async response => {
|
|
55
|
+
if (!response.ok) {
|
|
56
|
+
return {
|
|
62
57
|
ok: false,
|
|
63
|
-
|
|
58
|
+
data: await parseBody(response).catch(() => null),
|
|
59
|
+
error: new Error(`Request failed with status code ${response.status}`),
|
|
64
60
|
status: response.status,
|
|
65
|
-
statusText: response.statusText
|
|
66
|
-
|
|
61
|
+
statusText: response.statusText,
|
|
62
|
+
headers: response.headers
|
|
63
|
+
};
|
|
67
64
|
}
|
|
68
|
-
|
|
65
|
+
return {
|
|
66
|
+
ok: true,
|
|
67
|
+
data: await parseBody(response).catch(() => null),
|
|
68
|
+
error: null,
|
|
69
|
+
status: response.status,
|
|
70
|
+
statusText: response.statusText,
|
|
71
|
+
headers: response.headers
|
|
72
|
+
};
|
|
73
|
+
}, async error => ({
|
|
69
74
|
ok: false,
|
|
70
75
|
error
|
|
71
76
|
})];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["FetchUtil","setParams","url","params","paramName","paramValue","Object","entries","searchParams","delete","undefined","set","String","withParams","resultUrl","URL","withoutParams","search","eitherResponse","
|
|
1
|
+
{"version":3,"file":"utils.js","names":["FetchUtil","setParams","url","params","paramName","paramValue","Object","entries","searchParams","delete","undefined","set","String","withParams","resultUrl","URL","withoutParams","search","eitherResponse","parseBody","response","json","ok","data","catch","error","Error","status","statusText","headers"],"sources":["../../../src/http/utils.ts"],"sourcesContent":["import type { URLSearchParamsInit, ResponseDone, ResponseFail } from './types';\n\n/**\n * Утилиты для работы с URL, URLSearchParams, Headers, Request, Response.\n */\nexport const FetchUtil = {\n /**\n * Получив параметры применит их к переданному URL.\n * @param url URL.\n * @param params Параметры.\n */\n setParams(url: URL, params: URLSearchParamsInit): void {\n for (const [paramName, paramValue] of Object.entries(params)) {\n if (paramValue === null) {\n url.searchParams.delete(paramName);\n continue;\n }\n\n if (paramValue !== undefined) {\n url.searchParams.set(paramName, String(paramValue));\n continue;\n }\n }\n },\n\n // @todo resetPrams?\n\n /**\n * Получив URL и параметры вернет новый URL с примененными параметрами.\n * @param url URL.\n * @param params Параметры.\n * @return URL.\n */\n withParams(url: string | URL, params: URLSearchParamsInit): URL {\n const resultUrl = new URL(url);\n\n FetchUtil.setParams(resultUrl, params);\n\n return resultUrl;\n },\n\n /**\n * Получив URL вернет его копию но без параметров.\n * @param url URL.\n * @return URL.\n */\n withoutParams(url: string | URL): URL {\n const resultUrl = new URL(url);\n\n resultUrl.search = '';\n\n return resultUrl;\n },\n\n /**\n * Возвращает кортеж обработчиков для Promise из fetch.\n * Полученный Promise никогда не уйдет в состояние rejected.\n * @param options Опции.\n * @return Кортеж.\n */\n eitherResponse<T = unknown>({\n parseBody = response => response.json(),\n }: {\n /** Парсер body. */\n parseBody?: (response: Response) => Promise<T>;\n } = {}) {\n return [\n async (response: Response): Promise<ResponseDone<T> | ResponseFail<T>> => {\n if (!response.ok) {\n return {\n ok: false,\n data: (await parseBody(response).catch(() => null)) as T,\n error: new Error(`Request failed with status code ${response.status}`),\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n return {\n ok: true,\n data: (await parseBody(response).catch(() => null)) as T,\n error: null,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n },\n async (error: unknown): Promise<ResponseFail<T>> => ({\n ok: false,\n error,\n }),\n ] as const;\n },\n} as const;\n"],"mappings":"AAEA;AACA;AACA;AACA,OAAO,MAAMA,SAAS,GAAG;EACvB;AACF;AACA;AACA;AACA;EACEC,SAASA,CAACC,GAAQ,EAAEC,MAA2B,EAAQ;IACrD,KAAK,MAAM,CAACC,SAAS,EAAEC,UAAU,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACJ,MAAM,CAAC,EAAE;MAC5D,IAAIE,UAAU,KAAK,IAAI,EAAE;QACvBH,GAAG,CAACM,YAAY,CAACC,MAAM,CAACL,SAAS,CAAC;QAClC;MACF;MAEA,IAAIC,UAAU,KAAKK,SAAS,EAAE;QAC5BR,GAAG,CAACM,YAAY,CAACG,GAAG,CAACP,SAAS,EAAEQ,MAAM,CAACP,UAAU,CAAC,CAAC;QACnD;MACF;IACF;EACF,CAAC;EAED;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEQ,UAAUA,CAACX,GAAiB,EAAEC,MAA2B,EAAO;IAC9D,MAAMW,SAAS,GAAG,IAAIC,GAAG,CAACb,GAAG,CAAC;IAE9BF,SAAS,CAACC,SAAS,CAACa,SAAS,EAAEX,MAAM,CAAC;IAEtC,OAAOW,SAAS;EAClB,CAAC;EAED;AACF;AACA;AACA;AACA;EACEE,aAAaA,CAACd,GAAiB,EAAO;IACpC,MAAMY,SAAS,GAAG,IAAIC,GAAG,CAACb,GAAG,CAAC;IAE9BY,SAAS,CAACG,MAAM,GAAG,EAAE;IAErB,OAAOH,SAAS;EAClB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEI,cAAcA,CAAc;IAC1BC,SAAS,GAAGC,QAAQ,IAAIA,QAAQ,CAACC,IAAI,CAAC;EAIxC,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,OAAO,CACL,MAAOD,QAAkB,IAAiD;MACxE,IAAI,CAACA,QAAQ,CAACE,EAAE,EAAE;QAChB,OAAO;UACLA,EAAE,EAAE,KAAK;UACTC,IAAI,EAAG,MAAMJ,SAAS,CAACC,QAAQ,CAAC,CAACI,KAAK,CAAC,MAAM,IAAI,CAAO;UACxDC,KAAK,EAAE,IAAIC,KAAK,CAAE,mCAAkCN,QAAQ,CAACO,MAAO,EAAC,CAAC;UACtEA,MAAM,EAAEP,QAAQ,CAACO,MAAM;UACvBC,UAAU,EAAER,QAAQ,CAACQ,UAAU;UAC/BC,OAAO,EAAET,QAAQ,CAACS;QACpB,CAAC;MACH;MAEA,OAAO;QACLP,EAAE,EAAE,IAAI;QACRC,IAAI,EAAG,MAAMJ,SAAS,CAACC,QAAQ,CAAC,CAACI,KAAK,CAAC,MAAM,IAAI,CAAO;QACxDC,KAAK,EAAE,IAAI;QACXE,MAAM,EAAEP,QAAQ,CAACO,MAAM;QACvBC,UAAU,EAAER,QAAQ,CAACQ,UAAU;QAC/BC,OAAO,EAAET,QAAQ,CAACS;MACpB,CAAC;IACH,CAAC,EACD,MAAOJ,KAAc,KAAgC;MACnDH,EAAE,EAAE,KAAK;MACTG;IACF,CAAC,CAAC,CACH;EACH;AACF,CAAU"}
|
package/dist/esm/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@sima-land/isomorph",
|
|
4
|
-
"version": "11.0.0-alpha.
|
|
4
|
+
"version": "11.0.0-alpha.50",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@humanwhocodes/env": "^3.0.
|
|
6
|
+
"@humanwhocodes/env": "^3.0.5",
|
|
7
7
|
"@krutoo/fetch-tools": "^0.0.16",
|
|
8
8
|
"@opentelemetry/api": "^1.4.1",
|
|
9
9
|
"@opentelemetry/exporter-prometheus": "^0.38.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/config/source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/config/source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKxD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY,CAYvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,6BAA6B;AAC7B,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IAEZ,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAEhB,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC5C"}
|
|
@@ -8,6 +8,7 @@ export interface ResponseDone<T = unknown> {
|
|
|
8
8
|
error: null;
|
|
9
9
|
status: number;
|
|
10
10
|
statusText: string;
|
|
11
|
+
headers: Headers;
|
|
11
12
|
}
|
|
12
13
|
export interface ResponseFail<T = unknown> {
|
|
13
14
|
ok: false;
|
|
@@ -15,6 +16,7 @@ export interface ResponseFail<T = unknown> {
|
|
|
15
16
|
error: unknown;
|
|
16
17
|
status?: number;
|
|
17
18
|
statusText?: string;
|
|
19
|
+
headers?: Headers;
|
|
18
20
|
}
|
|
19
21
|
export type EitherResponse<T> = ResponseDone<T> | ResponseFail<T>;
|
|
20
22
|
export interface ResponseErrorInit {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEzE,YAAY,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,YAAY,GACb,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;AAE/F,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEzE,YAAY,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,YAAY,GACb,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;AAE/F,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAElE,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC5B"}
|
|
@@ -25,8 +25,12 @@ export declare const FetchUtil: {
|
|
|
25
25
|
/**
|
|
26
26
|
* Возвращает кортеж обработчиков для Promise из fetch.
|
|
27
27
|
* Полученный Promise никогда не уйдет в состояние rejected.
|
|
28
|
+
* @param options Опции.
|
|
28
29
|
* @return Кортеж.
|
|
29
30
|
*/
|
|
30
|
-
readonly eitherResponse: <T = unknown>(
|
|
31
|
+
readonly eitherResponse: <T = unknown>({ parseBody, }?: {
|
|
32
|
+
/** Парсер body. */
|
|
33
|
+
parseBody?: ((response: Response) => Promise<T>) | undefined;
|
|
34
|
+
}) => readonly [(response: Response) => Promise<ResponseDone<T> | ResponseFail<T>>, (error: unknown) => Promise<ResponseFail<T>>];
|
|
31
35
|
};
|
|
32
36
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/http/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,SAAS;IACpB;;;;OAIG;8BACY,GAAG,UAAU,mBAAmB,KAAG,IAAI;IAgBtD;;;;;OAKG;+BACa,MAAM,GAAG,GAAG,UAAU,mBAAmB,KAAG,GAAG;IAQ/D;;;;OAIG;kCACgB,MAAM,GAAG,GAAG,KAAG,GAAG;IAQrC
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/http/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,SAAS;IACpB;;;;OAIG;8BACY,GAAG,UAAU,mBAAmB,KAAG,IAAI;IAgBtD;;;;;OAKG;+BACa,MAAM,GAAG,GAAG,UAAU,mBAAmB,KAAG,GAAG;IAQ/D;;;;OAIG;kCACgB,MAAM,GAAG,GAAG,KAAG,GAAG;IAQrC;;;;;OAKG;;QAID,mBAAmB;gCACI,QAAQ;+BAGZ,QAAQ,yDAqBX,OAAO;CAMjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sima-land/isomorph",
|
|
3
|
-
"version": "11.0.0-alpha.
|
|
3
|
+
"version": "11.0.0-alpha.50",
|
|
4
4
|
"description": "Tiny framework for fast start frontend microservices",
|
|
5
5
|
"author": "www.sima-land.ru team",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"whatwg-fetch": "^3.6.17"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@humanwhocodes/env": "^3.0.
|
|
48
|
+
"@humanwhocodes/env": "^3.0.5",
|
|
49
49
|
"@krutoo/fetch-tools": "^0.0.16",
|
|
50
50
|
"@opentelemetry/api": "^1.4.1",
|
|
51
51
|
"@opentelemetry/exporter-prometheus": "^0.38.0",
|