diff --git a/packages/builder/test/type-exports.test.ts b/packages/builder/test/type-exports.test.ts new file mode 100644 index 0000000..d3428e2 --- /dev/null +++ b/packages/builder/test/type-exports.test.ts @@ -0,0 +1,42 @@ +/** + * Test file to verify TypeScript type exports work correctly + * This file should compile without errors when types are properly exported + */ + +import type { FieldConfig } from '../src/types'; +import type { + RuleType, + OperatorsType, + Constraint, + ConditionType, + Condition, +} from '@usex/rule-engine'; +import { Operators, ConditionTypes } from '../src/index'; + +// Test that types are available +const _testFieldConfig: FieldConfig = { + name: 'test.field', + label: 'Test Field', + type: 'string', + description: 'A test field', +}; + +const _testRule: RuleType = { + conditions: [], +}; + +const _testCondition: Condition = { + [ConditionTypes.AND]: [], +}; + +const _testConstraint: Constraint = { + field: 'test.field', + operator: Operators.Equals, + value: 'test', +}; + +// Verify we can use the exported operators +const _testOperator: OperatorsType = Operators.Equals; +const _testConditionType: ConditionType = ConditionTypes.AND; + +console.log('Type imports work correctly!'); diff --git a/packages/builder/tsconfig.build.json b/packages/builder/tsconfig.build.json new file mode 100644 index 0000000..905700c --- /dev/null +++ b/packages/builder/tsconfig.build.json @@ -0,0 +1,22 @@ +{ + "extends": "./tsconfig.app.json", + "compilerOptions": { + "noEmit": false, + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": false, + "outDir": "dist", + "esModuleInterop": true, + "allowSyntheticDefaultImports": true + }, + "include": ["src/**/*.ts", "src/**/*.tsx"], + "exclude": [ + "src/demo.tsx", + "src/main.tsx", + "src/vite-env.d.ts", + "src/**/*.test.ts", + "src/**/*.test.tsx", + "src/**/*.spec.ts", + "src/**/*.spec.tsx" + ] +} diff --git a/packages/builder/vite.config.ts b/packages/builder/vite.config.ts index ad7a279..d43574a 100644 --- a/packages/builder/vite.config.ts +++ b/packages/builder/vite.config.ts @@ -19,6 +19,10 @@ export default defineConfig({ entryRoot: "src", outDir: "dist", insertTypesEntry: true, + tsconfigPath: "./tsconfig.build.json", + compilerOptions: { + preserveSymlinks: false, + }, }), nodePolyfills({ include: ["crypto", "stream", "vm", "buffer", "path", "url"],