diff --git a/examples/simple/ts/index.ts b/examples/simple/ts/index.ts index e69de29..d592f0e 100644 --- a/examples/simple/ts/index.ts +++ b/examples/simple/ts/index.ts @@ -0,0 +1,20 @@ + + + + + +/** + * @kittenipc:api + */ +class IpcApi { + Mul(a: number, b: number): number { + return a * b; + } +} + + +function main() { + +} + +main() diff --git a/kitcom/go.mod b/kitcom/go.mod index a7a7eb7..118c7cf 100644 --- a/kitcom/go.mod +++ b/kitcom/go.mod @@ -4,6 +4,7 @@ go 1.25.1 require ( github.com/go-json-experiment/json v0.0.0-20250910080747-cc2cfa0554c3 // indirect + github.com/yuin/goldmark v1.7.13 // indirect golang.org/x/sync v0.17.0 // indirect golang.org/x/sys v0.37.0 // indirect golang.org/x/text v0.29.0 // indirect diff --git a/kitcom/go.sum b/kitcom/go.sum index 79bacf7..b711f79 100644 --- a/kitcom/go.sum +++ b/kitcom/go.sum @@ -6,6 +6,8 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/microsoft/typescript-go v0.0.0-20251013215234-fd15f297d473 h1:LdsGx1nLOzsu2a1QORtbhZLaAlrQTbMKq3MlpuU3cCQ= github.com/microsoft/typescript-go v0.0.0-20251013215234-fd15f297d473/go.mod h1:/yWoZzcFKn2eQjB4E+kfEhQ/iGVrFKYswH1ZW+jWZu8= +github.com/yuin/goldmark v1.7.13 h1:GPddIs617DnBLFFVJFgpo1aBfe/4xcvMc3SB5t/D0pA= +github.com/yuin/goldmark v1.7.13/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= diff --git a/kitcom/main.go b/kitcom/main.go index cba3344..5a01311 100644 --- a/kitcom/main.go +++ b/kitcom/main.go @@ -6,6 +6,7 @@ import ( "log" "os" "path" + "path/filepath" ) type ProgLang string @@ -45,16 +46,25 @@ func main() { log.Panic("source and destination must be set") } - if err := checkIsFile(Src); err != nil { - log.Panic(err) - } - - apiParser, err := apiParserByExt(Src) + srcAbs, err := filepath.Abs(Src) if err != nil { log.Panic(err) } - _, err = apiParser.Parse(Src) + //Dest, err = filepath.Abs(Dest) + //if err != nil { + //} + + if err := checkIsFile(srcAbs); err != nil { + log.Panic(err) + } + + apiParser, err := apiParserByExt(srcAbs) + if err != nil { + log.Panic(err) + } + + _, err = apiParser.Parse(srcAbs) if err != nil { log.Panic(err) } diff --git a/kitcom/tsparser.go b/kitcom/tsparser.go index ee6d512..0d62fe7 100644 --- a/kitcom/tsparser.go +++ b/kitcom/tsparser.go @@ -1,7 +1,27 @@ package main +import ( + "fmt" + + "efprojects.com/kitten-ipc/kitcom/internal/tsgo/ast" + "efprojects.com/kitten-ipc/kitcom/internal/tsgo/core" + "efprojects.com/kitten-ipc/kitcom/internal/tsgo/parser" +) + type TypescriptApiParser struct { } -func (t *TypescriptApiParser) Parse(sourceFile string) (Api, error) { +func (t *TypescriptApiParser) Parse(sourceFilePath string) (Api, error) { + sourceFile := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: sourceFilePath, + Path: "", + CompilerOptions: core.SourceFileAffectingCompilerOptions{}, + ExternalModuleIndicatorOptions: ast.ExternalModuleIndicatorOptions{}, + JSDocParsingMode: ast.JSDocParsingModeParseAll, + }, "", core.ScriptKindTS) + _ = sourceFile + + fmt.Println("kek") + + return Api{}, nil }