@trebired/result 0.2.0 → 1.0.0
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/CHANGELOG.md +12 -0
- package/README.md +121 -260
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/instrument_result_exports.js +1 -1
- package/dist/instrument_result_exports.js.map +1 -1
- package/dist/responder.d.ts +4 -3
- package/dist/responder.d.ts.map +1 -1
- package/dist/responder.js +25 -103
- package/dist/responder.js.map +1 -1
- package/dist/responder_support.d.ts +11 -9
- package/dist/responder_support.d.ts.map +1 -1
- package/dist/responder_support.js +123 -60
- package/dist/responder_support.js.map +1 -1
- package/dist/result.d.ts +10 -10
- package/dist/result.d.ts.map +1 -1
- package/dist/result.js +22 -31
- package/dist/result.js.map +1 -1
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js +4 -2
- package/dist/shared.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/instrument_result_exports.js +1 -1
- package/dist/src/instrument_result_exports.js.map +1 -1
- package/dist/src/responder.d.ts +4 -3
- package/dist/src/responder.d.ts.map +1 -1
- package/dist/src/responder.js +25 -103
- package/dist/src/responder.js.map +1 -1
- package/dist/src/responder_support.d.ts +11 -9
- package/dist/src/responder_support.d.ts.map +1 -1
- package/dist/src/responder_support.js +123 -60
- package/dist/src/responder_support.js.map +1 -1
- package/dist/src/result.d.ts +10 -10
- package/dist/src/result.d.ts.map +1 -1
- package/dist/src/result.js +22 -31
- package/dist/src/result.js.map +1 -1
- package/dist/src/shared.d.ts.map +1 -1
- package/dist/src/shared.js +4 -2
- package/dist/src/shared.js.map +1 -1
- package/dist/src/trace/capture.js +1 -1
- package/dist/src/trace/capture.js.map +1 -1
- package/dist/src/trace/runtime.js +1 -1
- package/dist/src/trace/runtime.js.map +1 -1
- package/dist/src/trace/utils.d.ts.map +1 -1
- package/dist/src/trace/utils.js +1 -1
- package/dist/src/trace/utils.js.map +1 -1
- package/dist/src/types.d.ts +16 -45
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/wrap/result/function.js +1 -1
- package/dist/src/wrap/result/function.js.map +1 -1
- package/dist/src/wrap/result/promise.js +1 -1
- package/dist/src/wrap/result/promise.js.map +1 -1
- package/dist/trace/capture.js +1 -1
- package/dist/trace/capture.js.map +1 -1
- package/dist/trace/runtime.js +1 -1
- package/dist/trace/runtime.js.map +1 -1
- package/dist/trace/utils.d.ts.map +1 -1
- package/dist/trace/utils.js +1 -1
- package/dist/trace/utils.js.map +1 -1
- package/dist/types.d.ts +16 -45
- package/dist/types.d.ts.map +1 -1
- package/dist/wrap/result/function.js +1 -1
- package/dist/wrap/result/function.js.map +1 -1
- package/dist/wrap/result/promise.js +1 -1
- package/dist/wrap/result/promise.js.map +1 -1
- package/package.json +6 -26
package/dist/responder.js
CHANGED
|
@@ -1,118 +1,40 @@
|
|
|
1
1
|
import { resolveLogger } from "./logging.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
7
|
-
return {
|
|
8
|
-
respond(input) {
|
|
9
|
-
const context = createBaseContext(config, input);
|
|
10
|
-
if (input.render === true) {
|
|
11
|
-
const model = buildRenderModel(config, context);
|
|
12
|
-
return respondWithRender(config, logger, context, model);
|
|
13
|
-
}
|
|
14
|
-
const jsonContext = createJsonContext(context);
|
|
15
|
-
return config.json(jsonContext);
|
|
16
|
-
},
|
|
17
|
-
resolvePreset(input) {
|
|
18
|
-
return resolveResultPreset({
|
|
19
|
-
...input,
|
|
20
|
-
presets: config.presets,
|
|
21
|
-
});
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
function createBaseContext(config, input) {
|
|
26
|
-
const result = normalizeResultLike(input.result);
|
|
27
|
-
const level = getResultLevel(result);
|
|
28
|
-
const status = toResultStatus(result.status, level === "error" ? 400 : 200);
|
|
29
|
-
return {
|
|
30
|
-
req: input.req,
|
|
31
|
-
res: input.res,
|
|
32
|
-
input,
|
|
33
|
-
result,
|
|
34
|
-
level,
|
|
35
|
-
status,
|
|
2
|
+
import { buildRenderModel, handleRenderFailure, shapeResultPayload, } from "./responder_support.js";
|
|
3
|
+
import { isPromiseLike } from "./shared.js";
|
|
4
|
+
function createResponder(config) {
|
|
5
|
+
return function configuredRespond(context, result, options = {}) {
|
|
6
|
+
return respond(context, result, options, config);
|
|
36
7
|
};
|
|
37
8
|
}
|
|
38
|
-
function
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
function buildJsonPayload(context) {
|
|
45
|
-
const { input, level, result, status } = context;
|
|
46
|
-
const payload = {
|
|
47
|
-
ok: level !== "error",
|
|
48
|
-
error: level === "error" ? result.error !== false : false,
|
|
49
|
-
noop: level === "noop",
|
|
50
|
-
status,
|
|
51
|
-
error_code: resolveErrorCode(level, status, result),
|
|
52
|
-
message: resolveMessage(level, status, result, input),
|
|
53
|
-
data: hasOwn(result, "data") ? (result.data ?? null) : null,
|
|
54
|
-
};
|
|
55
|
-
if (hasOwn(result, "details") && result.details !== undefined) {
|
|
56
|
-
payload.details = result.details;
|
|
57
|
-
}
|
|
58
|
-
if (typeof result.redirect === "string" && result.redirect.length > 0) {
|
|
59
|
-
payload.redirect = result.redirect;
|
|
9
|
+
function respond(context, result, options, config) {
|
|
10
|
+
const logger = resolveLogger(config.logger, config.loggerAdapter);
|
|
11
|
+
const payload = shapeResultPayload(result, config, context, options);
|
|
12
|
+
const renderMode = options.render ?? false;
|
|
13
|
+
if (renderMode === "text") {
|
|
14
|
+
return config.sendText(context, payload.status, payload.message);
|
|
60
15
|
}
|
|
61
|
-
if (
|
|
62
|
-
|
|
16
|
+
if (renderMode === true || renderMode === "auto") {
|
|
17
|
+
const model = buildRenderModel(payload, options);
|
|
18
|
+
if (config.render) {
|
|
19
|
+
return renderWithFallback(config, logger, context, model);
|
|
20
|
+
}
|
|
21
|
+
if (renderMode === true) {
|
|
22
|
+
return config.sendText(context, payload.status, payload.message);
|
|
23
|
+
}
|
|
63
24
|
}
|
|
64
|
-
|
|
65
|
-
return payload;
|
|
25
|
+
return config.sendJson(context, payload);
|
|
66
26
|
}
|
|
67
|
-
function
|
|
68
|
-
const { input, level, result } = context;
|
|
69
|
-
const preset = resolveResultPreset({
|
|
70
|
-
presets: config.presets,
|
|
71
|
-
level,
|
|
72
|
-
status: result.status,
|
|
73
|
-
type: input.type,
|
|
74
|
-
});
|
|
75
|
-
const status = toResultStatus(result.status, toResultStatus(preset.status, defaultResultStatus(level)));
|
|
76
|
-
const message = resolveMessage(level, status, result, input, preset);
|
|
77
|
-
const renderModePath = buildResultRenderModePath(config.getRenderModePath?.({
|
|
78
|
-
...context,
|
|
79
|
-
status,
|
|
80
|
-
}), level);
|
|
81
|
-
const meta = mergeMetadata(preset.meta, isObject(result.meta) ? result.meta : null, input.meta);
|
|
82
|
-
return {
|
|
83
|
-
level,
|
|
84
|
-
status,
|
|
85
|
-
type: (input.type || ""),
|
|
86
|
-
title: resolveTitle(level, status, result, input, preset),
|
|
87
|
-
message,
|
|
88
|
-
view: resolveView(result, input, preset),
|
|
89
|
-
details: resolveDetails(result, input),
|
|
90
|
-
meta,
|
|
91
|
-
error_code: resolveErrorCode(level, status, result),
|
|
92
|
-
redirect: typeof result.redirect === "string" && result.redirect.length > 0 ? result.redirect : null,
|
|
93
|
-
preset,
|
|
94
|
-
renderModePath,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
function respondWithRender(config, logger, context, model) {
|
|
98
|
-
const renderContext = {
|
|
99
|
-
...context,
|
|
100
|
-
status: model.status,
|
|
101
|
-
model,
|
|
102
|
-
};
|
|
103
|
-
if (!config.render) {
|
|
104
|
-
return config.text(createTextContext(renderContext, "no-renderer"));
|
|
105
|
-
}
|
|
27
|
+
function renderWithFallback(config, logger, context, model) {
|
|
106
28
|
try {
|
|
107
|
-
const rendered = config.render(
|
|
29
|
+
const rendered = config.render?.(context, model);
|
|
108
30
|
if (isPromiseLike(rendered)) {
|
|
109
|
-
return Promise.resolve(rendered).catch((error) => handleRenderFailure(config, logger,
|
|
31
|
+
return Promise.resolve(rendered).catch((error) => handleRenderFailure(config, logger, context, model, error));
|
|
110
32
|
}
|
|
111
33
|
return rendered;
|
|
112
34
|
}
|
|
113
35
|
catch (error) {
|
|
114
|
-
return handleRenderFailure(config, logger,
|
|
36
|
+
return handleRenderFailure(config, logger, context, model, error);
|
|
115
37
|
}
|
|
116
38
|
}
|
|
117
|
-
export {
|
|
39
|
+
export { createResponder, respond, };
|
|
118
40
|
//# sourceMappingURL=responder.js.map
|
package/dist/responder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responder.js","sourceRoot":"","sources":["../../src/responder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"responder.js","sourceRoot":"","sources":["../../src/responder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQxC,SAAS,eAAe,CACtB,MAAyC;IAEzC,OAAO,SAAS,iBAAiB,CAC/B,OAAY,EACZ,MAAqC,EACrC,UAAuC,EAAE;QAEzC,OAAO,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CACd,OAAY,EACZ,MAAqC,EACrC,OAAoC,EACpC,MAAyC;IAEzC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IAE3C,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEjD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAyC,EACzC,MAAwC,EACxC,OAAY,EACZ,KAAiD;IAEjD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEjD,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACzH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,OAAO,EACL,eAAe,EACf,OAAO,GACR,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import type { NormalizedResultLogger,
|
|
2
|
-
declare function
|
|
3
|
-
declare function
|
|
4
|
-
declare function
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import type { NormalizedResultLogger, ResultI18nBundle, ResultLike, ResultMetadata, ResultPayload, ResultRenderModel, ResultResponderConfig, ResultRespondOptions } from "./types.js";
|
|
2
|
+
declare function shapeResultPayload<Ctx = unknown, TType extends string = string>(resultLike: ResultLike | null | undefined, config: ResultResponderConfig<Ctx, TType>, context: Ctx, options?: ResultRespondOptions<TType>): ResultPayload;
|
|
3
|
+
declare function buildRenderModel<TType extends string = string>(payload: ResultPayload, options?: ResultRespondOptions<TType>): ResultRenderModel<TType>;
|
|
4
|
+
declare function translateMessage(key: string, options: {
|
|
5
|
+
bundle?: Record<string, ResultI18nBundle | undefined>;
|
|
6
|
+
language?: string | null | undefined;
|
|
7
|
+
variables?: ResultMetadata;
|
|
8
|
+
}): string;
|
|
9
|
+
declare function interpolateMessage(template: string, variables: ResultMetadata): string;
|
|
10
|
+
declare function handleRenderFailure<Ctx = unknown, TType extends string = string>(config: ResultResponderConfig<Ctx, TType>, logger: NormalizedResultLogger | null, context: Ctx, model: ResultRenderModel<TType>, error: unknown): unknown;
|
|
11
|
+
export { buildRenderModel, handleRenderFailure, interpolateMessage, shapeResultPayload, translateMessage, };
|
|
10
12
|
//# sourceMappingURL=responder_support.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responder_support.d.ts","sourceRoot":"","sources":["../../src/responder_support.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"responder_support.d.ts","sourceRoot":"","sources":["../../src/responder_support.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,QAAQ,CAAC;AAEhB,iBAAS,kBAAkB,CAAC,GAAG,GAAG,OAAO,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM,EACtE,UAAU,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,EACzC,MAAM,EAAE,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,EACzC,OAAO,EAAE,GAAG,EACZ,OAAO,GAAE,oBAAoB,CAAC,KAAK,CAAM,GACxC,aAAa,CA6Bf;AAED,iBAAS,gBAAgB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EACrD,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,oBAAoB,CAAC,KAAK,CAAM,GACxC,iBAAiB,CAAC,KAAK,CAAC,CAkB1B;AAwBD,iBAAS,gBAAgB,CACvB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B,GACA,MAAM,CAGR;AAqDD,iBAAS,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,MAAM,CAK/E;AAsDD,iBAAS,mBAAmB,CAAC,GAAG,GAAG,OAAO,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM,EACvE,MAAM,EAAE,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,EACzC,MAAM,EAAE,sBAAsB,GAAG,IAAI,EACrC,OAAO,EAAE,GAAG,EACZ,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAC/B,KAAK,EAAE,OAAO,WAYf;AAED,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,CAAC"}
|
|
@@ -1,72 +1,115 @@
|
|
|
1
|
-
import { defaultResultMessage, defaultResultTitle, defaultTextFallback, formatErrorMessage, hasOwn, normalizeResultErrorCode, } from "./shared.js";
|
|
2
|
-
function
|
|
1
|
+
import { defaultResultMessage, defaultResultTitle, defaultTextFallback, extractResultExtras, formatErrorMessage, getResultLevel, hasOwn, isObject, mergeMetadata, normalizeResultErrorCode, normalizeResultLike, toResultStatus, } from "./shared.js";
|
|
2
|
+
function shapeResultPayload(resultLike, config, context, options = {}) {
|
|
3
|
+
const result = normalizeResultLike(resultLike);
|
|
4
|
+
const level = getResultLevel(result);
|
|
5
|
+
const status = toResultStatus(result.status, level === "error" ? 400 : 200);
|
|
6
|
+
const meta = mergeMetadata(isObject(result.meta) ? result.meta : null, options.meta);
|
|
7
|
+
const payload = {
|
|
8
|
+
ok: level !== "error",
|
|
9
|
+
error: level === "error" ? result.error !== false : false,
|
|
10
|
+
noop: level === "noop",
|
|
11
|
+
status,
|
|
12
|
+
error_code: resolveErrorCode(level, status, result),
|
|
13
|
+
message: resolveLocalizedMessage(result, config, context, options, meta),
|
|
14
|
+
data: hasOwn(result, "data") ? (result.data ?? null) : null,
|
|
15
|
+
};
|
|
16
|
+
if (hasOwn(result, "details") && result.details !== undefined) {
|
|
17
|
+
payload.details = result.details;
|
|
18
|
+
}
|
|
19
|
+
if (typeof result.redirect === "string" && result.redirect.length > 0) {
|
|
20
|
+
payload.redirect = result.redirect;
|
|
21
|
+
}
|
|
22
|
+
if (Object.keys(meta).length > 0) {
|
|
23
|
+
payload.meta = meta;
|
|
24
|
+
}
|
|
25
|
+
Object.assign(payload, extractResultExtras(result));
|
|
26
|
+
return payload;
|
|
27
|
+
}
|
|
28
|
+
function buildRenderModel(payload, options = {}) {
|
|
29
|
+
const level = getResultLevel(payload);
|
|
30
|
+
const type = (options.type || "");
|
|
31
|
+
const title = resolveTitle(level, payload.status, options);
|
|
3
32
|
return {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
33
|
+
level,
|
|
34
|
+
status: payload.status,
|
|
35
|
+
type,
|
|
36
|
+
title,
|
|
37
|
+
message: payload.message,
|
|
38
|
+
view: resolveView(options),
|
|
39
|
+
details: hasOwn(payload, "details") ? payload.details : options.details,
|
|
40
|
+
meta: mergeMetadata(isObject(payload.meta) ? payload.meta : null, options.meta),
|
|
41
|
+
error_code: payload.error_code,
|
|
42
|
+
redirect: typeof payload.redirect === "string" && payload.redirect.length > 0 ? payload.redirect : null,
|
|
43
|
+
payload,
|
|
8
44
|
};
|
|
9
45
|
}
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
46
|
+
function resolveLocalizedMessage(result, config, context, options, meta) {
|
|
47
|
+
if (typeof options.message === "string" && options.message.trim()) {
|
|
48
|
+
return interpolateMessage(options.message, meta);
|
|
49
|
+
}
|
|
50
|
+
const key = typeof result.message === "string" && result.message.trim()
|
|
51
|
+
? result.message
|
|
52
|
+
: defaultResultMessage(getResultLevel(result), result.status);
|
|
53
|
+
return translateMessage(key, {
|
|
54
|
+
bundle: options.i18n,
|
|
55
|
+
language: config.getLanguage?.(context),
|
|
56
|
+
variables: meta,
|
|
18
57
|
});
|
|
19
|
-
return config.text(createTextContext(context, "fallback", error));
|
|
20
58
|
}
|
|
21
|
-
function
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
if (typeof input.message === "string" && input.message.trim()) {
|
|
26
|
-
return input.message;
|
|
27
|
-
}
|
|
28
|
-
if (typeof result.message === "string" && result.message.trim()) {
|
|
29
|
-
return result.message;
|
|
30
|
-
}
|
|
31
|
-
if (typeof preset?.message === "string" && preset.message.trim()) {
|
|
32
|
-
return preset.message;
|
|
33
|
-
}
|
|
34
|
-
return defaultResultMessage(level, status);
|
|
59
|
+
function translateMessage(key, options) {
|
|
60
|
+
const template = lookupLocalizedTemplate(key, options.bundle, options.language);
|
|
61
|
+
return interpolateMessage(template || key, options.variables || {});
|
|
35
62
|
}
|
|
36
|
-
function
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return input.title;
|
|
40
|
-
}
|
|
41
|
-
if (titleFromResult.trim()) {
|
|
42
|
-
return titleFromResult;
|
|
63
|
+
function lookupLocalizedTemplate(key, bundle, language) {
|
|
64
|
+
if (!bundle) {
|
|
65
|
+
return "";
|
|
43
66
|
}
|
|
44
|
-
|
|
45
|
-
|
|
67
|
+
for (const candidate of languageCandidates(language)) {
|
|
68
|
+
const value = lookupBundleValue(bundle[candidate], key);
|
|
69
|
+
if (typeof value === "string") {
|
|
70
|
+
return value;
|
|
71
|
+
}
|
|
46
72
|
}
|
|
47
|
-
return
|
|
73
|
+
return "";
|
|
48
74
|
}
|
|
49
|
-
function
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return
|
|
75
|
+
function languageCandidates(language) {
|
|
76
|
+
const normalized = typeof language === "string" ? language.trim().toLowerCase().replace(/_/gu, "-") : "";
|
|
77
|
+
const candidates = [];
|
|
78
|
+
if (normalized) {
|
|
79
|
+
candidates.push(normalized);
|
|
80
|
+
const base = normalized.split("-")[0];
|
|
81
|
+
if (base && base !== normalized) {
|
|
82
|
+
candidates.push(base);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
candidates.push("en");
|
|
86
|
+
return Array.from(new Set(candidates));
|
|
61
87
|
}
|
|
62
|
-
function
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
88
|
+
function lookupBundleValue(bundle, key) {
|
|
89
|
+
let current = bundle;
|
|
90
|
+
for (const segment of key.split(".")) {
|
|
91
|
+
if (!segment || !isObject(current)) {
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
current = current[segment];
|
|
95
|
+
}
|
|
96
|
+
return current;
|
|
97
|
+
}
|
|
98
|
+
function interpolateMessage(template, variables) {
|
|
99
|
+
return template.replace(/\{\{\s*([A-Za-z0-9_.-]+)\s*\}\}|\{([A-Za-z0-9_.-]+)\}/gu, (match, doubleKey, singleKey) => {
|
|
100
|
+
const value = lookupVariable(variables, doubleKey || singleKey);
|
|
101
|
+
return value == null ? match : String(value);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
function lookupVariable(variables, key) {
|
|
105
|
+
let current = variables;
|
|
106
|
+
for (const segment of key.split(".")) {
|
|
107
|
+
if (!segment || !isObject(current)) {
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
current = current[segment];
|
|
111
|
+
}
|
|
112
|
+
return current;
|
|
70
113
|
}
|
|
71
114
|
function resolveErrorCode(level, status, result) {
|
|
72
115
|
const normalized = normalizeResultErrorCode(result.error_code);
|
|
@@ -84,5 +127,25 @@ function resolveErrorCode(level, status, result) {
|
|
|
84
127
|
}
|
|
85
128
|
return "failed";
|
|
86
129
|
}
|
|
87
|
-
|
|
130
|
+
function resolveTitle(level, status, options) {
|
|
131
|
+
if (typeof options.title === "string" && options.title.trim()) {
|
|
132
|
+
return options.title;
|
|
133
|
+
}
|
|
134
|
+
return defaultResultTitle(level, status);
|
|
135
|
+
}
|
|
136
|
+
function resolveView(options) {
|
|
137
|
+
return typeof options.view === "string" && options.view.trim() ? options.view : null;
|
|
138
|
+
}
|
|
139
|
+
function handleRenderFailure(config, logger, context, model, error) {
|
|
140
|
+
logger?.error("trebired.result.responder", "render-failed", {
|
|
141
|
+
level: model.level,
|
|
142
|
+
status: model.status,
|
|
143
|
+
type: model.type || null,
|
|
144
|
+
view: model.view,
|
|
145
|
+
error: formatErrorMessage(error),
|
|
146
|
+
...model.meta,
|
|
147
|
+
});
|
|
148
|
+
return config.sendText(context, model.status, defaultTextFallback(model.level, model.status, model.title));
|
|
149
|
+
}
|
|
150
|
+
export { buildRenderModel, handleRenderFailure, interpolateMessage, shapeResultPayload, translateMessage, };
|
|
88
151
|
//# sourceMappingURL=responder_support.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responder_support.js","sourceRoot":"","sources":["../../src/responder_support.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,EACN,wBAAwB,
|
|
1
|
+
{"version":3,"file":"responder_support.js","sourceRoot":"","sources":["../../src/responder_support.ts"],"names":[],"mappings":"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"}
|
package/dist/result.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
declare function ok<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(message?: string, meta?:
|
|
3
|
-
declare function noop<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(
|
|
4
|
-
declare function error<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(status?: number,
|
|
5
|
-
declare function badRequest<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(
|
|
6
|
-
declare function unauthorized<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(
|
|
7
|
-
declare function forbidden<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(
|
|
8
|
-
declare function notFound<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(
|
|
9
|
-
declare function conflict<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(
|
|
10
|
-
declare function internal<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(
|
|
1
|
+
import type { ResultLike, ResultMetadata } from "./types.js";
|
|
2
|
+
declare function ok<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(message?: string, meta?: TMeta): ResultLike<TData, TDetails, TMeta>;
|
|
3
|
+
declare function noop<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(message?: string, meta?: TMeta): ResultLike<TData, TDetails, TMeta>;
|
|
4
|
+
declare function error<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(status?: number, message?: string, meta?: TMeta): ResultLike<TData, TDetails, TMeta>;
|
|
5
|
+
declare function badRequest<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(message?: string, meta?: TMeta): ResultLike<TData, TDetails, TMeta>;
|
|
6
|
+
declare function unauthorized<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(message?: string, meta?: TMeta): ResultLike<TData, TDetails, TMeta>;
|
|
7
|
+
declare function forbidden<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(message?: string, meta?: TMeta): ResultLike<TData, TDetails, TMeta>;
|
|
8
|
+
declare function notFound<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(message?: string, meta?: TMeta): ResultLike<TData, TDetails, TMeta>;
|
|
9
|
+
declare function conflict<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(message?: string, meta?: TMeta): ResultLike<TData, TDetails, TMeta>;
|
|
10
|
+
declare function internal<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata>(message?: string, meta?: TMeta): ResultLike<TData, TDetails, TMeta>;
|
|
11
11
|
declare const result: {
|
|
12
12
|
readonly ok: typeof ok;
|
|
13
13
|
readonly noop: typeof noop;
|
package/dist/result.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/result.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/result.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEzD,iBAAS,EAAE,CACT,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,OAAO,EAClB,KAAK,SAAS,cAAc,GAAG,cAAc,EAE7C,OAAO,SAAY,EACnB,IAAI,CAAC,EAAE,KAAK,GACX,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAUpC;AAED,iBAAS,IAAI,CACX,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,OAAO,EAClB,KAAK,SAAS,cAAc,GAAG,cAAc,EAE7C,OAAO,SAAS,EAChB,IAAI,CAAC,EAAE,KAAK,GACX,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAUpC;AAED,iBAAS,KAAK,CACZ,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,OAAO,EAClB,KAAK,SAAS,cAAc,GAAG,cAAc,EAE7C,MAAM,SAAM,EACZ,OAAO,SAAW,EAClB,IAAI,CAAC,EAAE,KAAK,GACX,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAUpC;AAED,iBAAS,UAAU,CACjB,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,OAAO,EAClB,KAAK,SAAS,cAAc,GAAG,cAAc,EAE7C,OAAO,SAAe,EACtB,IAAI,CAAC,EAAE,KAAK,GACX,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAEpC;AAED,iBAAS,YAAY,CACnB,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,OAAO,EAClB,KAAK,SAAS,cAAc,GAAG,cAAc,EAE7C,OAAO,SAAiB,EACxB,IAAI,CAAC,EAAE,KAAK,GACX,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAEpC;AAED,iBAAS,SAAS,CAChB,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,OAAO,EAClB,KAAK,SAAS,cAAc,GAAG,cAAc,EAE7C,OAAO,SAAc,EACrB,IAAI,CAAC,EAAE,KAAK,GACX,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAEpC;AAED,iBAAS,QAAQ,CACf,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,OAAO,EAClB,KAAK,SAAS,cAAc,GAAG,cAAc,EAE7C,OAAO,SAAa,EACpB,IAAI,CAAC,EAAE,KAAK,GACX,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAEpC;AAED,iBAAS,QAAQ,CACf,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,OAAO,EAClB,KAAK,SAAS,cAAc,GAAG,cAAc,EAE7C,OAAO,SAAa,EACpB,IAAI,CAAC,EAAE,KAAK,GACX,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAEpC;AAED,iBAAS,QAAQ,CACf,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,OAAO,EAClB,KAAK,SAAS,cAAc,GAAG,cAAc,EAE7C,OAAO,SAAkB,EACzB,IAAI,CAAC,EAAE,KAAK,GACX,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAEpC;AAED,QAAA,MAAM,MAAM;;;;;;;;;;CAUF,CAAC;AAwCX,OAAO,EACL,UAAU,EACV,QAAQ,EACR,KAAK,EACL,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,MAAM,EACN,YAAY,GACb,CAAC"}
|
package/dist/result.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
function ok(message = "
|
|
1
|
+
import { normalizeResultErrorCode, toResultStatus } from "./shared.js";
|
|
2
|
+
function ok(message = "success", meta) {
|
|
3
3
|
return createResult({
|
|
4
4
|
ok: true,
|
|
5
5
|
error: false,
|
|
@@ -10,48 +10,45 @@ function ok(message = "Success.", meta) {
|
|
|
10
10
|
meta,
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
|
-
function noop(
|
|
13
|
+
function noop(message = "noop", meta) {
|
|
14
14
|
return createResult({
|
|
15
15
|
ok: true,
|
|
16
16
|
error: false,
|
|
17
17
|
noop: true,
|
|
18
18
|
status: 200,
|
|
19
|
-
error_code: normalizeResultErrorCode(
|
|
19
|
+
error_code: normalizeResultErrorCode(message) || "noop",
|
|
20
20
|
message,
|
|
21
21
|
meta,
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
-
function error(status = 400,
|
|
24
|
+
function error(status = 400, message = "failed", meta) {
|
|
25
25
|
return createResult({
|
|
26
26
|
ok: false,
|
|
27
|
-
error:
|
|
27
|
+
error: true,
|
|
28
28
|
noop: false,
|
|
29
29
|
status: toResultStatus(status, 400),
|
|
30
|
-
error_code: normalizeResultErrorCode(
|
|
30
|
+
error_code: normalizeResultErrorCode(message) || "failed",
|
|
31
31
|
message,
|
|
32
32
|
meta,
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
-
function badRequest(
|
|
36
|
-
return error(400,
|
|
35
|
+
function badRequest(message = "badRequest", meta) {
|
|
36
|
+
return error(400, message, meta);
|
|
37
37
|
}
|
|
38
|
-
function unauthorized(
|
|
39
|
-
return error(401,
|
|
38
|
+
function unauthorized(message = "unauthorized", meta) {
|
|
39
|
+
return error(401, message, meta);
|
|
40
40
|
}
|
|
41
|
-
function forbidden(
|
|
42
|
-
return error(403,
|
|
41
|
+
function forbidden(message = "forbidden", meta) {
|
|
42
|
+
return error(403, message, meta);
|
|
43
43
|
}
|
|
44
|
-
function notFound(
|
|
45
|
-
return error(404,
|
|
44
|
+
function notFound(message = "notFound", meta) {
|
|
45
|
+
return error(404, message, meta);
|
|
46
46
|
}
|
|
47
|
-
function conflict(
|
|
48
|
-
return error(409,
|
|
47
|
+
function conflict(message = "conflict", meta) {
|
|
48
|
+
return error(409, message, meta);
|
|
49
49
|
}
|
|
50
|
-
function internal(
|
|
51
|
-
return error(500,
|
|
52
|
-
...meta,
|
|
53
|
-
error: typeof meta?.error === "boolean" ? meta.error : true,
|
|
54
|
-
});
|
|
50
|
+
function internal(message = "internalError", meta) {
|
|
51
|
+
return error(500, message, meta);
|
|
55
52
|
}
|
|
56
53
|
const result = {
|
|
57
54
|
ok,
|
|
@@ -72,16 +69,10 @@ function createResult({ ok, error, noop, status, error_code, message, meta, }) {
|
|
|
72
69
|
status,
|
|
73
70
|
error_code,
|
|
74
71
|
message,
|
|
75
|
-
data:
|
|
72
|
+
data: null,
|
|
76
73
|
};
|
|
77
|
-
if (
|
|
78
|
-
out.
|
|
79
|
-
}
|
|
80
|
-
if (typeof meta?.redirect === "string" && meta.redirect.length > 0) {
|
|
81
|
-
out.redirect = meta.redirect;
|
|
82
|
-
}
|
|
83
|
-
if (meta?.meta && Object.keys(meta.meta).length > 0) {
|
|
84
|
-
out.meta = meta.meta;
|
|
74
|
+
if (meta && Object.keys(meta).length > 0) {
|
|
75
|
+
out.meta = meta;
|
|
85
76
|
}
|
|
86
77
|
return out;
|
|
87
78
|
}
|
package/dist/result.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/result.ts"],"names":[],"mappings":"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"}
|
package/dist/shared.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAetE,iBAAS,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAElE;AAED,iBAAS,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQhE;AAED,iBAAS,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAetE,iBAAS,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAElE;AAED,iBAAS,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQhE;AAED,iBAAS,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAaxD;AAED,iBAAS,cAAc,CAAC,UAAU,EAAE,OAAO,GAAG,WAAW,CAMxD;AAED,iBAAS,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,CAclF;AAED,iBAAS,aAAa,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,cAAc,CAY/D;AAED,iBAAS,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,CAYnE;AAED,iBAAS,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAehE;AAED,iBAAS,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,CAKlG;AAED,iBAAS,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAMvD;AAED,iBAAS,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA8BtE;AAED,iBAAS,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA8BxE;AAED,iBAAS,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBtF;AAED,iBAAS,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMlD;AAED,iBAAS,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAE3E;AAED,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,MAAM,EACN,QAAQ,EACR,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,mBAAmB,EACnB,cAAc,EACd,aAAa,GACd,CAAC"}
|