@duplojs/http 0.4.0 → 0.5.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/dist/core/builders/preflight/builder.cjs +1 -0
- package/dist/core/builders/preflight/builder.d.ts +5 -1
- package/dist/core/builders/preflight/builder.mjs +1 -0
- package/dist/core/builders/preflight/process.cjs +2 -1
- package/dist/core/builders/preflight/process.d.ts +4 -2
- package/dist/core/builders/preflight/process.mjs +2 -1
- package/dist/core/builders/preflight/route.cjs +4 -0
- package/dist/core/builders/preflight/route.d.ts +9 -3
- package/dist/core/builders/preflight/route.mjs +4 -0
- package/dist/core/builders/process/builder.cjs +1 -0
- package/dist/core/builders/process/builder.d.ts +4 -1
- package/dist/core/builders/process/builder.mjs +1 -0
- package/dist/core/builders/process/checker.cjs +2 -1
- package/dist/core/builders/process/checker.d.ts +4 -2
- package/dist/core/builders/process/checker.mjs +2 -1
- package/dist/core/builders/process/cut.cjs +2 -1
- package/dist/core/builders/process/cut.d.ts +3 -1
- package/dist/core/builders/process/cut.mjs +2 -1
- package/dist/core/builders/process/extract.cjs +2 -1
- package/dist/core/builders/process/extract.d.ts +3 -1
- package/dist/core/builders/process/extract.mjs +2 -1
- package/dist/core/builders/process/index.cjs +1 -1
- package/dist/core/builders/process/index.d.ts +1 -1
- package/dist/core/builders/process/index.mjs +1 -1
- package/dist/core/builders/process/presetChecker.cjs +2 -1
- package/dist/core/builders/process/presetChecker.d.ts +3 -1
- package/dist/core/builders/process/presetChecker.mjs +2 -1
- package/dist/core/builders/process/process.cjs +2 -1
- package/dist/core/builders/process/process.d.ts +4 -2
- package/dist/core/builders/process/process.mjs +2 -1
- package/dist/core/builders/route/builder.cjs +1 -0
- package/dist/core/builders/route/builder.d.ts +4 -1
- package/dist/core/builders/route/builder.mjs +1 -0
- package/dist/core/builders/route/checker.cjs +2 -1
- package/dist/core/builders/route/checker.d.ts +4 -2
- package/dist/core/builders/route/checker.mjs +2 -1
- package/dist/core/builders/route/cut.cjs +2 -1
- package/dist/core/builders/route/cut.d.ts +3 -1
- package/dist/core/builders/route/cut.mjs +2 -1
- package/dist/core/builders/route/extract.cjs +2 -1
- package/dist/core/builders/route/extract.d.ts +3 -1
- package/dist/core/builders/route/extract.mjs +2 -1
- package/dist/core/builders/route/handler.cjs +9 -2
- package/dist/core/builders/route/handler.d.ts +3 -1
- package/dist/core/builders/route/handler.mjs +9 -2
- package/dist/core/builders/route/presetChecker.cjs +2 -1
- package/dist/core/builders/route/presetChecker.d.ts +3 -1
- package/dist/core/builders/route/presetChecker.mjs +2 -1
- package/dist/core/builders/route/process.cjs +2 -1
- package/dist/core/builders/route/process.d.ts +4 -2
- package/dist/core/builders/route/process.mjs +2 -1
- package/dist/core/hub/defaultNotfoundHandler.cjs +1 -0
- package/dist/core/hub/defaultNotfoundHandler.d.ts +1 -0
- package/dist/core/hub/defaultNotfoundHandler.mjs +1 -0
- package/dist/core/hub/index.cjs +1 -0
- package/dist/core/hub/index.mjs +1 -0
- package/dist/core/index.cjs +6 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.mjs +3 -0
- package/dist/core/metadata/base.cjs +20 -0
- package/dist/core/metadata/base.d.ts +14 -0
- package/dist/core/metadata/base.mjs +17 -0
- package/dist/core/metadata/ignoreByRouteStore.cjs +7 -0
- package/dist/core/metadata/ignoreByRouteStore.d.ts +1 -0
- package/dist/core/metadata/ignoreByRouteStore.mjs +5 -0
- package/dist/core/metadata/index.cjs +10 -0
- package/dist/core/metadata/index.d.ts +2 -0
- package/dist/core/metadata/index.mjs +2 -0
- package/dist/core/process/index.d.ts +3 -1
- package/dist/core/route/index.d.ts +2 -0
- package/dist/core/router/index.cjs +1 -0
- package/dist/core/router/index.mjs +1 -0
- package/dist/core/steps/checker.d.ts +2 -0
- package/dist/core/steps/cut.d.ts +2 -0
- package/dist/core/steps/extract.d.ts +2 -0
- package/dist/core/steps/handler.d.ts +2 -0
- package/dist/core/steps/presetChecker.d.ts +2 -0
- package/dist/core/steps/process.d.ts +2 -0
- package/dist/plugins/codeGenerator/{stepsToDataParser.cjs → aggregateStepContract.cjs} +8 -5
- package/dist/plugins/codeGenerator/{stepsToDataParser.d.ts → aggregateStepContract.d.ts} +1 -1
- package/dist/plugins/codeGenerator/{stepsToDataParser.mjs → aggregateStepContract.mjs} +9 -6
- package/dist/plugins/codeGenerator/index.cjs +4 -2
- package/dist/plugins/codeGenerator/index.d.ts +2 -1
- package/dist/plugins/codeGenerator/index.mjs +2 -1
- package/dist/plugins/codeGenerator/metadata.cjs +8 -0
- package/dist/plugins/codeGenerator/metadata.d.ts +1 -0
- package/dist/plugins/codeGenerator/metadata.mjs +6 -0
- package/dist/plugins/codeGenerator/routeToDataParser.cjs +7 -2
- package/dist/plugins/codeGenerator/routeToDataParser.mjs +8 -3
- package/dist/plugins/openApiGenerator/aggregateStepContract.cjs +6 -3
- package/dist/plugins/openApiGenerator/aggregateStepContract.mjs +7 -4
- package/dist/plugins/openApiGenerator/index.cjs +2 -0
- package/dist/plugins/openApiGenerator/index.d.ts +1 -0
- package/dist/plugins/openApiGenerator/index.mjs +1 -0
- package/dist/plugins/openApiGenerator/makeOpenApiRoute.d.ts +2 -0
- package/dist/plugins/openApiGenerator/metadata.cjs +8 -0
- package/dist/plugins/openApiGenerator/metadata.d.ts +1 -0
- package/dist/plugins/openApiGenerator/metadata.mjs +6 -0
- package/dist/plugins/openApiGenerator/routeToOpenApi.cjs +5 -0
- package/dist/plugins/openApiGenerator/routeToOpenApi.mjs +6 -1
- package/package.json +1 -1
- /package/dist/core/builders/process/{export.cjs → exports.cjs} +0 -0
- /package/dist/core/builders/process/{export.d.ts → exports.d.ts} +0 -0
- /package/dist/core/builders/process/{export.mjs → exports.mjs} +0 -0
|
@@ -2,9 +2,11 @@ import { type Kind } from "@duplojs/utils";
|
|
|
2
2
|
import { type StepKind } from "./kind";
|
|
3
3
|
import { type Floor } from "../floor";
|
|
4
4
|
import { type PresetChecker } from "../presetChecker";
|
|
5
|
+
import { type Metadata } from "../metadata";
|
|
5
6
|
export interface PresetCheckerStepDefinition {
|
|
6
7
|
readonly presetChecker: PresetChecker;
|
|
7
8
|
input(input: Floor): unknown;
|
|
9
|
+
readonly metadata: readonly Metadata[];
|
|
8
10
|
}
|
|
9
11
|
export declare const presetCheckerStepKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/presetChecker-step", unknown>>;
|
|
10
12
|
export type _PresetCheckerStep = (Kind<typeof presetCheckerStepKind.definition> & StepKind);
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { type Kind } from "@duplojs/utils";
|
|
2
2
|
import { type StepKind } from "./kind";
|
|
3
3
|
import { type Process } from "../process";
|
|
4
|
+
import { type Metadata } from "../metadata";
|
|
4
5
|
export interface ProcessStepDefinition {
|
|
5
6
|
readonly process: Process;
|
|
6
7
|
readonly options?: Record<string, unknown> | ((input: any) => Record<string, unknown>);
|
|
7
8
|
readonly imports?: readonly string[];
|
|
9
|
+
readonly metadata: readonly Metadata[];
|
|
8
10
|
}
|
|
9
11
|
export declare const processStepKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/process-step", unknown>>;
|
|
10
12
|
export type _ProcessStep = (Kind<typeof processStepKind.definition> & StepKind);
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
require('../../core/steps/index.cjs');
|
|
4
4
|
var utils = require('@duplojs/utils');
|
|
5
|
+
var metadata = require('./metadata.cjs');
|
|
6
|
+
var identifier = require('../../core/steps/identifier.cjs');
|
|
5
7
|
var process = require('../../core/steps/process.cjs');
|
|
6
8
|
var extract = require('../../core/steps/extract.cjs');
|
|
7
9
|
var presetChecker = require('../../core/steps/presetChecker.cjs');
|
|
@@ -9,12 +11,13 @@ var checker = require('../../core/steps/checker.cjs');
|
|
|
9
11
|
var cut = require('../../core/steps/cut.cjs');
|
|
10
12
|
var handler = require('../../core/steps/handler.cjs');
|
|
11
13
|
|
|
12
|
-
function
|
|
13
|
-
const
|
|
14
|
+
function aggregateStepContract(steps, params) {
|
|
15
|
+
const filteredStep = utils.A.filter(steps, (step) => utils.A.find(step.definition.metadata, metadata.IgnoreByCodeGeneratorMetadata.is) === undefined);
|
|
16
|
+
const processContracts = utils.pipe(filteredStep, utils.A.filter(identifier.stepIdentifier(process.processStepKind)), utils.A.filter((step) => utils.A.find(step.definition.process.definition.metadata, metadata.IgnoreByCodeGeneratorMetadata.is) === undefined), utils.A.map((element) => aggregateStepContract(element.definition.process.definition.steps, params)), utils.O.to({
|
|
14
17
|
entrypointContract: utils.A.map((result) => result.entrypointContract),
|
|
15
18
|
endpointContract: utils.A.flatMap((result) => result.endpointContract),
|
|
16
19
|
}));
|
|
17
|
-
const entrypointContract = utils.pipe(
|
|
20
|
+
const entrypointContract = utils.pipe(filteredStep, utils.A.filter(extract.extractStepKind.has), utils.A.map((extractStep) => extractStep.definition.shape), utils.A.concat(processContracts.entrypointContract), utils.A.reduce(utils.A.reduceFrom({
|
|
18
21
|
body: {},
|
|
19
22
|
headers: {},
|
|
20
23
|
params: {},
|
|
@@ -43,7 +46,7 @@ function stepsToDataParser(steps, params) {
|
|
|
43
46
|
}
|
|
44
47
|
return utils.O.entry(key, currentExtractDataParser);
|
|
45
48
|
}), utils.O.fromEntries, (object) => nextWithObject(lastValue, object))));
|
|
46
|
-
const endpointContract = utils.pipe(
|
|
49
|
+
const endpointContract = utils.pipe(filteredStep, utils.A.flatMap((step) => utils.P.match(step)
|
|
47
50
|
.when(process.processStepKind.has, () => [])
|
|
48
51
|
.when(extract.extractStepKind.has, ({ definition }) => definition.responseContract ?? params.defaultExtractContract)
|
|
49
52
|
.when(presetChecker.presetCheckerStepKind.has, ({ definition }) => definition.presetChecker.definition.responseContract)
|
|
@@ -63,4 +66,4 @@ function stepsToDataParser(steps, params) {
|
|
|
63
66
|
};
|
|
64
67
|
}
|
|
65
68
|
|
|
66
|
-
exports.
|
|
69
|
+
exports.aggregateStepContract = aggregateStepContract;
|
|
@@ -10,5 +10,5 @@ export interface StepsToDataParserResult {
|
|
|
10
10
|
entrypointContract: EntrypointReduceResult;
|
|
11
11
|
endpointContract: DP.DataParser[];
|
|
12
12
|
}
|
|
13
|
-
export declare function
|
|
13
|
+
export declare function aggregateStepContract(steps: readonly Steps[], params: StepsToDataParserParams): StepsToDataParserResult;
|
|
14
14
|
export {};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import '../../core/steps/index.mjs';
|
|
2
|
-
import {
|
|
2
|
+
import { A, pipe, O, DP, P, hasSomeKinds } from '@duplojs/utils';
|
|
3
|
+
import { IgnoreByCodeGeneratorMetadata } from './metadata.mjs';
|
|
4
|
+
import { stepIdentifier } from '../../core/steps/identifier.mjs';
|
|
3
5
|
import { processStepKind } from '../../core/steps/process.mjs';
|
|
4
6
|
import { extractStepKind } from '../../core/steps/extract.mjs';
|
|
5
7
|
import { presetCheckerStepKind } from '../../core/steps/presetChecker.mjs';
|
|
@@ -7,12 +9,13 @@ import { checkerStepKind } from '../../core/steps/checker.mjs';
|
|
|
7
9
|
import { cutStepKind } from '../../core/steps/cut.mjs';
|
|
8
10
|
import { handlerStepKind } from '../../core/steps/handler.mjs';
|
|
9
11
|
|
|
10
|
-
function
|
|
11
|
-
const
|
|
12
|
+
function aggregateStepContract(steps, params) {
|
|
13
|
+
const filteredStep = A.filter(steps, (step) => A.find(step.definition.metadata, IgnoreByCodeGeneratorMetadata.is) === undefined);
|
|
14
|
+
const processContracts = pipe(filteredStep, A.filter(stepIdentifier(processStepKind)), A.filter((step) => A.find(step.definition.process.definition.metadata, IgnoreByCodeGeneratorMetadata.is) === undefined), A.map((element) => aggregateStepContract(element.definition.process.definition.steps, params)), O.to({
|
|
12
15
|
entrypointContract: A.map((result) => result.entrypointContract),
|
|
13
16
|
endpointContract: A.flatMap((result) => result.endpointContract),
|
|
14
17
|
}));
|
|
15
|
-
const entrypointContract = pipe(
|
|
18
|
+
const entrypointContract = pipe(filteredStep, A.filter(extractStepKind.has), A.map((extractStep) => extractStep.definition.shape), A.concat(processContracts.entrypointContract), A.reduce(A.reduceFrom({
|
|
16
19
|
body: {},
|
|
17
20
|
headers: {},
|
|
18
21
|
params: {},
|
|
@@ -41,7 +44,7 @@ function stepsToDataParser(steps, params) {
|
|
|
41
44
|
}
|
|
42
45
|
return O.entry(key, currentExtractDataParser);
|
|
43
46
|
}), O.fromEntries, (object) => nextWithObject(lastValue, object))));
|
|
44
|
-
const endpointContract = pipe(
|
|
47
|
+
const endpointContract = pipe(filteredStep, A.flatMap((step) => P.match(step)
|
|
45
48
|
.when(processStepKind.has, () => [])
|
|
46
49
|
.when(extractStepKind.has, ({ definition }) => definition.responseContract ?? params.defaultExtractContract)
|
|
47
50
|
.when(presetCheckerStepKind.has, ({ definition }) => definition.presetChecker.definition.responseContract)
|
|
@@ -61,4 +64,4 @@ function stepsToDataParser(steps, params) {
|
|
|
61
64
|
};
|
|
62
65
|
}
|
|
63
66
|
|
|
64
|
-
export {
|
|
67
|
+
export { aggregateStepContract };
|
|
@@ -4,10 +4,12 @@ require('@duplojs/data-parser-tools/toTypescript');
|
|
|
4
4
|
require('./types/index.cjs');
|
|
5
5
|
var plugin = require('./plugin.cjs');
|
|
6
6
|
var routeToDataParser = require('./routeToDataParser.cjs');
|
|
7
|
-
var
|
|
7
|
+
var aggregateStepContract = require('./aggregateStepContract.cjs');
|
|
8
|
+
var metadata = require('./metadata.cjs');
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
exports.codeGeneratorPlugin = plugin.codeGeneratorPlugin;
|
|
12
13
|
exports.routeToDataParser = routeToDataParser.routeToDataParser;
|
|
13
|
-
exports.
|
|
14
|
+
exports.aggregateStepContract = aggregateStepContract.aggregateStepContract;
|
|
15
|
+
exports.IgnoreByCodeGeneratorMetadata = metadata.IgnoreByCodeGeneratorMetadata;
|
|
@@ -2,4 +2,5 @@ import '@duplojs/data-parser-tools/toTypescript';
|
|
|
2
2
|
import './types/index.mjs';
|
|
3
3
|
export { codeGeneratorPlugin } from './plugin.mjs';
|
|
4
4
|
export { routeToDataParser } from './routeToDataParser.mjs';
|
|
5
|
-
export {
|
|
5
|
+
export { aggregateStepContract } from './aggregateStepContract.mjs';
|
|
6
|
+
export { IgnoreByCodeGeneratorMetadata } from './metadata.mjs';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('../../core/metadata/index.cjs');
|
|
4
|
+
var base = require('../../core/metadata/base.cjs');
|
|
5
|
+
|
|
6
|
+
const IgnoreByCodeGeneratorMetadata = base.createMetadata("ignore-by-code-generator");
|
|
7
|
+
|
|
8
|
+
exports.IgnoreByCodeGeneratorMetadata = IgnoreByCodeGeneratorMetadata;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const IgnoreByCodeGeneratorMetadata: import("../../core/metadata").MetadataHandler<"ignore-by-code-generator", unknown>;
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var aggregateStepContract = require('./aggregateStepContract.cjs');
|
|
4
4
|
var utils = require('@duplojs/utils');
|
|
5
|
+
var metadata = require('./metadata.cjs');
|
|
5
6
|
|
|
6
7
|
function routeToDataParser(route, params) {
|
|
8
|
+
const isIgnore = utils.A.find(route.definition.metadata, metadata.IgnoreByCodeGeneratorMetadata.is);
|
|
9
|
+
if (isIgnore) {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
7
12
|
return utils.pipe([
|
|
8
13
|
...route.definition.preflightSteps,
|
|
9
14
|
...route.definition.steps,
|
|
10
|
-
], (steps) =>
|
|
15
|
+
], (steps) => aggregateStepContract.aggregateStepContract(steps, {
|
|
11
16
|
defaultExtractContract: params.defaultExtractContract,
|
|
12
17
|
}), utils.O.transformProperty("entrypointContract", utils.innerPipe(utils.O.entries, utils.A.select(({ element: [key, value], select, skip }) => {
|
|
13
18
|
if (utils.DP.dataParserKind.has(value)) {
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { pipe, O, innerPipe,
|
|
1
|
+
import { aggregateStepContract } from './aggregateStepContract.mjs';
|
|
2
|
+
import { A, pipe, O, innerPipe, DP } from '@duplojs/utils';
|
|
3
|
+
import { IgnoreByCodeGeneratorMetadata } from './metadata.mjs';
|
|
3
4
|
|
|
4
5
|
function routeToDataParser(route, params) {
|
|
6
|
+
const isIgnore = A.find(route.definition.metadata, IgnoreByCodeGeneratorMetadata.is);
|
|
7
|
+
if (isIgnore) {
|
|
8
|
+
return [];
|
|
9
|
+
}
|
|
5
10
|
return pipe([
|
|
6
11
|
...route.definition.preflightSteps,
|
|
7
12
|
...route.definition.steps,
|
|
8
|
-
], (steps) =>
|
|
13
|
+
], (steps) => aggregateStepContract(steps, {
|
|
9
14
|
defaultExtractContract: params.defaultExtractContract,
|
|
10
15
|
}), O.transformProperty("entrypointContract", innerPipe(O.entries, A.select(({ element: [key, value], select, skip }) => {
|
|
11
16
|
if (DP.dataParserKind.has(value)) {
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
require('../../core/steps/index.cjs');
|
|
4
4
|
var utils = require('@duplojs/utils');
|
|
5
|
+
var metadata = require('./metadata.cjs');
|
|
6
|
+
var identifier = require('../../core/steps/identifier.cjs');
|
|
5
7
|
var process = require('../../core/steps/process.cjs');
|
|
6
8
|
var extract = require('../../core/steps/extract.cjs');
|
|
7
9
|
var presetChecker = require('../../core/steps/presetChecker.cjs');
|
|
@@ -10,11 +12,12 @@ var cut = require('../../core/steps/cut.cjs');
|
|
|
10
12
|
var handler = require('../../core/steps/handler.cjs');
|
|
11
13
|
|
|
12
14
|
function aggregateStepContract(steps, params) {
|
|
13
|
-
const
|
|
15
|
+
const filteredStep = utils.A.filter(steps, (step) => utils.A.find(step.definition.metadata, metadata.IgnoreByOpenApiGeneratorMetadata.is) === undefined);
|
|
16
|
+
const processContracts = utils.pipe(filteredStep, utils.A.filter(identifier.stepIdentifier(process.processStepKind)), utils.A.filter((step) => utils.A.find(step.definition.process.definition.metadata, metadata.IgnoreByOpenApiGeneratorMetadata.is) === undefined), utils.A.map((element) => aggregateStepContract(element.definition.process.definition.steps, params)), utils.O.to({
|
|
14
17
|
entrypointContract: utils.A.map((result) => result.entrypointContract),
|
|
15
18
|
endpointContract: utils.A.flatMap((result) => result.endpointContract),
|
|
16
19
|
}));
|
|
17
|
-
const entrypointContract = utils.pipe(
|
|
20
|
+
const entrypointContract = utils.pipe(filteredStep, utils.A.filter(extract.extractStepKind.has), utils.A.map((extractStep) => extractStep.definition.shape), utils.A.concat(processContracts.entrypointContract), utils.A.reduce(utils.A.reduceFrom({
|
|
18
21
|
body: {},
|
|
19
22
|
headers: {},
|
|
20
23
|
params: {},
|
|
@@ -43,7 +46,7 @@ function aggregateStepContract(steps, params) {
|
|
|
43
46
|
}
|
|
44
47
|
return utils.O.entry(key, currentExtractDataParser);
|
|
45
48
|
}), utils.O.fromEntries, (object) => nextWithObject(lastValue, object))));
|
|
46
|
-
const endpointContract = utils.pipe(
|
|
49
|
+
const endpointContract = utils.pipe(filteredStep, utils.A.flatMap((step) => utils.P.match(step)
|
|
47
50
|
.when(process.processStepKind.has, () => [])
|
|
48
51
|
.when(extract.extractStepKind.has, ({ definition }) => definition.responseContract ?? params.defaultExtractContract)
|
|
49
52
|
.when(presetChecker.presetCheckerStepKind.has, ({ definition }) => definition.presetChecker.definition.responseContract)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import '../../core/steps/index.mjs';
|
|
2
|
-
import {
|
|
2
|
+
import { A, pipe, O, DP, P, hasSomeKinds } from '@duplojs/utils';
|
|
3
|
+
import { IgnoreByOpenApiGeneratorMetadata } from './metadata.mjs';
|
|
4
|
+
import { stepIdentifier } from '../../core/steps/identifier.mjs';
|
|
3
5
|
import { processStepKind } from '../../core/steps/process.mjs';
|
|
4
6
|
import { extractStepKind } from '../../core/steps/extract.mjs';
|
|
5
7
|
import { presetCheckerStepKind } from '../../core/steps/presetChecker.mjs';
|
|
@@ -8,11 +10,12 @@ import { cutStepKind } from '../../core/steps/cut.mjs';
|
|
|
8
10
|
import { handlerStepKind } from '../../core/steps/handler.mjs';
|
|
9
11
|
|
|
10
12
|
function aggregateStepContract(steps, params) {
|
|
11
|
-
const
|
|
13
|
+
const filteredStep = A.filter(steps, (step) => A.find(step.definition.metadata, IgnoreByOpenApiGeneratorMetadata.is) === undefined);
|
|
14
|
+
const processContracts = pipe(filteredStep, A.filter(stepIdentifier(processStepKind)), A.filter((step) => A.find(step.definition.process.definition.metadata, IgnoreByOpenApiGeneratorMetadata.is) === undefined), A.map((element) => aggregateStepContract(element.definition.process.definition.steps, params)), O.to({
|
|
12
15
|
entrypointContract: A.map((result) => result.entrypointContract),
|
|
13
16
|
endpointContract: A.flatMap((result) => result.endpointContract),
|
|
14
17
|
}));
|
|
15
|
-
const entrypointContract = pipe(
|
|
18
|
+
const entrypointContract = pipe(filteredStep, A.filter(extractStepKind.has), A.map((extractStep) => extractStep.definition.shape), A.concat(processContracts.entrypointContract), A.reduce(A.reduceFrom({
|
|
16
19
|
body: {},
|
|
17
20
|
headers: {},
|
|
18
21
|
params: {},
|
|
@@ -41,7 +44,7 @@ function aggregateStepContract(steps, params) {
|
|
|
41
44
|
}
|
|
42
45
|
return O.entry(key, currentExtractDataParser);
|
|
43
46
|
}), O.fromEntries, (object) => nextWithObject(lastValue, object))));
|
|
44
|
-
const endpointContract = pipe(
|
|
47
|
+
const endpointContract = pipe(filteredStep, A.flatMap((step) => P.match(step)
|
|
45
48
|
.when(processStepKind.has, () => [])
|
|
46
49
|
.when(extractStepKind.has, ({ definition }) => definition.responseContract ?? params.defaultExtractContract)
|
|
47
50
|
.when(presetCheckerStepKind.has, ({ definition }) => definition.presetChecker.definition.responseContract)
|
|
@@ -7,6 +7,7 @@ var routeToOpenApi = require('./routeToOpenApi.cjs');
|
|
|
7
7
|
var aggregateStepContract = require('./aggregateStepContract.cjs');
|
|
8
8
|
var makeOpenApiRoute = require('./makeOpenApiRoute.cjs');
|
|
9
9
|
var makeOpenApiPage = require('./makeOpenApiPage.cjs');
|
|
10
|
+
var metadata = require('./metadata.cjs');
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
|
|
@@ -15,3 +16,4 @@ exports.routeToOpenApi = routeToOpenApi.routeToOpenApi;
|
|
|
15
16
|
exports.aggregateStepContract = aggregateStepContract.aggregateStepContract;
|
|
16
17
|
exports.makeOpenApiRoute = makeOpenApiRoute.makeOpenApiRoute;
|
|
17
18
|
exports.makeOpenApiPage = makeOpenApiPage.makeOpenApiPage;
|
|
19
|
+
exports.IgnoreByOpenApiGeneratorMetadata = metadata.IgnoreByOpenApiGeneratorMetadata;
|
|
@@ -5,3 +5,4 @@ export { routeToOpenApi } from './routeToOpenApi.mjs';
|
|
|
5
5
|
export { aggregateStepContract } from './aggregateStepContract.mjs';
|
|
6
6
|
export { makeOpenApiRoute } from './makeOpenApiRoute.mjs';
|
|
7
7
|
export { makeOpenApiPage } from './makeOpenApiPage.mjs';
|
|
8
|
+
export { IgnoreByOpenApiGeneratorMetadata } from './metadata.mjs';
|
|
@@ -3,6 +3,7 @@ import type { RoutePath } from "../../core/route";
|
|
|
3
3
|
import { DP } from "@duplojs/utils";
|
|
4
4
|
export declare function makeOpenApiRoute(routePath: RoutePath, openApiPage: string): import("../../core/route").Route<{
|
|
5
5
|
readonly method: "GET";
|
|
6
|
+
readonly metadata: readonly [];
|
|
6
7
|
readonly hooks: readonly [];
|
|
7
8
|
readonly preflightSteps: readonly [];
|
|
8
9
|
readonly paths: readonly [`/${string}`];
|
|
@@ -14,5 +15,6 @@ export declare function makeOpenApiRoute(routePath: RoutePath, openApiPage: stri
|
|
|
14
15
|
readonly checkers: readonly [];
|
|
15
16
|
}>>>;
|
|
16
17
|
theFunction(floor: {}, param: import("../../core/steps").HandlerStepFunctionParams<import("../../core/request").Request, import("../../core/response").PredictedResponse<"200", "swaggerUi", string>>): import("@duplojs/utils").MaybePromise<import("../../core/response").PredictedResponse<"200", "swaggerUi", string>>;
|
|
18
|
+
readonly metadata: readonly [];
|
|
17
19
|
}>];
|
|
18
20
|
}>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('../../core/metadata/index.cjs');
|
|
4
|
+
var base = require('../../core/metadata/base.cjs');
|
|
5
|
+
|
|
6
|
+
const IgnoreByOpenApiGeneratorMetadata = base.createMetadata("ignore-by-open-api-generator");
|
|
7
|
+
|
|
8
|
+
exports.IgnoreByOpenApiGeneratorMetadata = IgnoreByOpenApiGeneratorMetadata;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const IgnoreByOpenApiGeneratorMetadata: import("../../core/metadata").MetadataHandler<"ignore-by-open-api-generator", unknown>;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var aggregateStepContract = require('./aggregateStepContract.cjs');
|
|
4
4
|
var utils = require('@duplojs/utils');
|
|
5
5
|
var toJsonSchema = require('@duplojs/data-parser-tools/toJsonSchema');
|
|
6
|
+
var metadata = require('./metadata.cjs');
|
|
6
7
|
|
|
7
8
|
function factoryJsonSchema(params) {
|
|
8
9
|
const identifier = params.schema.definition.identifier
|
|
@@ -33,6 +34,10 @@ const methodMapper = {
|
|
|
33
34
|
OPTIONS: "options",
|
|
34
35
|
};
|
|
35
36
|
function routeToOpenApi(route, params) {
|
|
37
|
+
const isIgnore = utils.A.find(route.definition.metadata, metadata.IgnoreByOpenApiGeneratorMetadata.is);
|
|
38
|
+
if (isIgnore) {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
36
41
|
const aggregateStepResult = aggregateStepContract.aggregateStepContract([
|
|
37
42
|
...route.definition.preflightSteps,
|
|
38
43
|
...route.definition.steps,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { aggregateStepContract } from './aggregateStepContract.mjs';
|
|
2
|
-
import { O,
|
|
2
|
+
import { O, A, pipe, DP, when, justReturn, whenNot, P, isType, S } from '@duplojs/utils';
|
|
3
3
|
import { render, defaultTransformers } from '@duplojs/data-parser-tools/toJsonSchema';
|
|
4
|
+
import { IgnoreByOpenApiGeneratorMetadata } from './metadata.mjs';
|
|
4
5
|
|
|
5
6
|
function factoryJsonSchema(params) {
|
|
6
7
|
const identifier = params.schema.definition.identifier
|
|
@@ -31,6 +32,10 @@ const methodMapper = {
|
|
|
31
32
|
OPTIONS: "options",
|
|
32
33
|
};
|
|
33
34
|
function routeToOpenApi(route, params) {
|
|
35
|
+
const isIgnore = A.find(route.definition.metadata, IgnoreByOpenApiGeneratorMetadata.is);
|
|
36
|
+
if (isIgnore) {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
34
39
|
const aggregateStepResult = aggregateStepContract([
|
|
35
40
|
...route.definition.preflightSteps,
|
|
36
41
|
...route.definition.steps,
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|