Skip to content

Commit 8ca2533

Browse files
committed
fix(build): fix dependencies of core package
1 parent 4c4d038 commit 8ca2533

File tree

6 files changed

+49
-33
lines changed

6 files changed

+49
-33
lines changed

packages/build/src/containers/container.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ export class Container {
1010
return this.inversifyContainer.get<T>(type);
1111
}
1212

13-
public load(options: IBuildOptions) {
13+
public async load(options: IBuildOptions) {
1414
const coreContainer = new CoreContainer();
15-
coreContainer.load(options);
15+
await coreContainer.load(options);
1616
this.inversifyContainer.parent = coreContainer.getInversifyContainer();
1717
this.inversifyContainer.load(schemaParserModule(options.schemaParser));
1818
}

packages/build/src/lib/schema-parser/middleware/addMissingErrors.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import { AllTemplateMetadata, APISchema } from '@vulcan/core';
22
import { SchemaParserMiddleware } from './middleware';
33

4+
interface ErrorCode {
5+
code: string;
6+
lineNo: number;
7+
columnNo: number;
8+
}
9+
410
// Add error code to definition if it is used in query but not defined in schema
511
export const addMissingErrors =
612
(allMetadata: AllTemplateMetadata): SchemaParserMiddleware =>
@@ -10,9 +16,10 @@ export const addMissingErrors =
1016
const templateName = transformedSchemas.templateSource;
1117
const metadata = allMetadata[templateName];
1218
// Skip validation if no metadata found
13-
if (!metadata?.errors) return;
19+
if (!metadata?.['error.vulcan.com']) return;
1420

15-
metadata.errors.forEach((error) => {
21+
const errorCodes: ErrorCode[] = metadata['error.vulcan.com'].errorCodes;
22+
errorCodes.forEach((error) => {
1623
if (!transformedSchemas.errors.some((e) => e.code === error.code)) {
1724
transformedSchemas.errors.push({
1825
code: error.code,

packages/build/src/lib/schema-parser/middleware/checkParameter.ts

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import { AllTemplateMetadata, APISchema } from '@vulcan/core';
22
import { SchemaParserMiddleware } from './middleware';
33

4+
interface Parameter {
5+
name: string;
6+
lineNo: number;
7+
columnNo: number;
8+
}
9+
410
export const checkParameter =
511
(allMetadata: AllTemplateMetadata): SchemaParserMiddleware =>
612
async (schemas, next) => {
@@ -9,9 +15,9 @@ export const checkParameter =
915
const templateName = transformedSchemas.templateSource;
1016
const metadata = allMetadata[templateName];
1117
// Skip validation if no metadata found
12-
if (!metadata?.parameters) return;
18+
if (!metadata?.['parameter.vulcan.com']) return;
1319

14-
const parameters = metadata.parameters;
20+
const parameters: Parameter[] = metadata['parameter.vulcan.com'];
1521
parameters.forEach((parameter) => {
1622
// We only check the first value of nested parameters
1723
const name = parameter.name.split('.')[0];

packages/build/src/lib/vulcanBuilder.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
export class VulcanBuilder {
1111
public async build(options: IBuildOptions) {
1212
const container = new Container();
13-
container.load(options);
13+
await container.load(options);
1414
const schemaParser = container.get<SchemaParser>(TYPES.SchemaParser);
1515
const templateEngine = container.get<TemplateEngine>(
1616
CORE_TYPES.TemplateEngine

packages/build/test/schema-parser/middleware/addMissingErrors.spec.ts

+27-24
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,19 @@ it('Should add missing error codes', async () => {
1212
};
1313
const metadata: AllTemplateMetadata = {
1414
'some-name': {
15-
parameters: [],
16-
errors: [
17-
{
18-
code: 'ERROR 1',
19-
locations: [
20-
{
21-
lineNo: 0,
22-
columnNo: 0,
23-
},
24-
],
25-
},
26-
],
15+
'error.vulcan.com': {
16+
errorCodes: [
17+
{
18+
code: 'ERROR 1',
19+
locations: [
20+
{
21+
lineNo: 0,
22+
columnNo: 0,
23+
},
24+
],
25+
},
26+
],
27+
},
2728
},
2829
};
2930
// Act
@@ -48,17 +49,19 @@ it('Existed error codes should be kept', async () => {
4849
const metadata: AllTemplateMetadata = {
4950
'some-name': {
5051
parameters: [],
51-
errors: [
52-
{
53-
code: 'ERROR 1',
54-
locations: [
55-
{
56-
lineNo: 0,
57-
columnNo: 0,
58-
},
59-
],
60-
},
61-
],
52+
'error.vulcan.com': {
53+
errorCodes: [
54+
{
55+
code: 'ERROR 1',
56+
locations: [
57+
{
58+
lineNo: 0,
59+
columnNo: 0,
60+
},
61+
],
62+
},
63+
],
64+
},
6265
},
6366
};
6467
// Act
@@ -82,7 +85,7 @@ it('Should tolerate empty error data', async () => {
8285
const metadata: object = {
8386
'some-name': {
8487
parameters: [],
85-
errors: null,
88+
'error.vulcan.com': null,
8689
},
8790
};
8891
// Act

packages/build/test/schema-parser/middleware/checkParameter.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ it(`Should throw when any parameter hasn't be defined`, async () => {
5050
};
5151
const metadata: AllTemplateMetadata = {
5252
'some-name': {
53-
parameters: [
53+
'parameter.vulcan.com': [
5454
{
5555
name: 'param1',
5656
locations: [],
@@ -81,7 +81,7 @@ it('Should tolerate empty parameter data', async () => {
8181
};
8282
const metadata: object = {
8383
'some-name': {
84-
parameters: null,
84+
'parameter.vulcan.com': null,
8585
errors: [],
8686
},
8787
};

0 commit comments

Comments
 (0)