diff --git a/apps/kazam/src/utils/define-config.ts b/apps/kazam/src/utils/define-config.ts index 592ac14..27a5ecc 100644 --- a/apps/kazam/src/utils/define-config.ts +++ b/apps/kazam/src/utils/define-config.ts @@ -42,3 +42,6 @@ export type KazamConfig = z.infer export type UserConfig = z.input export const defineConfig = (config: UserConfig) => configSchema.parse(config) + +const assertType = (_: T) => _ +assertType[0]>({}) diff --git a/packages/kaz-ast/build.config.ts b/packages/kaz-ast/build.config.ts new file mode 100644 index 0000000..55a3e87 --- /dev/null +++ b/packages/kaz-ast/build.config.ts @@ -0,0 +1,5 @@ +import { defineBuildConfig } from 'unbuild' + +export default defineBuildConfig({ + failOnWarn: false, +}) diff --git a/packages/kaz-ast/package.json b/packages/kaz-ast/package.json index 00b99c7..18fc1c0 100644 --- a/packages/kaz-ast/package.json +++ b/packages/kaz-ast/package.json @@ -6,12 +6,14 @@ ".": { "require": "./dist/index.cjs", "import": "./dist/index.mjs" - } + }, + "./README.md": "./README.md" }, "main": "./dist/index.cjs", "types": "./dist/index.d.ts", "files": [ - "dist" + "dist", + "README.md" ], "scripts": { "build": "unbuild", diff --git a/packages/kaz-ast/src/index.ts b/packages/kaz-ast/src/index.ts index 5fed89b..ec94a61 100644 --- a/packages/kaz-ast/src/index.ts +++ b/packages/kaz-ast/src/index.ts @@ -1,6 +1,6 @@ import { parse as _parse, tokenize as _tokenize } from './lib/voltair' import type { ParserError, Token } from './lib/voltair' -import { type KazAst, kazAstSchema } from './types/KazAst' +import type { KazAst } from './types/KazAst' import config from './voltair.config' export const tokenize = (input: string) => { @@ -11,5 +11,4 @@ export const parse = (tokens: Token[]) => { return _parse(tokens, config.entry) as ParserError | KazAst | undefined } -export { kazAstSchema, type KazAst } -export * as schemas from './types/KazAst' +export * from './types/KazAst' diff --git a/packages/parser-base/src/parser-base.ts b/packages/parser-base/src/parser-base.ts index f94950e..5873de4 100644 --- a/packages/parser-base/src/parser-base.ts +++ b/packages/parser-base/src/parser-base.ts @@ -1,6 +1,14 @@ -import type { ITransformerInput } from '@whitebird/kazam-transformer-base' +import type { ITransformerInput, TransformerBase } from '@whitebird/kazam-transformer-base' -import type { KazamConfig } from './types/KazamConfig' +type Transformer = new (...args: ConstructorParameters) => TransformerBase +type Parser = new (...args: ConstructorParameters) => ParserBase + +interface KazamConfig { + input: string[] + output: string + transformers: [Transformer, ...Transformer[]] + parsers: [Parser, ...Parser[]] +} export abstract class ParserBase { abstract load(config: KazamConfig): unknown | Promise diff --git a/packages/parser-base/src/types/KazamConfig.ts b/packages/parser-base/src/types/KazamConfig.ts deleted file mode 100644 index 52d19b4..0000000 --- a/packages/parser-base/src/types/KazamConfig.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { TransformerBase } from '@whitebird/kazam-transformer-base' -import { assertType } from 'vitest' - -import type { KazamConfig as _KazamConfig } from '../../../../apps/kazam' -import type { ParserBase } from '../parser-base' - -type Transformer = new (...args: ConstructorParameters) => TransformerBase -type Parser = new (...args: ConstructorParameters) => ParserBase - -export interface KazamConfig { - input: string[] - output: string - transformers: [Transformer, ...Transformer[]] - parsers: [Parser, ...Parser[]] -} - -// Following 2 lines check that KazamConfig is assignable to the type KazamConfig defined in apps/kazam -assertType<_KazamConfig>({}) -assertType(<_KazamConfig>{}) diff --git a/packages/transformer-react/src/transformer-react.ts b/packages/transformer-react/src/transformer-react.ts index e2610ce..5614bf2 100644 --- a/packages/transformer-react/src/transformer-react.ts +++ b/packages/transformer-react/src/transformer-react.ts @@ -1,6 +1,6 @@ import * as path from 'node:path' -import { schemas } from '@whitebird/kaz-ast' +import * as schemas from '@whitebird/kaz-ast' import { type ITransformerOutput, TransformerBase } from '@whitebird/kazam-transformer-base' import prettier from 'prettier' import type { z } from 'zod' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 619db1e..5a43aab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -140,14 +140,12 @@ importers: '@types/node': ^18.11.9 '@whitebird/kazam-transformer-base': workspace:* esno: ^0.16.3 - rimraf: ^3.0.2 vitest: ^0.25.3 dependencies: '@whitebird/kazam-transformer-base': link:../transformer-base devDependencies: '@types/node': 18.11.10 esno: 0.16.3 - rimraf: 3.0.2 vitest: 0.25.3 packages/parser-kaz: @@ -172,7 +170,6 @@ importers: '@types/node': ^18.11.9 '@whitebird/kaz-ast': workspace:* esno: ^0.16.3 - rimraf: ^3.0.2 zod: ^3.19.1 zod-to-json-schema: ^3.18.1 dependencies: @@ -182,7 +179,6 @@ importers: devDependencies: '@types/node': 18.11.10 esno: 0.16.3 - rimraf: 3.0.2 packages/transformer-react: specifiers: @@ -194,7 +190,6 @@ importers: '@whitebird/kazam-transformer-base': workspace:* deepmerge: ^4.3.1 lodash: ^4.17.21 - rimraf: ^3.0.2 vitest: ^0.25.3 zod: ^3.19.1 dependencies: @@ -208,7 +203,6 @@ importers: devDependencies: '@types/node': 18.11.10 '@vitest/coverage-c8': 0.25.3 - rimraf: 3.0.2 vitest: 0.25.3 packages: