diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-09-21 20:57:36 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-09-21 20:57:36 +0100 |
| commit | 2bf02785d9aef8b7b265d41cd45e2519a7e04bb4 (patch) | |
| tree | 72765bd081280ca0a36ad5f820a0659b35ff66ee | |
| parent | 8b601565c9e14aa673dca94bd79c84ad6f2f04f3 (diff) | |
Support Option in typescript-types
| -rw-r--r-- | examples/10-option/hobgoblin.json5 (renamed from examples/12-inductive-data-types/hobgoblin.json5) | 0 | ||||
| -rw-r--r-- | examples/10-option/output/java/.gitignore (renamed from examples/10-shared/output/java/.gitignore) | 0 | ||||
| l--------- | examples/10-option/output/java/pom.xml (renamed from examples/10-shared/output/java/pom.xml) | 0 | ||||
| -rw-r--r-- | examples/10-option/output/java/src/test/java/org/zwobble/example/PointTests.java | 32 | ||||
| -rw-r--r-- | examples/10-option/output/rust/.gitignore (renamed from examples/10-shared/output/rust/.gitignore) | 0 | ||||
| -rw-r--r-- | examples/10-option/output/rust/Cargo.lock (renamed from examples/10-shared/output/rust/Cargo.lock) | 0 | ||||
| -rw-r--r-- | examples/10-option/output/rust/Cargo.toml (renamed from examples/10-shared/output/rust/Cargo.toml) | 0 | ||||
| -rw-r--r-- | examples/10-option/output/rust/rust-toolchain.toml (renamed from examples/10-shared/output/rust/rust-toolchain.toml) | 0 | ||||
| -rw-r--r-- | examples/10-option/output/rust/src/lib.rs | 14 | ||||
| -rw-r--r-- | examples/10-option/output/rust/src/point.rs | 13 | ||||
| -rw-r--r-- | examples/10-option/output/typescript/.gitignore (renamed from examples/10-shared/output/typescript/.gitignore) | 0 | ||||
| l--------- | examples/10-option/output/typescript/package.json (renamed from examples/10-shared/output/typescript/package.json) | 0 | ||||
| -rw-r--r-- | examples/10-option/output/typescript/pnpm-lock.yaml | 834 | ||||
| -rw-r--r-- | examples/10-option/output/typescript/src/point.test.ts | 12 | ||||
| -rw-r--r-- | examples/10-option/output/typescript/src/point.ts | 39 | ||||
| l--------- | examples/10-option/output/typescript/tsconfig.json (renamed from examples/10-shared/output/typescript/tsconfig.json) | 0 | ||||
| -rw-r--r-- | examples/10-option/src/point.hob | 9 | ||||
| -rw-r--r-- | examples/11-shared/hobgoblin.json5 (renamed from examples/10-shared/hobgoblin.json5) | 0 | ||||
| -rw-r--r-- | examples/11-shared/output/java/.gitignore (renamed from examples/11-imports/output/java/.gitignore) | 0 | ||||
| l--------- | examples/11-shared/output/java/pom.xml (renamed from examples/11-imports/output/java/pom.xml) | 0 | ||||
| -rw-r--r-- | examples/11-shared/output/java/src/test/java/org/zwobble/example/PointTests.java (renamed from examples/10-shared/output/java/src/test/java/org/zwobble/example/PointTests.java) | 0 | ||||
| -rw-r--r-- | examples/11-shared/output/rust/.gitignore (renamed from examples/11-imports/output/rust/.gitignore) | 0 | ||||
| -rw-r--r-- | examples/11-shared/output/rust/Cargo.lock (renamed from examples/11-imports/output/rust/Cargo.lock) | 0 | ||||
| -rw-r--r-- | examples/11-shared/output/rust/Cargo.toml (renamed from examples/11-imports/output/rust/Cargo.toml) | 0 | ||||
| -rw-r--r-- | examples/11-shared/output/rust/rust-toolchain.toml (renamed from examples/11-imports/output/rust/rust-toolchain.toml) | 0 | ||||
| -rw-r--r-- | examples/11-shared/output/rust/src/lib.rs (renamed from examples/10-shared/output/rust/src/lib.rs) | 0 | ||||
| -rw-r--r-- | examples/11-shared/output/rust/src/point.rs (renamed from examples/10-shared/output/rust/src/point.rs) | 0 | ||||
| -rw-r--r-- | examples/11-shared/output/typescript/.gitignore (renamed from examples/11-imports/output/typescript/.gitignore) | 0 | ||||
| l--------- | examples/11-shared/output/typescript/package.json (renamed from examples/11-imports/output/typescript/package.json) | 0 | ||||
| -rw-r--r-- | examples/11-shared/output/typescript/pnpm-lock.yaml (renamed from examples/10-shared/output/typescript/pnpm-lock.yaml) | 0 | ||||
| -rw-r--r-- | examples/11-shared/output/typescript/src/point.test.ts (renamed from examples/10-shared/output/typescript/src/point.test.ts) | 0 | ||||
| -rw-r--r-- | examples/11-shared/output/typescript/src/point.ts (renamed from examples/10-shared/output/typescript/src/point.ts) | 0 | ||||
| l--------- | examples/11-shared/output/typescript/tsconfig.json (renamed from examples/11-imports/output/typescript/tsconfig.json) | 0 | ||||
| -rw-r--r-- | examples/11-shared/src/point.hob (renamed from examples/10-shared/src/point.hob) | 0 | ||||
| -rw-r--r-- | examples/12-imports/hobgoblin.json5 (renamed from examples/11-imports/hobgoblin.json5) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/java/.gitignore (renamed from examples/12-inductive-data-types/output/java/.gitignore) | 0 | ||||
| l--------- | examples/12-imports/output/java/pom.xml (renamed from examples/12-inductive-data-types/output/java/pom.xml) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/java/src/test/java/org/zwobble/example/LineTests.java (renamed from examples/11-imports/output/java/src/test/java/org/zwobble/example/LineTests.java) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/rust/.gitignore (renamed from examples/12-inductive-data-types/output/rust/.gitignore) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/rust/Cargo.lock (renamed from examples/12-inductive-data-types/output/rust/Cargo.lock) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/rust/Cargo.toml (renamed from examples/12-inductive-data-types/output/rust/Cargo.toml) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/rust/rust-toolchain.toml (renamed from examples/12-inductive-data-types/output/rust/rust-toolchain.toml) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/rust/src/lib.rs (renamed from examples/11-imports/output/rust/src/lib.rs) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/rust/src/line.rs (renamed from examples/11-imports/output/rust/src/line.rs) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/rust/src/point.rs (renamed from examples/11-imports/output/rust/src/point.rs) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/typescript/.gitignore (renamed from examples/12-inductive-data-types/output/typescript/.gitignore) | 0 | ||||
| l--------- | examples/12-imports/output/typescript/package.json (renamed from examples/12-inductive-data-types/output/typescript/package.json) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/typescript/pnpm-lock.yaml (renamed from examples/11-imports/output/typescript/pnpm-lock.yaml) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/typescript/src/line.test.ts (renamed from examples/11-imports/output/typescript/src/line.test.ts) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/typescript/src/line.ts (renamed from examples/11-imports/output/typescript/src/line.ts) | 0 | ||||
| -rw-r--r-- | examples/12-imports/output/typescript/src/point.ts (renamed from examples/11-imports/output/typescript/src/point.ts) | 0 | ||||
| l--------- | examples/12-imports/output/typescript/tsconfig.json (renamed from examples/12-inductive-data-types/output/typescript/tsconfig.json) | 0 | ||||
| -rw-r--r-- | examples/12-imports/src/line.hob (renamed from examples/11-imports/src/line.hob) | 0 | ||||
| -rw-r--r-- | examples/12-imports/src/point.hob (renamed from examples/11-imports/src/point.hob) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/hobgoblin.json5 | 23 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/java/.gitignore (renamed from examples/13-inductive-data-types-separate-namespaces/output/java/.gitignore) | 0 | ||||
| l--------- | examples/13-inductive-data-types/output/java/pom.xml (renamed from examples/13-inductive-data-types-separate-namespaces/output/java/pom.xml) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/java/src/main/java/org/zwobble/example/Arithmetic.java (renamed from examples/12-inductive-data-types/output/java/src/main/java/org/zwobble/example/Arithmetic.java) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/java/src/test/java/org/zwobble/example/ArithmeticTests.java (renamed from examples/12-inductive-data-types/output/java/src/test/java/org/zwobble/example/ArithmeticTests.java) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/rust/.gitignore (renamed from examples/13-inductive-data-types-separate-namespaces/output/rust/.gitignore) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/rust/Cargo.lock (renamed from examples/13-inductive-data-types-separate-namespaces/output/rust/Cargo.lock) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/rust/Cargo.toml (renamed from examples/13-inductive-data-types-separate-namespaces/output/rust/Cargo.toml) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/rust/rust-toolchain.toml (renamed from examples/13-inductive-data-types-separate-namespaces/output/rust/rust-toolchain.toml) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/rust/src/arithmetic.rs (renamed from examples/12-inductive-data-types/output/rust/src/arithmetic.rs) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/rust/src/lib.rs (renamed from examples/12-inductive-data-types/output/rust/src/lib.rs) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/typescript/.gitignore (renamed from examples/14-struct-generic/output/typescript/.gitignore) | 0 | ||||
| l--------- | examples/13-inductive-data-types/output/typescript/package.json (renamed from examples/14-struct-generic/output/typescript/package.json) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/typescript/pnpm-lock.yaml (renamed from examples/12-inductive-data-types/output/typescript/pnpm-lock.yaml) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/typescript/src/arithmetic.test.ts (renamed from examples/12-inductive-data-types/output/typescript/src/arithmetic.test.ts) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/typescript/src/arithmetic.ts (renamed from examples/12-inductive-data-types/output/typescript/src/arithmetic.ts) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/output/typescript/src/index.ts (renamed from examples/12-inductive-data-types/output/typescript/src/index.ts) | 0 | ||||
| l--------- | examples/13-inductive-data-types/output/typescript/tsconfig.json (renamed from examples/14-struct-generic/output/typescript/tsconfig.json) | 0 | ||||
| -rw-r--r-- | examples/13-inductive-data-types/src/arithmetic.hob (renamed from examples/12-inductive-data-types/src/arithmetic.hob) | 0 | ||||
| -rw-r--r-- | examples/14-inductive-data-types-separate-namespaces/hobgoblin.json5 (renamed from examples/13-inductive-data-types-separate-namespaces/hobgoblin.json5) | 0 | ||||
| -rw-r--r-- | examples/14-inductive-data-types-separate-namespaces/output/java/.gitignore (renamed from examples/14-struct-generic/output/java/.gitignore) | 0 | ||||
| l--------- | examples/14-inductive-data-types-separate-namespaces/output/java/pom.xml (renamed from examples/14-struct-generic/output/java/pom.xml) | 0 | ||||
| -rw-r--r-- | examples/14-inductive-data-types-separate-namespaces/output/java/src/test/java/org/zwobble/example/DataTests.java (renamed from examples/13-inductive-data-types-separate-namespaces/output/java/src/test/java/org/zwobble/example/DataTests.java) | 0 | ||||
| -rw-r--r-- | examples/14-inductive-data-types-separate-namespaces/output/rust/.gitignore (renamed from examples/14-struct-generic/output/rust/.gitignore) | 0 | ||||
| -rw-r--r-- | examples/14-inductive-data-types-separate-namespaces/output/rust/Cargo.lock (renamed from examples/14-struct-generic/output/rust/Cargo.lock) | 0 | ||||
| -rw-r--r-- | examples/14-inductive-data-types-separate-namespaces/output/rust/Cargo.toml (renamed from examples/14-struct-generic/output/rust/Cargo.toml) | 0 | ||||
| -rw-r--r-- | examples/14-inductive-data-types-separate-namespaces/output/rust/rust-toolchain.toml (renamed from examples/14-struct-generic/output/rust/rust-toolchain.toml) | 0 | ||||
| -rw-r--r-- | examples/14-inductive-data-types-separate-namespaces/output/rust/src/data/a.rs (renamed from examples/13-inductive-data-types-separate-namespaces/output/rust/src/data/a.rs) | 0 | ||||
| -rw-r--r-- | examples/14-inductive-data-types-separate-namespaces/output/rust/src/data/b.rs (renamed from examples/13-inductive-data-types-separate-namespaces/output/rust/src/data/b.rs) | 0 | ||||
| -rw-r--r-- | examples/14-inductive-data-types-separate-namespaces/output/rust/src/data/mod.rs (renamed from examples/13-inductive-data-types-separate-namespaces/output/rust/src/data/mod.rs) | 0 | ||||
| -rw-r--r-- | examples/14-inductive-data-types-separate-namespaces/output/rust/src/lib.rs (renamed from examples/13-inductive-data-types-separate-namespaces/output/rust/src/lib.rs) | 0 | ||||
| -rw-r--r-- | examples/14-inductive-data-types-separate-namespaces/src/data/a.hob (renamed from examples/13-inductive-data-types-separate-namespaces/src/data/a.hob) | 0 | ||||
| -rw-r--r-- | examples/14-inductive-data-types-separate-namespaces/src/data/b.hob (renamed from examples/13-inductive-data-types-separate-namespaces/src/data/b.hob) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/hobgoblin.json5 (renamed from examples/14-struct-generic/hobgoblin.json5) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/output/java/.gitignore (renamed from examples/15-native-type-generic/output/java/.gitignore) | 0 | ||||
| l--------- | examples/15-struct-generic/output/java/pom.xml (renamed from examples/15-native-type-generic/output/java/pom.xml) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/output/java/src/test/java/org/zwobble/example/PointTests.java (renamed from examples/14-struct-generic/output/java/src/test/java/org/zwobble/example/PointTests.java) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/output/rust/.gitignore (renamed from examples/15-native-type-generic/output/rust/.gitignore) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/output/rust/Cargo.lock (renamed from examples/15-native-type-generic/output/rust/Cargo.lock) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/output/rust/Cargo.toml (renamed from examples/15-native-type-generic/output/rust/Cargo.toml) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/output/rust/rust-toolchain.toml (renamed from examples/15-native-type-generic/output/rust/rust-toolchain.toml) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/output/rust/src/lib.rs (renamed from examples/14-struct-generic/output/rust/src/lib.rs) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/output/rust/src/point.rs (renamed from examples/14-struct-generic/output/rust/src/point.rs) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/output/typescript/.gitignore (renamed from examples/15-native-type-generic/output/typescript/.gitignore) | 0 | ||||
| l--------- | examples/15-struct-generic/output/typescript/package.json (renamed from examples/15-native-type-generic/output/typescript/package.json) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/output/typescript/pnpm-lock.yaml (renamed from examples/14-struct-generic/output/typescript/pnpm-lock.yaml) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/output/typescript/src/point.test.ts (renamed from examples/14-struct-generic/output/typescript/src/point.test.ts) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/output/typescript/src/point.ts (renamed from examples/14-struct-generic/output/typescript/src/point.ts) | 0 | ||||
| l--------- | examples/15-struct-generic/output/typescript/tsconfig.json (renamed from examples/15-native-type-generic/output/typescript/tsconfig.json) | 0 | ||||
| -rw-r--r-- | examples/15-struct-generic/src/point.hob (renamed from examples/14-struct-generic/src/point.hob) | 0 | ||||
| -rw-r--r-- | examples/16-native-type-generic/hobgoblin.json5 (renamed from examples/15-native-type-generic/hobgoblin.json5) | 0 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/java/.gitignore | 2 | ||||
| l--------- | examples/16-native-type-generic/output/java/pom.xml (renamed from examples/16-transient-0/output/java/pom.xml) | 0 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/java/src/main/java/org/zwobble/example/types/map/HobgoblinNativeMap.java (renamed from examples/15-native-type-generic/output/java/src/main/java/org/zwobble/example/types/map/HobgoblinNativeMap.java) | 0 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/java/src/test/java/org/zwobble/example/MapTests.java (renamed from examples/15-native-type-generic/output/java/src/test/java/org/zwobble/example/MapTests.java) | 0 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/rust/.gitignore | 1 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/rust/Cargo.lock (renamed from examples/16-transient-0/output/rust/Cargo.lock) | 0 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/rust/Cargo.toml (renamed from examples/16-transient-0/output/rust/Cargo.toml) | 0 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/rust/rust-toolchain.toml (renamed from examples/16-transient-0/output/rust/rust-toolchain.toml) | 0 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/rust/src/gen/map.rs (renamed from examples/15-native-type-generic/output/rust/src/gen/map.rs) | 0 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/rust/src/lib.rs (renamed from examples/15-native-type-generic/output/rust/src/lib.rs) | 0 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/rust/src/map.rs (renamed from examples/15-native-type-generic/output/rust/src/map.rs) | 0 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/typescript/.gitignore | 1 | ||||
| l--------- | examples/16-native-type-generic/output/typescript/package.json | 1 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/typescript/pnpm-lock.yaml (renamed from examples/15-native-type-generic/output/typescript/pnpm-lock.yaml) | 0 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/typescript/src/map.test.ts (renamed from examples/15-native-type-generic/output/typescript/src/map.test.ts) | 0 | ||||
| -rw-r--r-- | examples/16-native-type-generic/output/typescript/src/map.ts (renamed from examples/15-native-type-generic/output/typescript/src/map.ts) | 0 | ||||
| l--------- | examples/16-native-type-generic/output/typescript/tsconfig.json | 1 | ||||
| -rw-r--r-- | examples/16-native-type-generic/src/map.hob (renamed from examples/15-native-type-generic/src/map.hob) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/hobgoblin.json5 (renamed from examples/16-transient-0/hobgoblin.json5) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/java/.gitignore (renamed from examples/16-transient-0/output/java/.gitignore) | 0 | ||||
| l--------- | examples/17-transient-0/output/java/pom.xml | 1 | ||||
| -rw-r--r-- | examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/data/GenericNative.java (renamed from examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/data/GenericNative.java) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/data/HobgoblinNativeData.java (renamed from examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/data/HobgoblinNativeData.java) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/data/Native.java (renamed from examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/data/Native.java) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/data/transient0/HobgoblinTransient0Data.java (renamed from examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/data/transient0/HobgoblinTransient0Data.java) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Decoder.java (renamed from examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Decoder.java) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Encoder.java (renamed from examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Encoder.java) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/HobgoblinTransient0Builtins.java (renamed from examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/HobgoblinTransient0Builtins.java) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/HobgoblinTransient0TaggedSharedValue.java (renamed from examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/HobgoblinTransient0TaggedSharedValue.java) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java (renamed from examples/16-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/rust/.gitignore (renamed from examples/16-transient-0/output/rust/.gitignore) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/rust/Cargo.lock | 7 | ||||
| -rw-r--r-- | examples/17-transient-0/output/rust/Cargo.toml | 6 | ||||
| -rw-r--r-- | examples/17-transient-0/output/rust/rust-toolchain.toml | 2 | ||||
| -rw-r--r-- | examples/17-transient-0/output/rust/src/data.rs (renamed from examples/16-transient-0/output/rust/src/data.rs) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/rust/src/gen/data.rs (renamed from examples/16-transient-0/output/rust/src/gen/data.rs) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/rust/src/gen/data/transient_0.rs (renamed from examples/16-transient-0/output/rust/src/gen/data/transient_0.rs) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/rust/src/gen/transient_0.rs (renamed from examples/16-transient-0/output/rust/src/gen/transient_0.rs) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/rust/src/lib.rs (renamed from examples/16-transient-0/output/rust/src/lib.rs) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/output/rust/src/transient_0.rs (renamed from examples/16-transient-0/output/rust/src/transient_0.rs) | 0 | ||||
| -rw-r--r-- | examples/17-transient-0/src/data.hob (renamed from examples/16-transient-0/src/data.hob) | 0 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescript/TypescriptGenerator.java | 11 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptTypes.java | 2 |
148 files changed, 1011 insertions, 0 deletions
diff --git a/examples/12-inductive-data-types/hobgoblin.json5 b/examples/10-option/hobgoblin.json5 index eac8d4a..eac8d4a 100644 --- a/examples/12-inductive-data-types/hobgoblin.json5 +++ b/examples/10-option/hobgoblin.json5 diff --git a/examples/10-shared/output/java/.gitignore b/examples/10-option/output/java/.gitignore index ff511d4..ff511d4 100644 --- a/examples/10-shared/output/java/.gitignore +++ b/examples/10-option/output/java/.gitignore diff --git a/examples/10-shared/output/java/pom.xml b/examples/10-option/output/java/pom.xml index 445fa65..445fa65 120000 --- a/examples/10-shared/output/java/pom.xml +++ b/examples/10-option/output/java/pom.xml diff --git a/examples/10-option/output/java/src/test/java/org/zwobble/example/PointTests.java b/examples/10-option/output/java/src/test/java/org/zwobble/example/PointTests.java new file mode 100644 index 0000000..b1f0ccb --- /dev/null +++ b/examples/10-option/output/java/src/test/java/org/zwobble/example/PointTests.java @@ -0,0 +1,32 @@ +package org.zwobble.example; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import java.util.List; +import java.util.Optional; +import org.zwobble.example.types.point.Line; +import org.zwobble.example.types.point.Point; + +public class PointTests { + @Test + public void canCreateLineWithConstructor() { + var line = new Line( + Optional.of(new Point(10, 25)), + Optional.of(42) + ); + + assertEquals(line.start().get().x(), 10); + assertEquals(line.length().get(), 42); + } + + @Test + public void canCreateLineWithBuilder() { + var line = Line.arbitrary() + .withStart(new Point(10, 25)) + .withLength(42) + .build(); + + assertEquals(line.start().get().x(), 10); + assertEquals(line.length().get(), 42); + } +} diff --git a/examples/10-shared/output/rust/.gitignore b/examples/10-option/output/rust/.gitignore index ea8c4bf..ea8c4bf 100644 --- a/examples/10-shared/output/rust/.gitignore +++ b/examples/10-option/output/rust/.gitignore diff --git a/examples/10-shared/output/rust/Cargo.lock b/examples/10-option/output/rust/Cargo.lock index 9dc6e3e..9dc6e3e 100644 --- a/examples/10-shared/output/rust/Cargo.lock +++ b/examples/10-option/output/rust/Cargo.lock diff --git a/examples/10-shared/output/rust/Cargo.toml b/examples/10-option/output/rust/Cargo.toml index 5d4c622..5d4c622 100644 --- a/examples/10-shared/output/rust/Cargo.toml +++ b/examples/10-option/output/rust/Cargo.toml diff --git a/examples/10-shared/output/rust/rust-toolchain.toml b/examples/10-option/output/rust/rust-toolchain.toml index 4fedb95..4fedb95 100644 --- a/examples/10-shared/output/rust/rust-toolchain.toml +++ b/examples/10-option/output/rust/rust-toolchain.toml diff --git a/examples/10-option/output/rust/src/lib.rs b/examples/10-option/output/rust/src/lib.rs new file mode 100644 index 0000000..7a41573 --- /dev/null +++ b/examples/10-option/output/rust/src/lib.rs @@ -0,0 +1,14 @@ +mod point; + +#[cfg(test)] +mod test { + use super::point::{Line, Point}; + + #[test] + fn can_create_line_directly() { + let line = Line { + start: Some(Point { x: 10, y: 25 }), + length: Some(42), + }; + } +} diff --git a/examples/10-option/output/rust/src/point.rs b/examples/10-option/output/rust/src/point.rs new file mode 100644 index 0000000..7f481f8 --- /dev/null +++ b/examples/10-option/output/rust/src/point.rs @@ -0,0 +1,13 @@ +// Generated by hobgoblin. + +#[derive(Clone, Debug, PartialEq)] +pub struct Line { + pub start: ::std::option::Option::<crate::point::Point>, + pub length: ::std::option::Option::<::core::primitive::i32>, +} + +#[derive(Clone, Debug, PartialEq)] +pub struct Point { + pub x: ::core::primitive::i32, + pub y: ::core::primitive::i32, +} diff --git a/examples/10-shared/output/typescript/.gitignore b/examples/10-option/output/typescript/.gitignore index 07e6e47..07e6e47 100644 --- a/examples/10-shared/output/typescript/.gitignore +++ b/examples/10-option/output/typescript/.gitignore diff --git a/examples/10-shared/output/typescript/package.json b/examples/10-option/output/typescript/package.json index 0bc7349..0bc7349 120000 --- a/examples/10-shared/output/typescript/package.json +++ b/examples/10-option/output/typescript/package.json diff --git a/examples/10-option/output/typescript/pnpm-lock.yaml b/examples/10-option/output/typescript/pnpm-lock.yaml new file mode 100644 index 0000000..f5404e5 --- /dev/null +++ b/examples/10-option/output/typescript/pnpm-lock.yaml @@ -0,0 +1,834 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@types/mocha': + specifier: ^10.0.10 + version: 10.0.10 + '@types/node': + specifier: ^26.4.0 + version: 26.6.2 + mocha: + specifier: ^11.8.0 + version: 11.8.0 + typescript: + specifier: ^7.0.2 + version: 7.0.2 + +packages: + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@types/mocha@10.0.10': + resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} + + '@types/node@26.6.2': + resolution: {integrity: sha512-X1P21scMv4zGKLYqjdGjaKa7COa0RKVYYZZN/NfvLQ1JegxFhdhpZG/Lyn8AXx6CDUavKAd11v6BvfpkDByK8g==} + + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] + + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] + + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] + + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] + + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] + + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] + + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] + + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] + + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] + + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] + + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] + + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.3.0: + resolution: {integrity: sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + brace-expansion@2.1.7: + resolution: {integrity: sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==} + + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + + diff@7.0.0: + resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} + engines: {node: '>=0.3.1'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + hasBin: true + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + js-yaml@4.3.2: + resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==} + hasBin: true + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + mocha@11.8.0: + resolution: {integrity: sha512-VyCeUdGN3A9lmCTTgG4yuvY9ixxaDk+xt2R/7/+1AP6EqNG+G9OKkzBwhVtVYoNX8YsxNSgAl8mOv3IAeOpFbw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} + engines: {node: '>=12'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} + hasBin: true + + undici-types@8.9.0: + resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + workerpool@9.3.4: + resolution: {integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + + yargs@17.7.3: + resolution: {integrity: sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.2.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@types/mocha@10.0.10': {} + + '@types/node@26.6.2': + dependencies: + undici-types: 8.9.0 + + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true + + '@typescript/typescript-darwin-arm64@7.0.2': + optional: true + + '@typescript/typescript-darwin-x64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-x64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm@7.0.2': + optional: true + + '@typescript/typescript-linux-loong64@7.0.2': + optional: true + + '@typescript/typescript-linux-mips64el@7.0.2': + optional: true + + '@typescript/typescript-linux-ppc64@7.0.2': + optional: true + + '@typescript/typescript-linux-riscv64@7.0.2': + optional: true + + '@typescript/typescript-linux-s390x@7.0.2': + optional: true + + '@typescript/typescript-linux-x64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-sunos-x64@7.0.2': + optional: true + + '@typescript/typescript-win32-arm64@7.0.2': + optional: true + + '@typescript/typescript-win32-x64@7.0.2': + optional: true + + ansi-regex@5.0.1: {} + + ansi-regex@6.3.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.3: {} + + argparse@2.0.1: {} + + balanced-match@1.0.2: {} + + brace-expansion@2.1.7: + dependencies: + balanced-match: 1.0.2 + + browser-stdout@1.3.1: {} + + camelcase@6.3.0: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + debug@4.4.3(supports-color@8.1.1): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 + + decamelize@4.0.0: {} + + diff@7.0.0: {} + + eastasianwidth@0.2.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat@5.0.2: {} + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + get-caller-file@2.0.5: {} + + glob@10.5.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.9 + minipass: 7.1.3 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + has-flag@4.0.0: {} + + he@1.2.0: {} + + is-fullwidth-code-point@3.0.0: {} + + is-path-inside@3.0.3: {} + + is-plain-obj@2.1.0: {} + + is-unicode-supported@0.1.0: {} + + isexe@2.0.0: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + js-yaml@4.3.2: + dependencies: + argparse: 2.0.1 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + lru-cache@10.4.3: {} + + minimatch@9.0.9: + dependencies: + brace-expansion: 2.1.7 + + minipass@7.1.3: {} + + mocha@11.8.0: + dependencies: + browser-stdout: 1.3.1 + chokidar: 4.0.3 + debug: 4.4.3(supports-color@8.1.1) + diff: 7.0.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 10.5.0 + he: 1.2.0 + is-path-inside: 3.0.3 + js-yaml: 4.3.2 + log-symbols: 4.1.0 + minimatch: 9.0.9 + ms: 2.1.3 + picocolors: 1.1.1 + serialize-javascript: 6.0.2 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + workerpool: 9.3.4 + yargs: 17.7.3 + yargs-parser: 21.1.1 + yargs-unparser: 2.0.0 + + ms@2.1.3: {} + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + package-json-from-dist@1.0.1: {} + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.3 + + picocolors@1.1.1: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + readdirp@4.1.2: {} + + require-directory@2.1.1: {} + + safe-buffer@5.2.1: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + signal-exit@4.1.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.2.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.2.0: + dependencies: + ansi-regex: 6.3.0 + + strip-json-comments@3.1.1: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + typescript@7.0.2: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 + + undici-types@8.9.0: {} + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + workerpool@9.3.4: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.2.0 + + y18n@5.0.8: {} + + yargs-parser@21.1.1: {} + + yargs-unparser@2.0.0: + dependencies: + camelcase: 6.3.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + + yargs@17.7.3: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} diff --git a/examples/10-option/output/typescript/src/point.test.ts b/examples/10-option/output/typescript/src/point.test.ts new file mode 100644 index 0000000..3a39407 --- /dev/null +++ b/examples/10-option/output/typescript/src/point.test.ts @@ -0,0 +1,12 @@ +import * as assert from "node:assert"; + +import {test} from "mocha"; + +import {Line, Point} from "./point.ts"; + +test("can create line with constructor", () => { + const line = new Line(new Point(10, 25), 42); + + assert.strictEqual(line.start!.x, 10); + assert.strictEqual(line.length, 42); +}); diff --git a/examples/10-option/output/typescript/src/point.ts b/examples/10-option/output/typescript/src/point.ts new file mode 100644 index 0000000..a6c6135 --- /dev/null +++ b/examples/10-option/output/typescript/src/point.ts @@ -0,0 +1,39 @@ +// Generated by hobgoblin. + +// Custom area start: imports +// Custom area end: imports + +class Line { + public readonly start: Point | null; + + public readonly length: number | null; + + public constructor(start: Point | null, length: number | null) { + this.start = start; + this.length = length; + } + + // Custom area start: Line, body + // Custom area end: Line, body +} + +export {Line}; + +class Point { + public readonly x: number; + + public readonly y: number; + + public constructor(x: number, y: number) { + this.x = x; + this.y = y; + } + + // Custom area start: Point, body + // Custom area end: Point, body +} + +export {Point}; + +// Custom area start: body +// Custom area end: body diff --git a/examples/10-shared/output/typescript/tsconfig.json b/examples/10-option/output/typescript/tsconfig.json index 3c7cb2a..3c7cb2a 120000 --- a/examples/10-shared/output/typescript/tsconfig.json +++ b/examples/10-option/output/typescript/tsconfig.json diff --git a/examples/10-option/src/point.hob b/examples/10-option/src/point.hob new file mode 100644 index 0000000..c144d2e --- /dev/null +++ b/examples/10-option/src/point.hob @@ -0,0 +1,9 @@ +struct Line { + field start: Option[Point]; + field length: Option[Int32]; +} + +struct Point { + field x: Int32; + field y: Int32; +} diff --git a/examples/10-shared/hobgoblin.json5 b/examples/11-shared/hobgoblin.json5 index 19e0f93..19e0f93 100644 --- a/examples/10-shared/hobgoblin.json5 +++ b/examples/11-shared/hobgoblin.json5 diff --git a/examples/11-imports/output/java/.gitignore b/examples/11-shared/output/java/.gitignore index ff511d4..ff511d4 100644 --- a/examples/11-imports/output/java/.gitignore +++ b/examples/11-shared/output/java/.gitignore diff --git a/examples/11-imports/output/java/pom.xml b/examples/11-shared/output/java/pom.xml index 445fa65..445fa65 120000 --- a/examples/11-imports/output/java/pom.xml +++ b/examples/11-shared/output/java/pom.xml diff --git a/examples/10-shared/output/java/src/test/java/org/zwobble/example/PointTests.java b/examples/11-shared/output/java/src/test/java/org/zwobble/example/PointTests.java index b4c140d..b4c140d 100644 --- a/examples/10-shared/output/java/src/test/java/org/zwobble/example/PointTests.java +++ b/examples/11-shared/output/java/src/test/java/org/zwobble/example/PointTests.java diff --git a/examples/11-imports/output/rust/.gitignore b/examples/11-shared/output/rust/.gitignore index ea8c4bf..ea8c4bf 100644 --- a/examples/11-imports/output/rust/.gitignore +++ b/examples/11-shared/output/rust/.gitignore diff --git a/examples/11-imports/output/rust/Cargo.lock b/examples/11-shared/output/rust/Cargo.lock index 9dc6e3e..9dc6e3e 100644 --- a/examples/11-imports/output/rust/Cargo.lock +++ b/examples/11-shared/output/rust/Cargo.lock diff --git a/examples/11-imports/output/rust/Cargo.toml b/examples/11-shared/output/rust/Cargo.toml index 5d4c622..5d4c622 100644 --- a/examples/11-imports/output/rust/Cargo.toml +++ b/examples/11-shared/output/rust/Cargo.toml diff --git a/examples/11-imports/output/rust/rust-toolchain.toml b/examples/11-shared/output/rust/rust-toolchain.toml index 4fedb95..4fedb95 100644 --- a/examples/11-imports/output/rust/rust-toolchain.toml +++ b/examples/11-shared/output/rust/rust-toolchain.toml diff --git a/examples/10-shared/output/rust/src/lib.rs b/examples/11-shared/output/rust/src/lib.rs index af2c87f..af2c87f 100644 --- a/examples/10-shared/output/rust/src/lib.rs +++ b/examples/11-shared/output/rust/src/lib.rs diff --git a/examples/10-shared/output/rust/src/point.rs b/examples/11-shared/output/rust/src/point.rs index 82df631..82df631 100644 --- a/examples/10-shared/output/rust/src/point.rs +++ b/examples/11-shared/output/rust/src/point.rs diff --git a/examples/11-imports/output/typescript/.gitignore b/examples/11-shared/output/typescript/.gitignore index 07e6e47..07e6e47 100644 --- a/examples/11-imports/output/typescript/.gitignore +++ b/examples/11-shared/output/typescript/.gitignore diff --git a/examples/11-imports/output/typescript/package.json b/examples/11-shared/output/typescript/package.json index 0bc7349..0bc7349 120000 --- a/examples/11-imports/output/typescript/package.json +++ b/examples/11-shared/output/typescript/package.json diff --git a/examples/10-shared/output/typescript/pnpm-lock.yaml b/examples/11-shared/output/typescript/pnpm-lock.yaml index 016d629..016d629 100644 --- a/examples/10-shared/output/typescript/pnpm-lock.yaml +++ b/examples/11-shared/output/typescript/pnpm-lock.yaml diff --git a/examples/10-shared/output/typescript/src/point.test.ts b/examples/11-shared/output/typescript/src/point.test.ts index 46fc446..46fc446 100644 --- a/examples/10-shared/output/typescript/src/point.test.ts +++ b/examples/11-shared/output/typescript/src/point.test.ts diff --git a/examples/10-shared/output/typescript/src/point.ts b/examples/11-shared/output/typescript/src/point.ts index fccae01..fccae01 100644 --- a/examples/10-shared/output/typescript/src/point.ts +++ b/examples/11-shared/output/typescript/src/point.ts diff --git a/examples/11-imports/output/typescript/tsconfig.json b/examples/11-shared/output/typescript/tsconfig.json index 3c7cb2a..3c7cb2a 120000 --- a/examples/11-imports/output/typescript/tsconfig.json +++ b/examples/11-shared/output/typescript/tsconfig.json diff --git a/examples/10-shared/src/point.hob b/examples/11-shared/src/point.hob index 7b9a8e6..7b9a8e6 100644 --- a/examples/10-shared/src/point.hob +++ b/examples/11-shared/src/point.hob diff --git a/examples/11-imports/hobgoblin.json5 b/examples/12-imports/hobgoblin.json5 index d3f8c79..d3f8c79 100644 --- a/examples/11-imports/hobgoblin.json5 +++ b/examples/12-imports/hobgoblin.json5 diff --git a/examples/12-inductive-data-types/output/java/.gitignore b/examples/12-imports/output/java/.gitignore index ff511d4..ff511d4 100644 --- a/examples/12-inductive-data-types/output/java/.gitignore +++ b/examples/12-imports/output/java/.gitignore diff --git a/examples/12-inductive-data-types/output/java/pom.xml b/examples/12-imports/output/java/pom.xml index 445fa65..445fa65 120000 --- a/examples/12-inductive-data-types/output/java/pom.xml +++ b/examples/12-imports/output/java/pom.xml diff --git a/examples/11-imports/output/java/src/test/java/org/zwobble/example/LineTests.java b/examples/12-imports/output/java/src/test/java/org/zwobble/example/LineTests.java index c376b19..c376b19 100644 --- a/examples/11-imports/output/java/src/test/java/org/zwobble/example/LineTests.java +++ b/examples/12-imports/output/java/src/test/java/org/zwobble/example/LineTests.java diff --git a/examples/12-inductive-data-types/output/rust/.gitignore b/examples/12-imports/output/rust/.gitignore index ea8c4bf..ea8c4bf 100644 --- a/examples/12-inductive-data-types/output/rust/.gitignore +++ b/examples/12-imports/output/rust/.gitignore diff --git a/examples/12-inductive-data-types/output/rust/Cargo.lock b/examples/12-imports/output/rust/Cargo.lock index 9dc6e3e..9dc6e3e 100644 --- a/examples/12-inductive-data-types/output/rust/Cargo.lock +++ b/examples/12-imports/output/rust/Cargo.lock diff --git a/examples/12-inductive-data-types/output/rust/Cargo.toml b/examples/12-imports/output/rust/Cargo.toml index 5d4c622..5d4c622 100644 --- a/examples/12-inductive-data-types/output/rust/Cargo.toml +++ b/examples/12-imports/output/rust/Cargo.toml diff --git a/examples/12-inductive-data-types/output/rust/rust-toolchain.toml b/examples/12-imports/output/rust/rust-toolchain.toml index 4fedb95..4fedb95 100644 --- a/examples/12-inductive-data-types/output/rust/rust-toolchain.toml +++ b/examples/12-imports/output/rust/rust-toolchain.toml diff --git a/examples/11-imports/output/rust/src/lib.rs b/examples/12-imports/output/rust/src/lib.rs index ffbcbf4..ffbcbf4 100644 --- a/examples/11-imports/output/rust/src/lib.rs +++ b/examples/12-imports/output/rust/src/lib.rs diff --git a/examples/11-imports/output/rust/src/line.rs b/examples/12-imports/output/rust/src/line.rs index ec51f56..ec51f56 100644 --- a/examples/11-imports/output/rust/src/line.rs +++ b/examples/12-imports/output/rust/src/line.rs diff --git a/examples/11-imports/output/rust/src/point.rs b/examples/12-imports/output/rust/src/point.rs index 22f5389..22f5389 100644 --- a/examples/11-imports/output/rust/src/point.rs +++ b/examples/12-imports/output/rust/src/point.rs diff --git a/examples/12-inductive-data-types/output/typescript/.gitignore b/examples/12-imports/output/typescript/.gitignore index 07e6e47..07e6e47 100644 --- a/examples/12-inductive-data-types/output/typescript/.gitignore +++ b/examples/12-imports/output/typescript/.gitignore diff --git a/examples/12-inductive-data-types/output/typescript/package.json b/examples/12-imports/output/typescript/package.json index 0bc7349..0bc7349 120000 --- a/examples/12-inductive-data-types/output/typescript/package.json +++ b/examples/12-imports/output/typescript/package.json diff --git a/examples/11-imports/output/typescript/pnpm-lock.yaml b/examples/12-imports/output/typescript/pnpm-lock.yaml index b29cfae..b29cfae 100644 --- a/examples/11-imports/output/typescript/pnpm-lock.yaml +++ b/examples/12-imports/output/typescript/pnpm-lock.yaml diff --git a/examples/11-imports/output/typescript/src/line.test.ts b/examples/12-imports/output/typescript/src/line.test.ts index 9c2fbe6..9c2fbe6 100644 --- a/examples/11-imports/output/typescript/src/line.test.ts +++ b/examples/12-imports/output/typescript/src/line.test.ts diff --git a/examples/11-imports/output/typescript/src/line.ts b/examples/12-imports/output/typescript/src/line.ts index 178e01a..178e01a 100644 --- a/examples/11-imports/output/typescript/src/line.ts +++ b/examples/12-imports/output/typescript/src/line.ts diff --git a/examples/11-imports/output/typescript/src/point.ts b/examples/12-imports/output/typescript/src/point.ts index b051211..b051211 100644 --- a/examples/11-imports/output/typescript/src/point.ts +++ b/examples/12-imports/output/typescript/src/point.ts diff --git a/examples/12-inductive-data-types/output/typescript/tsconfig.json b/examples/12-imports/output/typescript/tsconfig.json index 3c7cb2a..3c7cb2a 120000 --- a/examples/12-inductive-data-types/output/typescript/tsconfig.json +++ b/examples/12-imports/output/typescript/tsconfig.json diff --git a/examples/11-imports/src/line.hob b/examples/12-imports/src/line.hob index 562d77f..562d77f 100644 --- a/examples/11-imports/src/line.hob +++ b/examples/12-imports/src/line.hob diff --git a/examples/11-imports/src/point.hob b/examples/12-imports/src/point.hob index 87f9953..87f9953 100644 --- a/examples/11-imports/src/point.hob +++ b/examples/12-imports/src/point.hob diff --git a/examples/13-inductive-data-types/hobgoblin.json5 b/examples/13-inductive-data-types/hobgoblin.json5 new file mode 100644 index 0000000..eac8d4a --- /dev/null +++ b/examples/13-inductive-data-types/hobgoblin.json5 @@ -0,0 +1,23 @@ +{ + outputs: { + langs: { + java: { + packageName: "org.zwobble.example.types", + }, + }, + generators: [ + { + generator: "java-types", + path: "output/java/src/gen/java", + }, + { + generator: "rust-types", + path: "output/rust/src", + }, + { + generator: "typescript-types", + path: "output/typescript/src", + }, + ], + }, +} diff --git a/examples/13-inductive-data-types-separate-namespaces/output/java/.gitignore b/examples/13-inductive-data-types/output/java/.gitignore index ff511d4..ff511d4 100644 --- a/examples/13-inductive-data-types-separate-namespaces/output/java/.gitignore +++ b/examples/13-inductive-data-types/output/java/.gitignore diff --git a/examples/13-inductive-data-types-separate-namespaces/output/java/pom.xml b/examples/13-inductive-data-types/output/java/pom.xml index 445fa65..445fa65 120000 --- a/examples/13-inductive-data-types-separate-namespaces/output/java/pom.xml +++ b/examples/13-inductive-data-types/output/java/pom.xml diff --git a/examples/12-inductive-data-types/output/java/src/main/java/org/zwobble/example/Arithmetic.java b/examples/13-inductive-data-types/output/java/src/main/java/org/zwobble/example/Arithmetic.java index 08cb75c..08cb75c 100644 --- a/examples/12-inductive-data-types/output/java/src/main/java/org/zwobble/example/Arithmetic.java +++ b/examples/13-inductive-data-types/output/java/src/main/java/org/zwobble/example/Arithmetic.java diff --git a/examples/12-inductive-data-types/output/java/src/test/java/org/zwobble/example/ArithmeticTests.java b/examples/13-inductive-data-types/output/java/src/test/java/org/zwobble/example/ArithmeticTests.java index cd4fdd0..cd4fdd0 100644 --- a/examples/12-inductive-data-types/output/java/src/test/java/org/zwobble/example/ArithmeticTests.java +++ b/examples/13-inductive-data-types/output/java/src/test/java/org/zwobble/example/ArithmeticTests.java diff --git a/examples/13-inductive-data-types-separate-namespaces/output/rust/.gitignore b/examples/13-inductive-data-types/output/rust/.gitignore index ea8c4bf..ea8c4bf 100644 --- a/examples/13-inductive-data-types-separate-namespaces/output/rust/.gitignore +++ b/examples/13-inductive-data-types/output/rust/.gitignore diff --git a/examples/13-inductive-data-types-separate-namespaces/output/rust/Cargo.lock b/examples/13-inductive-data-types/output/rust/Cargo.lock index 9dc6e3e..9dc6e3e 100644 --- a/examples/13-inductive-data-types-separate-namespaces/output/rust/Cargo.lock +++ b/examples/13-inductive-data-types/output/rust/Cargo.lock diff --git a/examples/13-inductive-data-types-separate-namespaces/output/rust/Cargo.toml b/examples/13-inductive-data-types/output/rust/Cargo.toml index 5d4c622..5d4c622 100644 --- a/examples/13-inductive-data-types-separate-namespaces/output/rust/Cargo.toml +++ b/examples/13-inductive-data-types/output/rust/Cargo.toml diff --git a/examples/13-inductive-data-types-separate-namespaces/output/rust/rust-toolchain.toml b/examples/13-inductive-data-types/output/rust/rust-toolchain.toml index 4fedb95..4fedb95 100644 --- a/examples/13-inductive-data-types-separate-namespaces/output/rust/rust-toolchain.toml +++ b/examples/13-inductive-data-types/output/rust/rust-toolchain.toml diff --git a/examples/12-inductive-data-types/output/rust/src/arithmetic.rs b/examples/13-inductive-data-types/output/rust/src/arithmetic.rs index e73fb87..e73fb87 100644 --- a/examples/12-inductive-data-types/output/rust/src/arithmetic.rs +++ b/examples/13-inductive-data-types/output/rust/src/arithmetic.rs diff --git a/examples/12-inductive-data-types/output/rust/src/lib.rs b/examples/13-inductive-data-types/output/rust/src/lib.rs index 3265e69..3265e69 100644 --- a/examples/12-inductive-data-types/output/rust/src/lib.rs +++ b/examples/13-inductive-data-types/output/rust/src/lib.rs diff --git a/examples/14-struct-generic/output/typescript/.gitignore b/examples/13-inductive-data-types/output/typescript/.gitignore index 07e6e47..07e6e47 100644 --- a/examples/14-struct-generic/output/typescript/.gitignore +++ b/examples/13-inductive-data-types/output/typescript/.gitignore diff --git a/examples/14-struct-generic/output/typescript/package.json b/examples/13-inductive-data-types/output/typescript/package.json index 0bc7349..0bc7349 120000 --- a/examples/14-struct-generic/output/typescript/package.json +++ b/examples/13-inductive-data-types/output/typescript/package.json diff --git a/examples/12-inductive-data-types/output/typescript/pnpm-lock.yaml b/examples/13-inductive-data-types/output/typescript/pnpm-lock.yaml index 016d629..016d629 100644 --- a/examples/12-inductive-data-types/output/typescript/pnpm-lock.yaml +++ b/examples/13-inductive-data-types/output/typescript/pnpm-lock.yaml diff --git a/examples/12-inductive-data-types/output/typescript/src/arithmetic.test.ts b/examples/13-inductive-data-types/output/typescript/src/arithmetic.test.ts index 7d25224..7d25224 100644 --- a/examples/12-inductive-data-types/output/typescript/src/arithmetic.test.ts +++ b/examples/13-inductive-data-types/output/typescript/src/arithmetic.test.ts diff --git a/examples/12-inductive-data-types/output/typescript/src/arithmetic.ts b/examples/13-inductive-data-types/output/typescript/src/arithmetic.ts index 486ac66..486ac66 100644 --- a/examples/12-inductive-data-types/output/typescript/src/arithmetic.ts +++ b/examples/13-inductive-data-types/output/typescript/src/arithmetic.ts diff --git a/examples/12-inductive-data-types/output/typescript/src/index.ts b/examples/13-inductive-data-types/output/typescript/src/index.ts index 8395fea..8395fea 100644 --- a/examples/12-inductive-data-types/output/typescript/src/index.ts +++ b/examples/13-inductive-data-types/output/typescript/src/index.ts diff --git a/examples/14-struct-generic/output/typescript/tsconfig.json b/examples/13-inductive-data-types/output/typescript/tsconfig.json index 3c7cb2a..3c7cb2a 120000 --- a/examples/14-struct-generic/output/typescript/tsconfig.json +++ b/examples/13-inductive-data-types/output/typescript/tsconfig.json diff --git a/examples/12-inductive-data-types/src/arithmetic.hob b/examples/13-inductive-data-types/src/arithmetic.hob index d3b2051..d3b2051 100644 --- a/examples/12-inductive-data-types/src/arithmetic.hob +++ b/examples/13-inductive-data-types/src/arithmetic.hob diff --git a/examples/13-inductive-data-types-separate-namespaces/hobgoblin.json5 b/examples/14-inductive-data-types-separate-namespaces/hobgoblin.json5 index 12713d4..12713d4 100644 --- a/examples/13-inductive-data-types-separate-namespaces/hobgoblin.json5 +++ b/examples/14-inductive-data-types-separate-namespaces/hobgoblin.json5 diff --git a/examples/14-struct-generic/output/java/.gitignore b/examples/14-inductive-data-types-separate-namespaces/output/java/.gitignore index ff511d4..ff511d4 100644 --- a/examples/14-struct-generic/output/java/.gitignore +++ b/examples/14-inductive-data-types-separate-namespaces/output/java/.gitignore diff --git a/examples/14-struct-generic/output/java/pom.xml b/examples/14-inductive-data-types-separate-namespaces/output/java/pom.xml index 445fa65..445fa65 120000 --- a/examples/14-struct-generic/output/java/pom.xml +++ b/examples/14-inductive-data-types-separate-namespaces/output/java/pom.xml diff --git a/examples/13-inductive-data-types-separate-namespaces/output/java/src/test/java/org/zwobble/example/DataTests.java b/examples/14-inductive-data-types-separate-namespaces/output/java/src/test/java/org/zwobble/example/DataTests.java index f01bf0a..f01bf0a 100644 --- a/examples/13-inductive-data-types-separate-namespaces/output/java/src/test/java/org/zwobble/example/DataTests.java +++ b/examples/14-inductive-data-types-separate-namespaces/output/java/src/test/java/org/zwobble/example/DataTests.java diff --git a/examples/14-struct-generic/output/rust/.gitignore b/examples/14-inductive-data-types-separate-namespaces/output/rust/.gitignore index ea8c4bf..ea8c4bf 100644 --- a/examples/14-struct-generic/output/rust/.gitignore +++ b/examples/14-inductive-data-types-separate-namespaces/output/rust/.gitignore diff --git a/examples/14-struct-generic/output/rust/Cargo.lock b/examples/14-inductive-data-types-separate-namespaces/output/rust/Cargo.lock index 9dc6e3e..9dc6e3e 100644 --- a/examples/14-struct-generic/output/rust/Cargo.lock +++ b/examples/14-inductive-data-types-separate-namespaces/output/rust/Cargo.lock diff --git a/examples/14-struct-generic/output/rust/Cargo.toml b/examples/14-inductive-data-types-separate-namespaces/output/rust/Cargo.toml index 5d4c622..5d4c622 100644 --- a/examples/14-struct-generic/output/rust/Cargo.toml +++ b/examples/14-inductive-data-types-separate-namespaces/output/rust/Cargo.toml diff --git a/examples/14-struct-generic/output/rust/rust-toolchain.toml b/examples/14-inductive-data-types-separate-namespaces/output/rust/rust-toolchain.toml index 4fedb95..4fedb95 100644 --- a/examples/14-struct-generic/output/rust/rust-toolchain.toml +++ b/examples/14-inductive-data-types-separate-namespaces/output/rust/rust-toolchain.toml diff --git a/examples/13-inductive-data-types-separate-namespaces/output/rust/src/data/a.rs b/examples/14-inductive-data-types-separate-namespaces/output/rust/src/data/a.rs index 3796251..3796251 100644 --- a/examples/13-inductive-data-types-separate-namespaces/output/rust/src/data/a.rs +++ b/examples/14-inductive-data-types-separate-namespaces/output/rust/src/data/a.rs diff --git a/examples/13-inductive-data-types-separate-namespaces/output/rust/src/data/b.rs b/examples/14-inductive-data-types-separate-namespaces/output/rust/src/data/b.rs index 1968eb3..1968eb3 100644 --- a/examples/13-inductive-data-types-separate-namespaces/output/rust/src/data/b.rs +++ b/examples/14-inductive-data-types-separate-namespaces/output/rust/src/data/b.rs diff --git a/examples/13-inductive-data-types-separate-namespaces/output/rust/src/data/mod.rs b/examples/14-inductive-data-types-separate-namespaces/output/rust/src/data/mod.rs index 677af14..677af14 100644 --- a/examples/13-inductive-data-types-separate-namespaces/output/rust/src/data/mod.rs +++ b/examples/14-inductive-data-types-separate-namespaces/output/rust/src/data/mod.rs diff --git a/examples/13-inductive-data-types-separate-namespaces/output/rust/src/lib.rs b/examples/14-inductive-data-types-separate-namespaces/output/rust/src/lib.rs index 01aaddf..01aaddf 100644 --- a/examples/13-inductive-data-types-separate-namespaces/output/rust/src/lib.rs +++ b/examples/14-inductive-data-types-separate-namespaces/output/rust/src/lib.rs diff --git a/examples/13-inductive-data-types-separate-namespaces/src/data/a.hob b/examples/14-inductive-data-types-separate-namespaces/src/data/a.hob index e8c02ea..e8c02ea 100644 --- a/examples/13-inductive-data-types-separate-namespaces/src/data/a.hob +++ b/examples/14-inductive-data-types-separate-namespaces/src/data/a.hob diff --git a/examples/13-inductive-data-types-separate-namespaces/src/data/b.hob b/examples/14-inductive-data-types-separate-namespaces/src/data/b.hob index 4d538fc..4d538fc 100644 --- a/examples/13-inductive-data-types-separate-namespaces/src/data/b.hob +++ b/examples/14-inductive-data-types-separate-namespaces/src/data/b.hob diff --git a/examples/14-struct-generic/hobgoblin.json5 b/examples/15-struct-generic/hobgoblin.json5 index c7dc903..c7dc903 100644 --- a/examples/14-struct-generic/hobgoblin.json5 +++ b/examples/15-struct-generic/hobgoblin.json5 diff --git a/examples/15-native-type-generic/output/java/.gitignore b/examples/15-struct-generic/output/java/.gitignore index ff511d4..ff511d4 100644 --- a/examples/15-native-type-generic/output/java/.gitignore +++ b/examples/15-struct-generic/output/java/.gitignore diff --git a/examples/15-native-type-generic/output/java/pom.xml b/examples/15-struct-generic/output/java/pom.xml index 445fa65..445fa65 120000 --- a/examples/15-native-type-generic/output/java/pom.xml +++ b/examples/15-struct-generic/output/java/pom.xml diff --git a/examples/14-struct-generic/output/java/src/test/java/org/zwobble/example/PointTests.java b/examples/15-struct-generic/output/java/src/test/java/org/zwobble/example/PointTests.java index fba31c7..fba31c7 100644 --- a/examples/14-struct-generic/output/java/src/test/java/org/zwobble/example/PointTests.java +++ b/examples/15-struct-generic/output/java/src/test/java/org/zwobble/example/PointTests.java diff --git a/examples/15-native-type-generic/output/rust/.gitignore b/examples/15-struct-generic/output/rust/.gitignore index ea8c4bf..ea8c4bf 100644 --- a/examples/15-native-type-generic/output/rust/.gitignore +++ b/examples/15-struct-generic/output/rust/.gitignore diff --git a/examples/15-native-type-generic/output/rust/Cargo.lock b/examples/15-struct-generic/output/rust/Cargo.lock index 9dc6e3e..9dc6e3e 100644 --- a/examples/15-native-type-generic/output/rust/Cargo.lock +++ b/examples/15-struct-generic/output/rust/Cargo.lock diff --git a/examples/15-native-type-generic/output/rust/Cargo.toml b/examples/15-struct-generic/output/rust/Cargo.toml index 5d4c622..5d4c622 100644 --- a/examples/15-native-type-generic/output/rust/Cargo.toml +++ b/examples/15-struct-generic/output/rust/Cargo.toml diff --git a/examples/15-native-type-generic/output/rust/rust-toolchain.toml b/examples/15-struct-generic/output/rust/rust-toolchain.toml index 4fedb95..4fedb95 100644 --- a/examples/15-native-type-generic/output/rust/rust-toolchain.toml +++ b/examples/15-struct-generic/output/rust/rust-toolchain.toml diff --git a/examples/14-struct-generic/output/rust/src/lib.rs b/examples/15-struct-generic/output/rust/src/lib.rs index 75ae1f1..75ae1f1 100644 --- a/examples/14-struct-generic/output/rust/src/lib.rs +++ b/examples/15-struct-generic/output/rust/src/lib.rs diff --git a/examples/14-struct-generic/output/rust/src/point.rs b/examples/15-struct-generic/output/rust/src/point.rs index a6c6615..a6c6615 100644 --- a/examples/14-struct-generic/output/rust/src/point.rs +++ b/examples/15-struct-generic/output/rust/src/point.rs diff --git a/examples/15-native-type-generic/output/typescript/.gitignore b/examples/15-struct-generic/output/typescript/.gitignore index 07e6e47..07e6e47 100644 --- a/examples/15-native-type-generic/output/typescript/.gitignore +++ b/examples/15-struct-generic/output/typescript/.gitignore diff --git a/examples/15-native-type-generic/output/typescript/package.json b/examples/15-struct-generic/output/typescript/package.json index 0bc7349..0bc7349 120000 --- a/examples/15-native-type-generic/output/typescript/package.json +++ b/examples/15-struct-generic/output/typescript/package.json diff --git a/examples/14-struct-generic/output/typescript/pnpm-lock.yaml b/examples/15-struct-generic/output/typescript/pnpm-lock.yaml index 016d629..016d629 100644 --- a/examples/14-struct-generic/output/typescript/pnpm-lock.yaml +++ b/examples/15-struct-generic/output/typescript/pnpm-lock.yaml diff --git a/examples/14-struct-generic/output/typescript/src/point.test.ts b/examples/15-struct-generic/output/typescript/src/point.test.ts index 0d59417..0d59417 100644 --- a/examples/14-struct-generic/output/typescript/src/point.test.ts +++ b/examples/15-struct-generic/output/typescript/src/point.test.ts diff --git a/examples/14-struct-generic/output/typescript/src/point.ts b/examples/15-struct-generic/output/typescript/src/point.ts index f3ecdec..f3ecdec 100644 --- a/examples/14-struct-generic/output/typescript/src/point.ts +++ b/examples/15-struct-generic/output/typescript/src/point.ts diff --git a/examples/15-native-type-generic/output/typescript/tsconfig.json b/examples/15-struct-generic/output/typescript/tsconfig.json index 3c7cb2a..3c7cb2a 120000 --- a/examples/15-native-type-generic/output/typescript/tsconfig.json +++ b/examples/15-struct-generic/output/typescript/tsconfig.json diff --git a/examples/14-struct-generic/src/point.hob b/examples/15-struct-generic/src/point.hob index 5beed86..5beed86 100644 --- a/examples/14-struct-generic/src/point.hob +++ b/examples/15-struct-generic/src/point.hob diff --git a/examples/15-native-type-generic/hobgoblin.json5 b/examples/16-native-type-generic/hobgoblin.json5 index 20c767f..20c767f 100644 --- a/examples/15-native-type-generic/hobgoblin.json5 +++ b/examples/16-native-type-generic/hobgoblin.json5 diff --git a/examples/16-native-type-generic/output/java/.gitignore b/examples/16-native-type-generic/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/16-native-type-generic/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/16-transient-0/output/java/pom.xml b/examples/16-native-type-generic/output/java/pom.xml index 445fa65..445fa65 120000 --- a/examples/16-transient-0/output/java/pom.xml +++ b/examples/16-native-type-generic/output/java/pom.xml diff --git a/examples/15-native-type-generic/output/java/src/main/java/org/zwobble/example/types/map/HobgoblinNativeMap.java b/examples/16-native-type-generic/output/java/src/main/java/org/zwobble/example/types/map/HobgoblinNativeMap.java index 39fd627..39fd627 100644 --- a/examples/15-native-type-generic/output/java/src/main/java/org/zwobble/example/types/map/HobgoblinNativeMap.java +++ b/examples/16-native-type-generic/output/java/src/main/java/org/zwobble/example/types/map/HobgoblinNativeMap.java diff --git a/examples/15-native-type-generic/output/java/src/test/java/org/zwobble/example/MapTests.java b/examples/16-native-type-generic/output/java/src/test/java/org/zwobble/example/MapTests.java index 5b6a764..5b6a764 100644 --- a/examples/15-native-type-generic/output/java/src/test/java/org/zwobble/example/MapTests.java +++ b/examples/16-native-type-generic/output/java/src/test/java/org/zwobble/example/MapTests.java diff --git a/examples/16-native-type-generic/output/rust/.gitignore b/examples/16-native-type-generic/output/rust/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/examples/16-native-type-generic/output/rust/.gitignore @@ -0,0 +1 @@ +/target diff --git a/examples/16-transient-0/output/rust/Cargo.lock b/examples/16-native-type-generic/output/rust/Cargo.lock index 9dc6e3e..9dc6e3e 100644 --- a/examples/16-transient-0/output/rust/Cargo.lock +++ b/examples/16-native-type-generic/output/rust/Cargo.lock diff --git a/examples/16-transient-0/output/rust/Cargo.toml b/examples/16-native-type-generic/output/rust/Cargo.toml index 5d4c622..5d4c622 100644 --- a/examples/16-transient-0/output/rust/Cargo.toml +++ b/examples/16-native-type-generic/output/rust/Cargo.toml diff --git a/examples/16-transient-0/output/rust/rust-toolchain.toml b/examples/16-native-type-generic/output/rust/rust-toolchain.toml index 4fedb95..4fedb95 100644 --- a/examples/16-transient-0/output/rust/rust-toolchain.toml +++ b/examples/16-native-type-generic/output/rust/rust-toolchain.toml diff --git a/examples/15-native-type-generic/output/rust/src/gen/map.rs b/examples/16-native-type-generic/output/rust/src/gen/map.rs index 59fb30f..59fb30f 100644 --- a/examples/15-native-type-generic/output/rust/src/gen/map.rs +++ b/examples/16-native-type-generic/output/rust/src/gen/map.rs diff --git a/examples/15-native-type-generic/output/rust/src/lib.rs b/examples/16-native-type-generic/output/rust/src/lib.rs index b0adf47..b0adf47 100644 --- a/examples/15-native-type-generic/output/rust/src/lib.rs +++ b/examples/16-native-type-generic/output/rust/src/lib.rs diff --git a/examples/15-native-type-generic/output/rust/src/map.rs b/examples/16-native-type-generic/output/rust/src/map.rs index 3dd0a72..3dd0a72 100644 --- a/examples/15-native-type-generic/output/rust/src/map.rs +++ b/examples/16-native-type-generic/output/rust/src/map.rs diff --git a/examples/16-native-type-generic/output/typescript/.gitignore b/examples/16-native-type-generic/output/typescript/.gitignore new file mode 100644 index 0000000..07e6e47 --- /dev/null +++ b/examples/16-native-type-generic/output/typescript/.gitignore @@ -0,0 +1 @@ +/node_modules diff --git a/examples/16-native-type-generic/output/typescript/package.json b/examples/16-native-type-generic/output/typescript/package.json new file mode 120000 index 0000000..0bc7349 --- /dev/null +++ b/examples/16-native-type-generic/output/typescript/package.json @@ -0,0 +1 @@ +../../../templates/typescript/package.json
\ No newline at end of file diff --git a/examples/15-native-type-generic/output/typescript/pnpm-lock.yaml b/examples/16-native-type-generic/output/typescript/pnpm-lock.yaml index 016d629..016d629 100644 --- a/examples/15-native-type-generic/output/typescript/pnpm-lock.yaml +++ b/examples/16-native-type-generic/output/typescript/pnpm-lock.yaml diff --git a/examples/15-native-type-generic/output/typescript/src/map.test.ts b/examples/16-native-type-generic/output/typescript/src/map.test.ts index a442c2c..a442c2c 100644 --- a/examples/15-native-type-generic/output/typescript/src/map.test.ts +++ b/examples/16-native-type-generic/output/typescript/src/map.test.ts diff --git a/examples/15-native-type-generic/output/typescript/src/map.ts b/examples/16-native-type-generic/output/typescript/src/map.ts index 394ad92..394ad92 100644 --- a/examples/15-native-type-generic/output/typescript/src/map.ts +++ b/examples/16-native-type-generic/output/typescript/src/map.ts diff --git a/examples/16-native-type-generic/output/typescript/tsconfig.json b/examples/16-native-type-generic/output/typescript/tsconfig.json new file mode 120000 index 0000000..3c7cb2a --- /dev/null +++ b/examples/16-native-type-generic/output/typescript/tsconfig.json @@ -0,0 +1 @@ +../../../templates/typescript/tsconfig.json
\ No newline at end of file diff --git a/examples/15-native-type-generic/src/map.hob b/examples/16-native-type-generic/src/map.hob index 0118889..0118889 100644 --- a/examples/15-native-type-generic/src/map.hob +++ b/examples/16-native-type-generic/src/map.hob diff --git a/examples/16-transient-0/hobgoblin.json5 b/examples/17-transient-0/hobgoblin.json5 index e632b0a..e632b0a 100644 --- a/examples/16-transient-0/hobgoblin.json5 +++ b/examples/17-transient-0/hobgoblin.json5 diff --git a/examples/16-transient-0/output/java/.gitignore b/examples/17-transient-0/output/java/.gitignore index 2fcf0b8..2fcf0b8 100644 --- a/examples/16-transient-0/output/java/.gitignore +++ b/examples/17-transient-0/output/java/.gitignore diff --git a/examples/17-transient-0/output/java/pom.xml b/examples/17-transient-0/output/java/pom.xml new file mode 120000 index 0000000..445fa65 --- /dev/null +++ b/examples/17-transient-0/output/java/pom.xml @@ -0,0 +1 @@ +../../../templates/java-junit/pom.xml
\ No newline at end of file diff --git a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/data/GenericNative.java b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/data/GenericNative.java index cfd16d5..cfd16d5 100644 --- a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/data/GenericNative.java +++ b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/data/GenericNative.java diff --git a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/data/HobgoblinNativeData.java b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/data/HobgoblinNativeData.java index cc26b7b..cc26b7b 100644 --- a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/data/HobgoblinNativeData.java +++ b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/data/HobgoblinNativeData.java diff --git a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/data/Native.java b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/data/Native.java index 366dd74..366dd74 100644 --- a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/data/Native.java +++ b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/data/Native.java diff --git a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/data/transient0/HobgoblinTransient0Data.java b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/data/transient0/HobgoblinTransient0Data.java index f8799b7..f8799b7 100644 --- a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/data/transient0/HobgoblinTransient0Data.java +++ b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/data/transient0/HobgoblinTransient0Data.java diff --git a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Decoder.java b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Decoder.java index ad1a6d0..ad1a6d0 100644 --- a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Decoder.java +++ b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Decoder.java diff --git a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Encoder.java b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Encoder.java index 2ba43a6..2ba43a6 100644 --- a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Encoder.java +++ b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Encoder.java diff --git a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/HobgoblinTransient0Builtins.java b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/HobgoblinTransient0Builtins.java index 861d7bb..861d7bb 100644 --- a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/HobgoblinTransient0Builtins.java +++ b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/HobgoblinTransient0Builtins.java diff --git a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/HobgoblinTransient0TaggedSharedValue.java b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/HobgoblinTransient0TaggedSharedValue.java index 6c5b520..6c5b520 100644 --- a/examples/16-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/HobgoblinTransient0TaggedSharedValue.java +++ b/examples/17-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/HobgoblinTransient0TaggedSharedValue.java diff --git a/examples/16-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java b/examples/17-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java index 1a1d659..1a1d659 100644 --- a/examples/16-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java +++ b/examples/17-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java diff --git a/examples/16-transient-0/output/rust/.gitignore b/examples/17-transient-0/output/rust/.gitignore index fc03479..fc03479 100644 --- a/examples/16-transient-0/output/rust/.gitignore +++ b/examples/17-transient-0/output/rust/.gitignore diff --git a/examples/17-transient-0/output/rust/Cargo.lock b/examples/17-transient-0/output/rust/Cargo.lock new file mode 100644 index 0000000..9dc6e3e --- /dev/null +++ b/examples/17-transient-0/output/rust/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "example" +version = "0.1.0" diff --git a/examples/17-transient-0/output/rust/Cargo.toml b/examples/17-transient-0/output/rust/Cargo.toml new file mode 100644 index 0000000..5d4c622 --- /dev/null +++ b/examples/17-transient-0/output/rust/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "example" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/examples/17-transient-0/output/rust/rust-toolchain.toml b/examples/17-transient-0/output/rust/rust-toolchain.toml new file mode 100644 index 0000000..4fedb95 --- /dev/null +++ b/examples/17-transient-0/output/rust/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.96" diff --git a/examples/16-transient-0/output/rust/src/data.rs b/examples/17-transient-0/output/rust/src/data.rs index 2b890c2..2b890c2 100644 --- a/examples/16-transient-0/output/rust/src/data.rs +++ b/examples/17-transient-0/output/rust/src/data.rs diff --git a/examples/16-transient-0/output/rust/src/gen/data.rs b/examples/17-transient-0/output/rust/src/gen/data.rs index 2b344e4..2b344e4 100644 --- a/examples/16-transient-0/output/rust/src/gen/data.rs +++ b/examples/17-transient-0/output/rust/src/gen/data.rs diff --git a/examples/16-transient-0/output/rust/src/gen/data/transient_0.rs b/examples/17-transient-0/output/rust/src/gen/data/transient_0.rs index 3c40ea2..3c40ea2 100644 --- a/examples/16-transient-0/output/rust/src/gen/data/transient_0.rs +++ b/examples/17-transient-0/output/rust/src/gen/data/transient_0.rs diff --git a/examples/16-transient-0/output/rust/src/gen/transient_0.rs b/examples/17-transient-0/output/rust/src/gen/transient_0.rs index 1b1b659..1b1b659 100644 --- a/examples/16-transient-0/output/rust/src/gen/transient_0.rs +++ b/examples/17-transient-0/output/rust/src/gen/transient_0.rs diff --git a/examples/16-transient-0/output/rust/src/lib.rs b/examples/17-transient-0/output/rust/src/lib.rs index ea26e60..ea26e60 100644 --- a/examples/16-transient-0/output/rust/src/lib.rs +++ b/examples/17-transient-0/output/rust/src/lib.rs diff --git a/examples/16-transient-0/output/rust/src/transient_0.rs b/examples/17-transient-0/output/rust/src/transient_0.rs index 8b2b800..8b2b800 100644 --- a/examples/16-transient-0/output/rust/src/transient_0.rs +++ b/examples/17-transient-0/output/rust/src/transient_0.rs diff --git a/examples/16-transient-0/src/data.hob b/examples/17-transient-0/src/data.hob index 25fb1be..25fb1be 100644 --- a/examples/16-transient-0/src/data.hob +++ b/examples/17-transient-0/src/data.hob diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescript/TypescriptGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescript/TypescriptGenerator.java index 25435c5..44bad46 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescript/TypescriptGenerator.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescript/TypescriptGenerator.java @@ -1,6 +1,7 @@ package org.zwobble.hobgoblin.compiler.output.generators.typescript; import org.zwobble.hobgoblin.compiler.builtins.NativeTypes; +import org.zwobble.hobgoblin.compiler.output.lang.typescript.TypescriptTypes; import org.zwobble.hobgoblin.compiler.output.lang.typescript.TypescriptWriter; import org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.*; import org.zwobble.hobgoblin.compiler.typechecker.TypesInfo; @@ -11,6 +12,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Path; import java.util.LinkedHashSet; +import java.util.List; import java.util.SequencedSet; import java.util.stream.Collectors; @@ -81,6 +83,15 @@ public class TypescriptGenerator { public TypescriptExpression generateTypeExpression(Type value, Context context) { return switch (collapseType(value)) { case ConstructedType constructedType -> { + if (constructedType.constructor().equals(NativeTypes.OPTION)) { + // TODO: How to deal with nested options? Forbid them in + // hobgoblin? + yield new TypescriptTypeUnion(List.of( + generateTypeExpression(constructedType.args().getFirst(), context), + TypescriptTypes.NULL + )); + } + yield new TypescriptConstructedType( generateTypeExpression(constructedType.constructor().genericType(), context), constructedType.args().stream() diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptTypes.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptTypes.java index 22f24a3..e6fa609 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptTypes.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptTypes.java @@ -1,5 +1,6 @@ package org.zwobble.hobgoblin.compiler.output.lang.typescript; +import org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptExpression; import org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptIdentifier; import org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptRef; @@ -7,6 +8,7 @@ public class TypescriptTypes { private TypescriptTypes() { } + public static final TypescriptExpression NULL = new TypescriptRef(TypescriptIdentifier.of("null")); public static final TypescriptRef NUMBER = new TypescriptRef(TypescriptIdentifier.of("number")); public static final TypescriptRef READONLY_ARRAY = new TypescriptRef(TypescriptIdentifier.of("ReadonlyArray")); public static final TypescriptRef SYMBOL = new TypescriptRef(TypescriptIdentifier.of("Symbol")); |
