Skip to content

Commit

Permalink
fix: enable verbatimModuleSyntax, support NodeJS' native TypeScript l…
Browse files Browse the repository at this point in the history
…oader (#108)
  • Loading branch information
shinebayar-g authored Feb 14, 2025
1 parent 6ce00ef commit 3861fdf
Show file tree
Hide file tree
Showing 247 changed files with 612 additions and 608 deletions.
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,5 @@ fix-imports:

.PHONY: lint
lint:
@cd packages/core && pnpm lint && pnpm tsc --noEmit
@cd packages/cli && pnpm lint && pnpm tsc --noEmit
@cd packages/core && pnpm lint --fix && pnpm tsc --noEmit
11 changes: 7 additions & 4 deletions biome.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"files": {
"ignoreUnknown": false,
"ignore": ["node_modules/**/*", "dist/**/*", "packages/cli/files/**/*", "package.json"],
"ignore": [
"node_modules/**/*",
"dist/**/*",
"packages/cli/gen/**/*",
"packages/cli/input-spec/**/*",
"package.json"
],
"maxSize": 100000000
},
"formatter": {
Expand All @@ -21,9 +27,6 @@
"suspicious": {
"noExplicitAny": "off"
},
"style": {
"useImportType": "off"
},
"complexity": {
"noForEach": "off",
"noBannedTypes": "off"
Expand Down
12 changes: 6 additions & 6 deletions packages/cli/src/generateCore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ import * as fs from 'node:fs';
import * as path from 'node:path';
import pc from 'picocolors';
import {
ClassDeclaration,
ConstructorDeclarationStructure,
type ClassDeclaration,
type ConstructorDeclarationStructure,
IndentationText,
InterfaceDeclarationStructure,
type InterfaceDeclarationStructure,
Project,
PropertySignatureStructure,
type PropertySignatureStructure,
QuoteKind,
SourceFile,
StatementStructures,
type SourceFile,
type StatementStructures,
StructureKind,
SyntaxKind,
} from 'ts-morph';
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/moveCore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import * as fs from 'node:fs';
import * as path from 'node:path';
import pc from 'picocolors';
import { IndentationText, Project, QuoteKind } from 'ts-morph';
import { Schemas } from './parseSchemas.ts';
import type { Schemas } from './parseSchemas.ts';

function main() {
const corePath = path.join(import.meta.dirname, '../../core');
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/ApiObject.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as yaml from 'yaml';
import { ObjectMeta } from './models/meta/v1/types/ObjectMeta.ts';
import type { ObjectMeta } from './models/meta/v1/types/ObjectMeta.ts';

export interface NamespacedObjectMeta extends ObjectMeta {
/**
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/Helm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import * as os from 'node:os';
import * as path from 'node:path';
import * as yaml from 'yaml';
import { ApiObject } from './ApiObject.ts';
import { K8sApp } from './K8sApp.ts';
import { ObjectMeta } from './models/meta/v1/types/ObjectMeta.ts';
import type { K8sApp } from './K8sApp.ts';
import type { ObjectMeta } from './models/meta/v1/types/ObjectMeta.ts';

interface HelmObjectArgs {
readonly apiVersion: string;
Expand Down
11 changes: 6 additions & 5 deletions packages/core/src/K8sApp.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as fs from 'node:fs';
import * as path from 'node:path';
import pc from 'picocolors';
import { ApiObject, NamespacedApiObject } from './ApiObject.ts';
import { type ApiObject, NamespacedApiObject } from './ApiObject.ts';

interface K8sAppArgs {
readonly namespace?: string;
Expand All @@ -18,12 +18,13 @@ interface K8sAppArgs {
export class K8sApp {
private readonly resources: ApiObject[] | NamespacedApiObject[] = [];
readonly namespace?: string;
readonly outputName: string;
private readonly args?: K8sAppArgs;

constructor(
readonly outputName: string,
private readonly args?: K8sAppArgs,
) {
constructor(outputName: string, args?: K8sAppArgs) {
this.namespace = args?.namespace;
this.outputName = outputName;
this.args = args;
}

addResource(resource: ApiObject | NamespacedApiObject) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { MutatingWebhook } from './types/MutatingWebhook.ts';
import { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import { K8sApp } from '../../../K8sApp.ts';
import type { MutatingWebhook } from './types/MutatingWebhook.ts';
import type { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import type { K8sApp } from '../../../K8sApp.ts';
import { ApiObject } from '../../../ApiObject.ts';

export interface MutatingWebhookConfigurationArgs {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ValidatingAdmissionPolicySpec } from './types/ValidatingAdmissionPolicySpec.ts';
import { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import { K8sApp } from '../../../K8sApp.ts';
import type { ValidatingAdmissionPolicySpec } from './types/ValidatingAdmissionPolicySpec.ts';
import type { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import type { K8sApp } from '../../../K8sApp.ts';
import { ApiObject } from '../../../ApiObject.ts';

export interface ValidatingAdmissionPolicyArgs {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ValidatingAdmissionPolicyBindingSpec } from './types/ValidatingAdmissionPolicyBindingSpec.ts';
import { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import { K8sApp } from '../../../K8sApp.ts';
import type { ValidatingAdmissionPolicyBindingSpec } from './types/ValidatingAdmissionPolicyBindingSpec.ts';
import type { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import type { K8sApp } from '../../../K8sApp.ts';
import { ApiObject } from '../../../ApiObject.ts';

export interface ValidatingAdmissionPolicyBindingArgs {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ValidatingWebhook } from './types/ValidatingWebhook.ts';
import { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import { K8sApp } from '../../../K8sApp.ts';
import type { ValidatingWebhook } from './types/ValidatingWebhook.ts';
import type { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import type { K8sApp } from '../../../K8sApp.ts';
import { ApiObject } from '../../../ApiObject.ts';

export interface ValidatingWebhookConfigurationArgs {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { NamedRuleWithOperations } from './NamedRuleWithOperations.ts';
import { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';
import type { NamedRuleWithOperations } from './NamedRuleWithOperations.ts';
import type { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';

/**
* MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { MatchCondition } from './MatchCondition.ts';
import { RuleWithOperations } from './RuleWithOperations.ts';
import { WebhookClientConfig } from './WebhookClientConfig.ts';
import { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';
import type { MatchCondition } from './MatchCondition.ts';
import type { RuleWithOperations } from './RuleWithOperations.ts';
import type { WebhookClientConfig } from './WebhookClientConfig.ts';
import type { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';

/**
* MutatingWebhook describes an admission webhook and the resources and operations it applies to.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';
import type { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';

/**
* ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { MatchResources } from './MatchResources.ts';
import { ParamRef } from './ParamRef.ts';
import type { MatchResources } from './MatchResources.ts';
import type { ParamRef } from './ParamRef.ts';

/**
* ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { AuditAnnotation } from './AuditAnnotation.ts';
import { MatchCondition } from './MatchCondition.ts';
import { MatchResources } from './MatchResources.ts';
import { ParamKind } from './ParamKind.ts';
import { Validation } from './Validation.ts';
import { Variable } from './Variable.ts';
import type { AuditAnnotation } from './AuditAnnotation.ts';
import type { MatchCondition } from './MatchCondition.ts';
import type { MatchResources } from './MatchResources.ts';
import type { ParamKind } from './ParamKind.ts';
import type { Validation } from './Validation.ts';
import type { Variable } from './Variable.ts';

/**
* ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { MatchCondition } from './MatchCondition.ts';
import { RuleWithOperations } from './RuleWithOperations.ts';
import { WebhookClientConfig } from './WebhookClientConfig.ts';
import { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';
import type { MatchCondition } from './MatchCondition.ts';
import type { RuleWithOperations } from './RuleWithOperations.ts';
import type { WebhookClientConfig } from './WebhookClientConfig.ts';
import type { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';

/**
* ValidatingWebhook describes an admission webhook and the resources and operations it applies to.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ServiceReference } from './ServiceReference.ts';
import type { ServiceReference } from './ServiceReference.ts';

/**
* WebhookClientConfig contains the information to make a TLS connection with the webhook
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { MutatingAdmissionPolicySpec } from './types/MutatingAdmissionPolicySpec.ts';
import { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import { K8sApp } from '../../../K8sApp.ts';
import type { MutatingAdmissionPolicySpec } from './types/MutatingAdmissionPolicySpec.ts';
import type { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import type { K8sApp } from '../../../K8sApp.ts';
import { ApiObject } from '../../../ApiObject.ts';

export interface MutatingAdmissionPolicyArgs {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { MutatingAdmissionPolicyBindingSpec } from './types/MutatingAdmissionPolicyBindingSpec.ts';
import { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import { K8sApp } from '../../../K8sApp.ts';
import type { MutatingAdmissionPolicyBindingSpec } from './types/MutatingAdmissionPolicyBindingSpec.ts';
import type { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import type { K8sApp } from '../../../K8sApp.ts';
import { ApiObject } from '../../../ApiObject.ts';

export interface MutatingAdmissionPolicyBindingArgs {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { NamedRuleWithOperations } from './NamedRuleWithOperations.ts';
import { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';
import type { NamedRuleWithOperations } from './NamedRuleWithOperations.ts';
import type { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';

/**
* MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { MatchResources } from './MatchResources.ts';
import { ParamRef } from './ParamRef.ts';
import type { MatchResources } from './MatchResources.ts';
import type { ParamRef } from './ParamRef.ts';

/**
* MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { MatchCondition } from './MatchCondition.ts';
import { MatchResources } from './MatchResources.ts';
import { Mutation } from './Mutation.ts';
import { ParamKind } from './ParamKind.ts';
import { Variable } from './Variable.ts';
import type { MatchCondition } from './MatchCondition.ts';
import type { MatchResources } from './MatchResources.ts';
import type { Mutation } from './Mutation.ts';
import type { ParamKind } from './ParamKind.ts';
import type { Variable } from './Variable.ts';

/**
* MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ApplyConfiguration } from './ApplyConfiguration.ts';
import { JSONPatch } from './JSONPatch.ts';
import type { ApplyConfiguration } from './ApplyConfiguration.ts';
import type { JSONPatch } from './JSONPatch.ts';

/**
* Mutation specifies the CEL expression which is used to apply the Mutation.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';
import type { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';

/**
* ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ValidatingAdmissionPolicySpec } from './types/ValidatingAdmissionPolicySpec.ts';
import { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import { K8sApp } from '../../../K8sApp.ts';
import type { ValidatingAdmissionPolicySpec } from './types/ValidatingAdmissionPolicySpec.ts';
import type { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import type { K8sApp } from '../../../K8sApp.ts';
import { ApiObject } from '../../../ApiObject.ts';

export interface ValidatingAdmissionPolicyArgs {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ValidatingAdmissionPolicyBindingSpec } from './types/ValidatingAdmissionPolicyBindingSpec.ts';
import { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import { K8sApp } from '../../../K8sApp.ts';
import type { ValidatingAdmissionPolicyBindingSpec } from './types/ValidatingAdmissionPolicyBindingSpec.ts';
import type { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import type { K8sApp } from '../../../K8sApp.ts';
import { ApiObject } from '../../../ApiObject.ts';

export interface ValidatingAdmissionPolicyBindingArgs {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { NamedRuleWithOperations } from './NamedRuleWithOperations.ts';
import { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';
import type { NamedRuleWithOperations } from './NamedRuleWithOperations.ts';
import type { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';

/**
* MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';
import type { LabelSelector } from '../../../meta/v1/types/LabelSelector.ts';

/**
* ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { MatchResources } from './MatchResources.ts';
import { ParamRef } from './ParamRef.ts';
import type { MatchResources } from './MatchResources.ts';
import type { ParamRef } from './ParamRef.ts';

/**
* ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { AuditAnnotation } from './AuditAnnotation.ts';
import { MatchCondition } from './MatchCondition.ts';
import { MatchResources } from './MatchResources.ts';
import { ParamKind } from './ParamKind.ts';
import { Validation } from './Validation.ts';
import { Variable } from './Variable.ts';
import type { AuditAnnotation } from './AuditAnnotation.ts';
import type { MatchCondition } from './MatchCondition.ts';
import type { MatchResources } from './MatchResources.ts';
import type { ParamKind } from './ParamKind.ts';
import type { Validation } from './Validation.ts';
import type { Variable } from './Variable.ts';

/**
* ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { CustomResourceDefinitionSpec } from './types/CustomResourceDefinitionSpec.ts';
import { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import { K8sApp } from '../../../K8sApp.ts';
import type { CustomResourceDefinitionSpec } from './types/CustomResourceDefinitionSpec.ts';
import type { ObjectMeta } from '../../meta/v1/types/ObjectMeta.ts';
import type { K8sApp } from '../../../K8sApp.ts';
import { ApiObject } from '../../../ApiObject.ts';

export interface CustomResourceDefinitionArgs {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { WebhookConversion } from './WebhookConversion.ts';
import type { WebhookConversion } from './WebhookConversion.ts';

/**
* CustomResourceConversion describes how to convert different versions of a CR.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { CustomResourceConversion } from './CustomResourceConversion.ts';
import { CustomResourceDefinitionNames } from './CustomResourceDefinitionNames.ts';
import { CustomResourceDefinitionVersion } from './CustomResourceDefinitionVersion.ts';
import type { CustomResourceConversion } from './CustomResourceConversion.ts';
import type { CustomResourceDefinitionNames } from './CustomResourceDefinitionNames.ts';
import type { CustomResourceDefinitionVersion } from './CustomResourceDefinitionVersion.ts';

/**
* CustomResourceDefinitionSpec describes how a user wants their resource to appear
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { CustomResourceColumnDefinition } from './CustomResourceColumnDefinition.ts';
import { CustomResourceSubresources } from './CustomResourceSubresources.ts';
import { CustomResourceValidation } from './CustomResourceValidation.ts';
import { SelectableField } from './SelectableField.ts';
import type { CustomResourceColumnDefinition } from './CustomResourceColumnDefinition.ts';
import type { CustomResourceSubresources } from './CustomResourceSubresources.ts';
import type { CustomResourceValidation } from './CustomResourceValidation.ts';
import type { SelectableField } from './SelectableField.ts';

/**
* CustomResourceDefinitionVersion describes a version for CRD.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { CustomResourceSubresourceScale } from './CustomResourceSubresourceScale.ts';
import type { CustomResourceSubresourceScale } from './CustomResourceSubresourceScale.ts';

/**
* CustomResourceSubresources defines the status and scale subresources for CustomResources.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { JSONSchemaProps } from './JSONSchemaProps.ts';
import type { JSONSchemaProps } from './JSONSchemaProps.ts';

/**
* CustomResourceValidation is a list of validation methods for CustomResources.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ExternalDocumentation } from './ExternalDocumentation.ts';
import { ValidationRule } from './ValidationRule.ts';
import type { ExternalDocumentation } from './ExternalDocumentation.ts';
import type { ValidationRule } from './ValidationRule.ts';

/**
* JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).
Expand Down
Loading

0 comments on commit 3861fdf

Please sign in to comment.