|
6 | 6 | [aidbox-sdk.converter :as converter]
|
7 | 7 | [aidbox-sdk.generator :as generator]
|
8 | 8 | [aidbox-sdk.generator.dotnet :as dotnet]
|
| 9 | + [aidbox-sdk.generator.python :as python] |
9 | 10 | [aidbox-sdk.schema :as importer]
|
10 | 11 | [clojure.java.io :as io]))
|
11 | 12 |
|
|
16 | 17 | ;; I/O Helpers
|
17 | 18 | ;;
|
18 | 19 |
|
19 |
| -(defn create-directory! [dir] |
| 20 | +(defn create-directory! [^java.io.File dir] |
20 | 21 | (when-not (.mkdir dir)
|
21 | 22 | (throw (Exception. (str "Can't create directory: " dir)))))
|
22 | 23 |
|
|
42 | 43 |
|
43 | 44 | ;;
|
44 | 45 | ;;
|
45 |
| -;; |
46 | 46 |
|
47 | 47 | (defn lang->generator [lang]
|
48 | 48 | (case lang
|
49 | 49 | :dotnet dotnet/generator
|
50 |
| - #_#_#_#_#_#_:python python/generator |
51 |
| - :typescript typescript/generator |
| 50 | + :python python/generator |
| 51 | + #_#_#_#_:typescript typescript/generator |
52 | 52 | :java java/generator))
|
53 | 53 |
|
54 | 54 | (defn generate! [target-language input options]
|
|
60 | 60 | datatype? (every-pred fhir/fhir-schema? fhir/base-schema? fhir/datatype?)
|
61 | 61 | domain-resource? (every-pred fhir/fhir-schema? fhir/base-schema? fhir/domain-resource?)
|
62 | 62 | constraint? (every-pred fhir/fhir-schema? fhir/constraint? (complement fhir/extension?))
|
| 63 | + search-param? (every-pred fhir/search-parameter? (complement fhir/search-parameter-from-extension?)) |
63 | 64 |
|
64 | 65 | fhir-schemas (filter fhir/fhir-schema? all-schemas)
|
65 | 66 | datatype-schemas (filter datatype? all-schemas)
|
66 | 67 | resource-schemas (filter domain-resource? all-schemas)
|
67 | 68 | constraint-schemas (filter constraint? all-schemas)
|
68 |
| - search-param-schemas (filter fhir/search-parameter? all-schemas) |
| 69 | + search-param-schemas (filter search-param? all-schemas) |
| 70 | + |
| 71 | + ir-schemas (converter/convert fhir-schemas) |
| 72 | + datatype-ir-schemas (converter/convert datatype-schemas) |
| 73 | + resource-ir-schemas (converter/convert resource-schemas) |
| 74 | + search-param-ir-schemas (converter/convert-search-params search-param-schemas |
| 75 | + fhir-schemas) |
69 | 76 |
|
70 |
| - ir-schemas (converter/convert fhir-schemas) |
71 |
| - datatype-ir-schemas (converter/convert datatype-schemas) |
72 |
| - resource-ir-schemas (converter/convert resource-schemas) |
73 |
| - generator' (lang->generator target-language) |
| 77 | + generator' (lang->generator target-language) |
74 | 78 |
|
75 | 79 | generate-resource-module #(generator/generate-resource-module generator' %)]
|
76 | 80 |
|
|
90 | 94 | (save-files! (generator/generate-constraints generator' constraint-schemas ir-schemas))
|
91 | 95 |
|
92 | 96 | (println "Generating search parameters")
|
93 |
| - (save-files! (generator/generate-search-params generator' search-param-schemas fhir-schemas)) |
| 97 | + (save-files! (generator/generate-search-params generator' search-param-ir-schemas)) |
94 | 98 |
|
95 | 99 | (println "Generating common SDK files")
|
96 | 100 | (save-files! (generator/generate-sdk-files generator'))
|
|
102 | 106 |
|
103 | 107 | (defn -main [& args]
|
104 | 108 | (cli/app system args))
|
| 109 | + |
| 110 | +(comment |
| 111 | + (require 'aidbox-sdk.generator.dotnet.templates) |
| 112 | + |
| 113 | + (map #(update % :path io/file) aidbox-sdk.generator.dotnet.templates/files) |
| 114 | + |
| 115 | + (save-files! (io/file "/tmp/dotnet") (map #(update % :path io/file) aidbox-sdk.generator.dotnet.templates/files))) |
0 commit comments