Skip to content

Commit b4be45e

Browse files
committed
Renamed configBlockType to configClass. Refactored parser entities
1 parent 67d4cd8 commit b4be45e

18 files changed

Lines changed: 85 additions & 81 deletions

codify-core/src/config-compiler/index.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import { ResourceDefinitions } from '../entities/resource-definition';
22
import { InternalError } from '../utils/errors';
3-
import { ConfigBlockType } from './language-definition';
3+
import { ConfigClass } from './language-definition';
44
import { ConfigLoader } from './loader';
55
import { ConfigSemanticAnalyzer } from './output/config-semantic-analyzer';
66
import { DependencyBuilder } from './output/dependency-builder';
77
import { FileParser } from './parser';
8-
import { ParsedModule, ParsedProject } from './parser/entities';
9-
import { ProjectConfig } from './parser/entities/project';
10-
import { ResourceConfig } from './parser/entities/resource';
8+
import { ProjectConfig } from './parser/entities/configs/project';
9+
import { ResourceConfig } from './parser/entities/configs/resource';
10+
import { ParsedModule } from './parser/entities/parsed-module';
11+
import { ParsedProject } from './parser/entities/parsed-project';
1112
import { JsonFileParser } from './parser/json/file-parser';
1213

1314
export class ConfigCompiler {
@@ -29,15 +30,15 @@ export class ConfigCompiler {
2930
}));
3031
const configBlocks = configBlocksResult.flat(1);
3132

32-
const parsedProjectConfigs = configBlocks.filter((u) => u.configType === ConfigBlockType.PROJECT);
33+
const parsedProjectConfigs = configBlocks.filter((u) => u.configClass === ConfigClass.PROJECT);
3334
if (parsedProjectConfigs.length !== 1) {
3435
throw new Error('One one project config can be specified');
3536
}
3637

3738
const projectConfig = parsedProjectConfigs[0] as ProjectConfig;
3839
return new ParsedProject({
3940
coreModule: new ParsedModule({
40-
configBlocks: configBlocks.filter((u) => u.configType !== ConfigBlockType.PROJECT),
41+
configBlocks: configBlocks.filter((u) => u.configClass !== ConfigClass.PROJECT),
4142
}),
4243
projectConfig,
4344
})
@@ -49,7 +50,7 @@ export class ConfigCompiler {
4950

5051
static async buildDependencyList(parsedProject: ParsedProject): Promise<ResourceConfig[]> {
5152
const dependencyGraph = DependencyBuilder.buildDependencyGraph(parsedProject.coreModule.configBlocks
52-
.filter((u) => u.configType === ConfigBlockType.RESOURCE) as ResourceConfig[]
53+
.filter((u) => u.configClass === ConfigClass.RESOURCE) as ResourceConfig[]
5354
)
5455
return DependencyBuilder.generateDependencyList(dependencyGraph);
5556
}

codify-core/src/config-compiler/language-definition.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export enum ConfigBlockType {
1+
export enum ConfigClass {
22
PLUGIN = 'plugin',
33
PROJECT = 'project',
44
RESOURCE = 'resource',

codify-core/src/config-compiler/output/config-semantic-analyzer.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ResourceConfig } from '../parser/entities/resource';
1+
import { ResourceConfig } from '../parser/entities/configs/resource';
22
import { ResourceDefinition } from '../../entities/resource-definition';
33
import { ResourceParameterDefinition } from '../../entities/resource-parameter';
44
import { ResourceParameterType } from '../language-definition';

codify-core/src/config-compiler/output/config-semantic-analyzer.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import { ResourceDefinitions } from '../../entities/resource-definition';
22
import { validateResourceParameterType } from '../../utils/validator';
3-
import { ConfigBlockType } from '../language-definition';
4-
import { ParsedProject } from '../parser/entities';
5-
import { ResourceConfig } from '../parser/entities/resource';
3+
import { ConfigClass } from '../language-definition';
4+
import { ResourceConfig } from '../parser/entities/configs/resource';
5+
import { ParsedProject } from '../parser/entities/parsed-project';
66

77
export const ConfigSemanticAnalyzer = {
88

99
validate(project: ParsedProject, resourceDefinitions: ResourceDefinitions): void {
1010
const resourceConfigs = project
1111
.coreModule
1212
.configBlocks
13-
.filter((u) => u.configType === ConfigBlockType.RESOURCE) as ResourceConfig[];
13+
.filter((u) => u.configClass === ConfigClass.RESOURCE) as ResourceConfig[];
1414

1515
this.validateResourceConfigs(resourceConfigs, resourceDefinitions);
1616
},

codify-core/src/config-compiler/output/dependency-builder.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ResourceConfig } from '../parser/entities/resource';
1+
import { ResourceConfig } from '../parser/entities/configs/resource';
22
import { ResourceNode } from './entities/resource-node';
33

44
export const DependencyBuilder = {

codify-core/src/config-compiler/output/dependency-tree-builder.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ResourceConfig } from '../parser/entities/resource';
1+
import { ResourceConfig } from '../parser/entities/configs/resource';
22
import { ResourceNode } from './entities/resource-node';
33
import { DependencyBuilder } from './dependency-builder';
44
import { expect } from '@oclif/test';

codify-core/src/config-compiler/output/entities/resource-node.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { RemoveMethods } from '../../../utils/types';
2-
import { ResourceConfig } from '../../parser/entities/resource';
2+
import { ResourceConfig } from '../../parser/entities/configs/resource';
33

44
export class ResourceNode {
55
dependencies!: ResourceNode[];
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { RemoveMethods } from '../../../../utils/types'
2+
import { ConfigClass } from '../../../language-definition';
3+
import { ConfigBlock } from '../index';
4+
5+
export class PluginConfig implements ConfigBlock {
6+
configClass = ConfigClass.PLUGIN;
7+
8+
parameters!: Record<string, unknown>;
9+
10+
constructor(props: Omit<RemoveMethods<PluginConfig>, 'configClass'>) {
11+
Object.assign(this, props)
12+
}
13+
14+
validateConfig(config: unknown): void {
15+
console.log(config);
16+
}
17+
18+
}

codify-core/src/config-compiler/parser/entities/project.test.ts renamed to codify-core/src/config-compiler/parser/entities/configs/project.test.ts

File renamed without changes.

codify-core/src/config-compiler/parser/entities/project.ts renamed to codify-core/src/config-compiler/parser/entities/configs/project.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { RemoveMethods } from '../../../utils/types';
1+
import { RemoveMethods } from '../../../../utils/types';
22
import {
33
validateAllowedObjectKeys,
44
validateNameString,
@@ -8,9 +8,9 @@ import {
88
validateTypeRecordStringUnknown,
99
validateTypeString,
1010
validateUrl
11-
} from '../../../utils/validator';
12-
import { ConfigBlockType } from '../../language-definition';
13-
import { ConfigBlock } from './index';
11+
} from '../../../../utils/validator';
12+
import { ConfigClass } from '../../../language-definition';
13+
import { ConfigBlock } from '../index';
1414

1515
/** Project JSON supported format
1616
* {
@@ -30,13 +30,13 @@ const ALLOWED_KEYS = [
3030
]
3131

3232
export class ProjectConfig implements ConfigBlock {
33-
configType = ConfigBlockType.PROJECT;
33+
configClass = ConfigClass.PROJECT;
3434

3535
name?: string;
3636
plugins?: Record<string, string>;
3737

3838
constructor(config: unknown) {
39-
if (this.validate(config)) {
39+
if (this.validateConfig(config)) {
4040
this.name = config.name;
4141
this.plugins = config.plugins;
4242

@@ -46,7 +46,7 @@ export class ProjectConfig implements ConfigBlock {
4646
throw new Error('Unable to parse project');
4747
}
4848

49-
validate(config: unknown): config is RemoveMethods<ProjectConfig> {
49+
validateConfig(config: unknown): config is RemoveMethods<ProjectConfig> {
5050
if (!validateTypeRecordStringUnknown(config)) {
5151
throw new Error('Config is not an object');
5252
}

0 commit comments

Comments
 (0)