grafeo-ogm 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1121 -0
- package/dist/cjs/compilers/fulltext.compiler.d.ts +67 -0
- package/dist/cjs/compilers/fulltext.compiler.d.ts.map +1 -0
- package/dist/cjs/compilers/fulltext.compiler.js +254 -0
- package/dist/cjs/compilers/fulltext.compiler.js.map +1 -0
- package/dist/cjs/compilers/mutation.compiler.d.ts +126 -0
- package/dist/cjs/compilers/mutation.compiler.d.ts.map +1 -0
- package/dist/cjs/compilers/mutation.compiler.js +1239 -0
- package/dist/cjs/compilers/mutation.compiler.js.map +1 -0
- package/dist/cjs/compilers/select-normalizer.d.ts +50 -0
- package/dist/cjs/compilers/select-normalizer.d.ts.map +1 -0
- package/dist/cjs/compilers/select-normalizer.js +225 -0
- package/dist/cjs/compilers/select-normalizer.js.map +1 -0
- package/dist/cjs/compilers/selection.compiler.d.ts +113 -0
- package/dist/cjs/compilers/selection.compiler.d.ts.map +1 -0
- package/dist/cjs/compilers/selection.compiler.js +410 -0
- package/dist/cjs/compilers/selection.compiler.js.map +1 -0
- package/dist/cjs/compilers/where.compiler.d.ts +39 -0
- package/dist/cjs/compilers/where.compiler.d.ts.map +1 -0
- package/dist/cjs/compilers/where.compiler.js +456 -0
- package/dist/cjs/compilers/where.compiler.js.map +1 -0
- package/dist/cjs/errors.d.ts +28 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +42 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/execution/executor.d.ts +38 -0
- package/dist/cjs/execution/executor.d.ts.map +1 -0
- package/dist/cjs/execution/executor.js +50 -0
- package/dist/cjs/execution/executor.js.map +1 -0
- package/dist/cjs/execution/result-mapper.d.ts +26 -0
- package/dist/cjs/execution/result-mapper.d.ts.map +1 -0
- package/dist/cjs/execution/result-mapper.js +92 -0
- package/dist/cjs/execution/result-mapper.js.map +1 -0
- package/dist/cjs/generator/generate-types.d.ts +55 -0
- package/dist/cjs/generator/generate-types.d.ts.map +1 -0
- package/dist/cjs/generator/generate-types.js +181 -0
- package/dist/cjs/generator/generate-types.js.map +1 -0
- package/dist/cjs/generator/index.d.ts +3 -0
- package/dist/cjs/generator/index.d.ts.map +1 -0
- package/dist/cjs/generator/index.js +6 -0
- package/dist/cjs/generator/index.js.map +1 -0
- package/dist/cjs/generator/type-emitters/aggregation-emitter.d.ts +7 -0
- package/dist/cjs/generator/type-emitters/aggregation-emitter.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/aggregation-emitter.js +196 -0
- package/dist/cjs/generator/type-emitters/aggregation-emitter.js.map +1 -0
- package/dist/cjs/generator/type-emitters/connection-emitter.d.ts +22 -0
- package/dist/cjs/generator/type-emitters/connection-emitter.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/connection-emitter.js +270 -0
- package/dist/cjs/generator/type-emitters/connection-emitter.js.map +1 -0
- package/dist/cjs/generator/type-emitters/enum-emitter.d.ts +7 -0
- package/dist/cjs/generator/type-emitters/enum-emitter.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/enum-emitter.js +45 -0
- package/dist/cjs/generator/type-emitters/enum-emitter.js.map +1 -0
- package/dist/cjs/generator/type-emitters/fulltext-emitter.d.ts +15 -0
- package/dist/cjs/generator/type-emitters/fulltext-emitter.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/fulltext-emitter.js +80 -0
- package/dist/cjs/generator/type-emitters/fulltext-emitter.js.map +1 -0
- package/dist/cjs/generator/type-emitters/helpers.d.ts +32 -0
- package/dist/cjs/generator/type-emitters/helpers.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/helpers.js +69 -0
- package/dist/cjs/generator/type-emitters/helpers.js.map +1 -0
- package/dist/cjs/generator/type-emitters/input-emitter.d.ts +6 -0
- package/dist/cjs/generator/type-emitters/input-emitter.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/input-emitter.js +560 -0
- package/dist/cjs/generator/type-emitters/input-emitter.js.map +1 -0
- package/dist/cjs/generator/type-emitters/interface-emitter.d.ts +10 -0
- package/dist/cjs/generator/type-emitters/interface-emitter.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/interface-emitter.js +88 -0
- package/dist/cjs/generator/type-emitters/interface-emitter.js.map +1 -0
- package/dist/cjs/generator/type-emitters/model-map-emitter.d.ts +32 -0
- package/dist/cjs/generator/type-emitters/model-map-emitter.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/model-map-emitter.js +154 -0
- package/dist/cjs/generator/type-emitters/model-map-emitter.js.map +1 -0
- package/dist/cjs/generator/type-emitters/mutation-response-emitter.d.ts +9 -0
- package/dist/cjs/generator/type-emitters/mutation-response-emitter.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/mutation-response-emitter.js +69 -0
- package/dist/cjs/generator/type-emitters/mutation-response-emitter.js.map +1 -0
- package/dist/cjs/generator/type-emitters/node-type-emitter.d.ts +13 -0
- package/dist/cjs/generator/type-emitters/node-type-emitter.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/node-type-emitter.js +123 -0
- package/dist/cjs/generator/type-emitters/node-type-emitter.js.map +1 -0
- package/dist/cjs/generator/type-emitters/select-fields-emitter.d.ts +8 -0
- package/dist/cjs/generator/type-emitters/select-fields-emitter.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/select-fields-emitter.js +169 -0
- package/dist/cjs/generator/type-emitters/select-fields-emitter.js.map +1 -0
- package/dist/cjs/generator/type-emitters/select-result-emitter.d.ts +9 -0
- package/dist/cjs/generator/type-emitters/select-result-emitter.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/select-result-emitter.js +61 -0
- package/dist/cjs/generator/type-emitters/select-result-emitter.js.map +1 -0
- package/dist/cjs/generator/type-emitters/sort-options-emitter.d.ts +8 -0
- package/dist/cjs/generator/type-emitters/sort-options-emitter.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/sort-options-emitter.js +47 -0
- package/dist/cjs/generator/type-emitters/sort-options-emitter.js.map +1 -0
- package/dist/cjs/generator/type-emitters/utility-types.d.ts +10 -0
- package/dist/cjs/generator/type-emitters/utility-types.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/utility-types.js +93 -0
- package/dist/cjs/generator/type-emitters/utility-types.js.map +1 -0
- package/dist/cjs/generator/type-emitters/where-emitter.d.ts +15 -0
- package/dist/cjs/generator/type-emitters/where-emitter.d.ts.map +1 -0
- package/dist/cjs/generator/type-emitters/where-emitter.js +189 -0
- package/dist/cjs/generator/type-emitters/where-emitter.js.map +1 -0
- package/dist/cjs/index.d.ts +30 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +59 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/interface-model.d.ts +158 -0
- package/dist/cjs/interface-model.d.ts.map +1 -0
- package/dist/cjs/interface-model.js +214 -0
- package/dist/cjs/interface-model.js.map +1 -0
- package/dist/cjs/model.d.ts +354 -0
- package/dist/cjs/model.d.ts.map +1 -0
- package/dist/cjs/model.js +513 -0
- package/dist/cjs/model.js.map +1 -0
- package/dist/cjs/ogm.d.ts +97 -0
- package/dist/cjs/ogm.d.ts.map +1 -0
- package/dist/cjs/ogm.js +224 -0
- package/dist/cjs/ogm.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/schema/parser.d.ts +12 -0
- package/dist/cjs/schema/parser.d.ts.map +1 -0
- package/dist/cjs/schema/parser.js +331 -0
- package/dist/cjs/schema/parser.js.map +1 -0
- package/dist/cjs/schema/types.d.ts +66 -0
- package/dist/cjs/schema/types.d.ts.map +1 -0
- package/dist/cjs/schema/types.js +3 -0
- package/dist/cjs/schema/types.js.map +1 -0
- package/dist/cjs/schema/utils.d.ts +23 -0
- package/dist/cjs/schema/utils.d.ts.map +1 -0
- package/dist/cjs/schema/utils.js +92 -0
- package/dist/cjs/schema/utils.js.map +1 -0
- package/dist/cjs/subgraph/index.d.ts +3 -0
- package/dist/cjs/subgraph/index.d.ts.map +1 -0
- package/dist/cjs/subgraph/index.js +7 -0
- package/dist/cjs/subgraph/index.js.map +1 -0
- package/dist/cjs/subgraph/subgraph-operations.d.ts +34 -0
- package/dist/cjs/subgraph/subgraph-operations.d.ts.map +1 -0
- package/dist/cjs/subgraph/subgraph-operations.js +225 -0
- package/dist/cjs/subgraph/subgraph-operations.js.map +1 -0
- package/dist/cjs/subgraph/types.d.ts +23 -0
- package/dist/cjs/subgraph/types.d.ts.map +1 -0
- package/dist/cjs/subgraph/types.js +3 -0
- package/dist/cjs/subgraph/types.js.map +1 -0
- package/dist/cjs/testing/cypher-assert.d.ts +35 -0
- package/dist/cjs/testing/cypher-assert.d.ts.map +1 -0
- package/dist/cjs/testing/cypher-assert.js +72 -0
- package/dist/cjs/testing/cypher-assert.js.map +1 -0
- package/dist/cjs/testing/index.d.ts +4 -0
- package/dist/cjs/testing/index.d.ts.map +1 -0
- package/dist/cjs/testing/index.js +10 -0
- package/dist/cjs/testing/index.js.map +1 -0
- package/dist/cjs/testing/neo4j-record-factory.d.ts +25 -0
- package/dist/cjs/testing/neo4j-record-factory.d.ts.map +1 -0
- package/dist/cjs/testing/neo4j-record-factory.js +43 -0
- package/dist/cjs/testing/neo4j-record-factory.js.map +1 -0
- package/dist/cjs/testing/selection-set-factory.d.ts +24 -0
- package/dist/cjs/testing/selection-set-factory.d.ts.map +1 -0
- package/dist/cjs/testing/selection-set-factory.js +44 -0
- package/dist/cjs/testing/selection-set-factory.js.map +1 -0
- package/dist/cjs/utils/lucene.d.ts +9 -0
- package/dist/cjs/utils/lucene.d.ts.map +1 -0
- package/dist/cjs/utils/lucene.js +25 -0
- package/dist/cjs/utils/lucene.js.map +1 -0
- package/dist/cjs/utils/validation.d.ts +25 -0
- package/dist/cjs/utils/validation.d.ts.map +1 -0
- package/dist/cjs/utils/validation.js +53 -0
- package/dist/cjs/utils/validation.js.map +1 -0
- package/dist/esm/compilers/fulltext.compiler.d.ts +67 -0
- package/dist/esm/compilers/fulltext.compiler.d.ts.map +1 -0
- package/dist/esm/compilers/fulltext.compiler.js +250 -0
- package/dist/esm/compilers/fulltext.compiler.js.map +1 -0
- package/dist/esm/compilers/mutation.compiler.d.ts +126 -0
- package/dist/esm/compilers/mutation.compiler.d.ts.map +1 -0
- package/dist/esm/compilers/mutation.compiler.js +1235 -0
- package/dist/esm/compilers/mutation.compiler.js.map +1 -0
- package/dist/esm/compilers/select-normalizer.d.ts +50 -0
- package/dist/esm/compilers/select-normalizer.d.ts.map +1 -0
- package/dist/esm/compilers/select-normalizer.js +221 -0
- package/dist/esm/compilers/select-normalizer.js.map +1 -0
- package/dist/esm/compilers/selection.compiler.d.ts +113 -0
- package/dist/esm/compilers/selection.compiler.d.ts.map +1 -0
- package/dist/esm/compilers/selection.compiler.js +406 -0
- package/dist/esm/compilers/selection.compiler.js.map +1 -0
- package/dist/esm/compilers/where.compiler.d.ts +39 -0
- package/dist/esm/compilers/where.compiler.d.ts.map +1 -0
- package/dist/esm/compilers/where.compiler.js +452 -0
- package/dist/esm/compilers/where.compiler.js.map +1 -0
- package/dist/esm/errors.d.ts +28 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +36 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/execution/executor.d.ts +38 -0
- package/dist/esm/execution/executor.d.ts.map +1 -0
- package/dist/esm/execution/executor.js +46 -0
- package/dist/esm/execution/executor.js.map +1 -0
- package/dist/esm/execution/result-mapper.d.ts +26 -0
- package/dist/esm/execution/result-mapper.d.ts.map +1 -0
- package/dist/esm/execution/result-mapper.js +85 -0
- package/dist/esm/execution/result-mapper.js.map +1 -0
- package/dist/esm/generator/generate-types.d.ts +55 -0
- package/dist/esm/generator/generate-types.d.ts.map +1 -0
- package/dist/esm/generator/generate-types.js +141 -0
- package/dist/esm/generator/generate-types.js.map +1 -0
- package/dist/esm/generator/index.d.ts +3 -0
- package/dist/esm/generator/index.d.ts.map +1 -0
- package/dist/esm/generator/index.js +2 -0
- package/dist/esm/generator/index.js.map +1 -0
- package/dist/esm/generator/type-emitters/aggregation-emitter.d.ts +7 -0
- package/dist/esm/generator/type-emitters/aggregation-emitter.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/aggregation-emitter.js +193 -0
- package/dist/esm/generator/type-emitters/aggregation-emitter.js.map +1 -0
- package/dist/esm/generator/type-emitters/connection-emitter.d.ts +22 -0
- package/dist/esm/generator/type-emitters/connection-emitter.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/connection-emitter.js +266 -0
- package/dist/esm/generator/type-emitters/connection-emitter.js.map +1 -0
- package/dist/esm/generator/type-emitters/enum-emitter.d.ts +7 -0
- package/dist/esm/generator/type-emitters/enum-emitter.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/enum-emitter.js +42 -0
- package/dist/esm/generator/type-emitters/enum-emitter.js.map +1 -0
- package/dist/esm/generator/type-emitters/fulltext-emitter.d.ts +15 -0
- package/dist/esm/generator/type-emitters/fulltext-emitter.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/fulltext-emitter.js +77 -0
- package/dist/esm/generator/type-emitters/fulltext-emitter.js.map +1 -0
- package/dist/esm/generator/type-emitters/helpers.d.ts +32 -0
- package/dist/esm/generator/type-emitters/helpers.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/helpers.js +63 -0
- package/dist/esm/generator/type-emitters/helpers.js.map +1 -0
- package/dist/esm/generator/type-emitters/input-emitter.d.ts +6 -0
- package/dist/esm/generator/type-emitters/input-emitter.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/input-emitter.js +557 -0
- package/dist/esm/generator/type-emitters/input-emitter.js.map +1 -0
- package/dist/esm/generator/type-emitters/interface-emitter.d.ts +10 -0
- package/dist/esm/generator/type-emitters/interface-emitter.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/interface-emitter.js +85 -0
- package/dist/esm/generator/type-emitters/interface-emitter.js.map +1 -0
- package/dist/esm/generator/type-emitters/model-map-emitter.d.ts +32 -0
- package/dist/esm/generator/type-emitters/model-map-emitter.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/model-map-emitter.js +149 -0
- package/dist/esm/generator/type-emitters/model-map-emitter.js.map +1 -0
- package/dist/esm/generator/type-emitters/mutation-response-emitter.d.ts +9 -0
- package/dist/esm/generator/type-emitters/mutation-response-emitter.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/mutation-response-emitter.js +66 -0
- package/dist/esm/generator/type-emitters/mutation-response-emitter.js.map +1 -0
- package/dist/esm/generator/type-emitters/node-type-emitter.d.ts +13 -0
- package/dist/esm/generator/type-emitters/node-type-emitter.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/node-type-emitter.js +120 -0
- package/dist/esm/generator/type-emitters/node-type-emitter.js.map +1 -0
- package/dist/esm/generator/type-emitters/select-fields-emitter.d.ts +8 -0
- package/dist/esm/generator/type-emitters/select-fields-emitter.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/select-fields-emitter.js +166 -0
- package/dist/esm/generator/type-emitters/select-fields-emitter.js.map +1 -0
- package/dist/esm/generator/type-emitters/select-result-emitter.d.ts +9 -0
- package/dist/esm/generator/type-emitters/select-result-emitter.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/select-result-emitter.js +58 -0
- package/dist/esm/generator/type-emitters/select-result-emitter.js.map +1 -0
- package/dist/esm/generator/type-emitters/sort-options-emitter.d.ts +8 -0
- package/dist/esm/generator/type-emitters/sort-options-emitter.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/sort-options-emitter.js +44 -0
- package/dist/esm/generator/type-emitters/sort-options-emitter.js.map +1 -0
- package/dist/esm/generator/type-emitters/utility-types.d.ts +10 -0
- package/dist/esm/generator/type-emitters/utility-types.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/utility-types.js +88 -0
- package/dist/esm/generator/type-emitters/utility-types.js.map +1 -0
- package/dist/esm/generator/type-emitters/where-emitter.d.ts +15 -0
- package/dist/esm/generator/type-emitters/where-emitter.d.ts.map +1 -0
- package/dist/esm/generator/type-emitters/where-emitter.js +186 -0
- package/dist/esm/generator/type-emitters/where-emitter.js.map +1 -0
- package/dist/esm/index.d.ts +30 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +29 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/interface-model.d.ts +158 -0
- package/dist/esm/interface-model.d.ts.map +1 -0
- package/dist/esm/interface-model.js +210 -0
- package/dist/esm/interface-model.js.map +1 -0
- package/dist/esm/model.d.ts +354 -0
- package/dist/esm/model.d.ts.map +1 -0
- package/dist/esm/model.js +507 -0
- package/dist/esm/model.js.map +1 -0
- package/dist/esm/ogm.d.ts +97 -0
- package/dist/esm/ogm.d.ts.map +1 -0
- package/dist/esm/ogm.js +220 -0
- package/dist/esm/ogm.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/schema/parser.d.ts +12 -0
- package/dist/esm/schema/parser.d.ts.map +1 -0
- package/dist/esm/schema/parser.js +324 -0
- package/dist/esm/schema/parser.js.map +1 -0
- package/dist/esm/schema/types.d.ts +66 -0
- package/dist/esm/schema/types.d.ts.map +1 -0
- package/dist/esm/schema/types.js +2 -0
- package/dist/esm/schema/types.js.map +1 -0
- package/dist/esm/schema/utils.d.ts +23 -0
- package/dist/esm/schema/utils.d.ts.map +1 -0
- package/dist/esm/schema/utils.js +87 -0
- package/dist/esm/schema/utils.js.map +1 -0
- package/dist/esm/subgraph/index.d.ts +3 -0
- package/dist/esm/subgraph/index.d.ts.map +1 -0
- package/dist/esm/subgraph/index.js +2 -0
- package/dist/esm/subgraph/index.js.map +1 -0
- package/dist/esm/subgraph/subgraph-operations.d.ts +34 -0
- package/dist/esm/subgraph/subgraph-operations.d.ts.map +1 -0
- package/dist/esm/subgraph/subgraph-operations.js +221 -0
- package/dist/esm/subgraph/subgraph-operations.js.map +1 -0
- package/dist/esm/subgraph/types.d.ts +23 -0
- package/dist/esm/subgraph/types.d.ts.map +1 -0
- package/dist/esm/subgraph/types.js +2 -0
- package/dist/esm/subgraph/types.js.map +1 -0
- package/dist/esm/testing/cypher-assert.d.ts +35 -0
- package/dist/esm/testing/cypher-assert.d.ts.map +1 -0
- package/dist/esm/testing/cypher-assert.js +68 -0
- package/dist/esm/testing/cypher-assert.js.map +1 -0
- package/dist/esm/testing/index.d.ts +4 -0
- package/dist/esm/testing/index.d.ts.map +1 -0
- package/dist/esm/testing/index.js +4 -0
- package/dist/esm/testing/index.js.map +1 -0
- package/dist/esm/testing/neo4j-record-factory.d.ts +25 -0
- package/dist/esm/testing/neo4j-record-factory.d.ts.map +1 -0
- package/dist/esm/testing/neo4j-record-factory.js +36 -0
- package/dist/esm/testing/neo4j-record-factory.js.map +1 -0
- package/dist/esm/testing/selection-set-factory.d.ts +24 -0
- package/dist/esm/testing/selection-set-factory.d.ts.map +1 -0
- package/dist/esm/testing/selection-set-factory.js +40 -0
- package/dist/esm/testing/selection-set-factory.js.map +1 -0
- package/dist/esm/utils/lucene.d.ts +9 -0
- package/dist/esm/utils/lucene.d.ts.map +1 -0
- package/dist/esm/utils/lucene.js +22 -0
- package/dist/esm/utils/lucene.js.map +1 -0
- package/dist/esm/utils/validation.d.ts +25 -0
- package/dist/esm/utils/validation.d.ts.map +1 -0
- package/dist/esm/utils/validation.js +46 -0
- package/dist/esm/utils/validation.js.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { mapScalarType, wrapMaybe, toPascalCase } from './helpers';
|
|
2
|
+
/**
|
|
3
|
+
* Emits interface type declarations and their `*Implementation` enums.
|
|
4
|
+
*
|
|
5
|
+
* For each interface in the schema (sorted alphabetically):
|
|
6
|
+
* 1. `export type Entity = { ... }` — only fields declared on the interface
|
|
7
|
+
* 2. `export enum EntityImplementation { ... }` — if there are implementing types
|
|
8
|
+
*/
|
|
9
|
+
export function emitInterfaceTypes(schema) {
|
|
10
|
+
const blocks = [];
|
|
11
|
+
const sortedInterfaces = [...schema.interfaces.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
12
|
+
for (const [, iface] of sortedInterfaces)
|
|
13
|
+
blocks.push(emitSingleInterface(iface, schema));
|
|
14
|
+
return blocks.join('\n\n');
|
|
15
|
+
}
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Helpers
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
function emitSingleInterface(iface, schema) {
|
|
20
|
+
const parts = [];
|
|
21
|
+
// --- Interface type ---
|
|
22
|
+
parts.push(emitInterfaceType(iface, schema));
|
|
23
|
+
// --- Implementation enum ---
|
|
24
|
+
if (iface.implementedBy.length > 0)
|
|
25
|
+
parts.push(emitImplementationEnum(iface));
|
|
26
|
+
return parts.join('\n\n');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Emits `export type <Interface> = { ... }` with only the fields declared
|
|
30
|
+
* directly on the interface (no `__typename`).
|
|
31
|
+
*/
|
|
32
|
+
function emitInterfaceType(iface, schema) {
|
|
33
|
+
const members = [];
|
|
34
|
+
// --- Scalar properties ---
|
|
35
|
+
for (const [, prop] of iface.properties) {
|
|
36
|
+
if (prop.isCypher)
|
|
37
|
+
continue;
|
|
38
|
+
members.push(emitPropertyField(prop, schema));
|
|
39
|
+
}
|
|
40
|
+
// --- Relationship fields ---
|
|
41
|
+
for (const [, rel] of iface.relationships) {
|
|
42
|
+
members.push(emitRelationshipField(rel));
|
|
43
|
+
members.push(emitConnectionField(iface.name, rel));
|
|
44
|
+
}
|
|
45
|
+
return `export type ${iface.name} = {\n${members.join('\n')}\n};`;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Emits `export enum <Interface>Implementation { ... }`.
|
|
49
|
+
*
|
|
50
|
+
* Members are sorted alphabetically, each with `Name = "Name"`.
|
|
51
|
+
*/
|
|
52
|
+
function emitImplementationEnum(iface) {
|
|
53
|
+
const sorted = [...iface.implementedBy].sort();
|
|
54
|
+
const members = sorted.map((name) => ` ${name} = "${name}",`).join('\n');
|
|
55
|
+
return `export enum ${iface.name}Implementation {\n${members}\n}`;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Emits a single scalar property line for an interface field.
|
|
59
|
+
*/
|
|
60
|
+
function emitPropertyField(prop, schema) {
|
|
61
|
+
const tsType = mapScalarType(prop.type, schema.enums);
|
|
62
|
+
const wrapped = prop.isArray ? `Array<${tsType}>` : tsType;
|
|
63
|
+
const final = wrapMaybe(wrapped, prop.required);
|
|
64
|
+
const optional = prop.required ? '' : '?';
|
|
65
|
+
return ` ${prop.name}${optional}: ${final};`;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Emits the relationship field line for an interface.
|
|
69
|
+
*/
|
|
70
|
+
function emitRelationshipField(rel) {
|
|
71
|
+
if (rel.isArray)
|
|
72
|
+
return ` ${rel.fieldName}: Array<${rel.target}>;`;
|
|
73
|
+
const optional = rel.isRequired ? '' : '?';
|
|
74
|
+
const type = wrapMaybe(rel.target, rel.isRequired);
|
|
75
|
+
return ` ${rel.fieldName}${optional}: ${type};`;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Emits the connection field for a relationship on an interface.
|
|
79
|
+
*/
|
|
80
|
+
function emitConnectionField(interfaceName, rel) {
|
|
81
|
+
const pascalField = toPascalCase(rel.fieldName);
|
|
82
|
+
const connectionType = `${interfaceName}${pascalField}Connection`;
|
|
83
|
+
return ` ${rel.fieldName}Connection: ${connectionType};`;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=interface-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/interface-emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { SchemaMetadata } from '../../schema/types';
|
|
2
|
+
/**
|
|
3
|
+
* Emits a model declaration type for each node type, wrapping the generic
|
|
4
|
+
* `ModelInterface` from `grafeo-ogm` with the correct type parameters.
|
|
5
|
+
*
|
|
6
|
+
* Example output:
|
|
7
|
+
* ```typescript
|
|
8
|
+
* export type BookModel = ModelInterface<
|
|
9
|
+
* Book,
|
|
10
|
+
* BookSelectFields,
|
|
11
|
+
* BookWhere,
|
|
12
|
+
* BookCreateInput,
|
|
13
|
+
* BookUpdateInput,
|
|
14
|
+
* BookConnectInput,
|
|
15
|
+
* BookDisconnectInput,
|
|
16
|
+
* BookDeleteInput,
|
|
17
|
+
* 'books'
|
|
18
|
+
* >;
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function emitModelDeclarations(schema: SchemaMetadata): string;
|
|
22
|
+
/**
|
|
23
|
+
* Emits the `ModelMap` type that maps every node name to its associated
|
|
24
|
+
* generated types (node type, select fields, where, and mutation inputs).
|
|
25
|
+
*/
|
|
26
|
+
export declare function emitModelMap(schema: SchemaMetadata): string;
|
|
27
|
+
/**
|
|
28
|
+
* Emits the `InterfaceModelMap` type that maps every interface name to its
|
|
29
|
+
* associated generated types (interface type and where input).
|
|
30
|
+
*/
|
|
31
|
+
export declare function emitInterfaceModelMap(schema: SchemaMetadata): string;
|
|
32
|
+
//# sourceMappingURL=model-map-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-map-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/model-map-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAiBpE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAiB3D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAWpE"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Emits a model declaration type for each node type, wrapping the generic
|
|
3
|
+
* `ModelInterface` from `grafeo-ogm` with the correct type parameters.
|
|
4
|
+
*
|
|
5
|
+
* Example output:
|
|
6
|
+
* ```typescript
|
|
7
|
+
* export type BookModel = ModelInterface<
|
|
8
|
+
* Book,
|
|
9
|
+
* BookSelectFields,
|
|
10
|
+
* BookWhere,
|
|
11
|
+
* BookCreateInput,
|
|
12
|
+
* BookUpdateInput,
|
|
13
|
+
* BookConnectInput,
|
|
14
|
+
* BookDisconnectInput,
|
|
15
|
+
* BookDeleteInput,
|
|
16
|
+
* 'books'
|
|
17
|
+
* >;
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export function emitModelDeclarations(schema) {
|
|
21
|
+
const blocks = [];
|
|
22
|
+
const sortedNodes = [...schema.nodes.keys()].sort();
|
|
23
|
+
for (const typeName of sortedNodes) {
|
|
24
|
+
const node = schema.nodes.get(typeName);
|
|
25
|
+
const hasRels = node.relationships.size > 0;
|
|
26
|
+
blocks.push(buildModelType(typeName, node.pluralName, hasRels));
|
|
27
|
+
}
|
|
28
|
+
// Interface model declarations
|
|
29
|
+
const sortedInterfaces = [...schema.interfaces.keys()].sort();
|
|
30
|
+
for (const ifaceName of sortedInterfaces)
|
|
31
|
+
blocks.push(buildInterfaceModelType(ifaceName));
|
|
32
|
+
return blocks.join('\n\n');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Emits the `ModelMap` type that maps every node name to its associated
|
|
36
|
+
* generated types (node type, select fields, where, and mutation inputs).
|
|
37
|
+
*/
|
|
38
|
+
export function emitModelMap(schema) {
|
|
39
|
+
const entries = [];
|
|
40
|
+
const sortedNodes = [...schema.nodes.keys()].sort();
|
|
41
|
+
for (const typeName of sortedNodes) {
|
|
42
|
+
const node = schema.nodes.get(typeName);
|
|
43
|
+
const hasRels = node.relationships.size > 0;
|
|
44
|
+
entries.push(buildModelMapEntry(typeName, node.pluralName, hasRels));
|
|
45
|
+
}
|
|
46
|
+
// Include interfaces so ogm.model('InterfaceName') gets autocomplete
|
|
47
|
+
const sortedInterfaces = [...schema.interfaces.keys()].sort();
|
|
48
|
+
for (const ifaceName of sortedInterfaces)
|
|
49
|
+
entries.push(buildInterfaceAsModelMapEntry(ifaceName));
|
|
50
|
+
return `export type ModelMap = {\n${entries.join('\n')}\n};`;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Emits the `InterfaceModelMap` type that maps every interface name to its
|
|
54
|
+
* associated generated types (interface type and where input).
|
|
55
|
+
*/
|
|
56
|
+
export function emitInterfaceModelMap(schema) {
|
|
57
|
+
const entries = [];
|
|
58
|
+
const sortedInterfaces = [...schema.interfaces.keys()].sort();
|
|
59
|
+
for (const ifaceName of sortedInterfaces)
|
|
60
|
+
entries.push(buildInterfaceModelMapEntry(ifaceName));
|
|
61
|
+
if (entries.length === 0)
|
|
62
|
+
return 'export type InterfaceModelMap = {};';
|
|
63
|
+
return `export type InterfaceModelMap = {\n${entries.join('\n')}\n};`;
|
|
64
|
+
}
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
// Helpers
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
function buildModelType(typeName, pluralName, hasRels) {
|
|
69
|
+
const connectType = hasRels
|
|
70
|
+
? `${typeName}ConnectInput`
|
|
71
|
+
: 'Record<string, never>';
|
|
72
|
+
const disconnectType = hasRels
|
|
73
|
+
? `${typeName}DisconnectInput`
|
|
74
|
+
: 'Record<string, never>';
|
|
75
|
+
const deleteType = hasRels
|
|
76
|
+
? `${typeName}DeleteInput`
|
|
77
|
+
: 'Record<string, never>';
|
|
78
|
+
return [
|
|
79
|
+
`export type ${typeName}Model = ModelInterface<`,
|
|
80
|
+
` ${typeName},`,
|
|
81
|
+
` ${typeName}SelectFields,`,
|
|
82
|
+
` ${typeName}Where,`,
|
|
83
|
+
` ${typeName}CreateInput,`,
|
|
84
|
+
` ${typeName}UpdateInput,`,
|
|
85
|
+
` ${connectType},`,
|
|
86
|
+
` ${disconnectType},`,
|
|
87
|
+
` ${deleteType},`,
|
|
88
|
+
` '${pluralName}',`,
|
|
89
|
+
` ${typeName}MutationSelectFields`,
|
|
90
|
+
`>;`,
|
|
91
|
+
].join('\n');
|
|
92
|
+
}
|
|
93
|
+
function buildInterfaceModelType(ifaceName) {
|
|
94
|
+
return [
|
|
95
|
+
`export type ${ifaceName}Model = InterfaceModelInterface<`,
|
|
96
|
+
` ${ifaceName},`,
|
|
97
|
+
` ${ifaceName}Where`,
|
|
98
|
+
`>;`,
|
|
99
|
+
].join('\n');
|
|
100
|
+
}
|
|
101
|
+
function buildModelMapEntry(typeName, pluralName, hasRels) {
|
|
102
|
+
const connectType = hasRels
|
|
103
|
+
? `${typeName}ConnectInput`
|
|
104
|
+
: 'Record<string, never>';
|
|
105
|
+
const disconnectType = hasRels
|
|
106
|
+
? `${typeName}DisconnectInput`
|
|
107
|
+
: 'Record<string, never>';
|
|
108
|
+
const deleteType = hasRels
|
|
109
|
+
? `${typeName}DeleteInput`
|
|
110
|
+
: 'Record<string, never>';
|
|
111
|
+
return [
|
|
112
|
+
` ${typeName}: {`,
|
|
113
|
+
` Type: ${typeName};`,
|
|
114
|
+
` SelectFields: ${typeName}SelectFields;`,
|
|
115
|
+
` MutationSelectFields: ${typeName}MutationSelectFields;`,
|
|
116
|
+
` Where: ${typeName}Where;`,
|
|
117
|
+
` CreateInput: ${typeName}CreateInput;`,
|
|
118
|
+
` UpdateInput: ${typeName}UpdateInput;`,
|
|
119
|
+
` ConnectInput: ${connectType};`,
|
|
120
|
+
` DisconnectInput: ${disconnectType};`,
|
|
121
|
+
` DeleteInput: ${deleteType};`,
|
|
122
|
+
` PluralKey: '${pluralName}';`,
|
|
123
|
+
` };`,
|
|
124
|
+
].join('\n');
|
|
125
|
+
}
|
|
126
|
+
function buildInterfaceAsModelMapEntry(ifaceName) {
|
|
127
|
+
return [
|
|
128
|
+
` ${ifaceName}: {`,
|
|
129
|
+
` Type: ${ifaceName};`,
|
|
130
|
+
` SelectFields: ${ifaceName}SelectFields;`,
|
|
131
|
+
` Where: ${ifaceName}Where;`,
|
|
132
|
+
` CreateInput: Record<string, never>;`,
|
|
133
|
+
` UpdateInput: Record<string, never>;`,
|
|
134
|
+
` ConnectInput: Record<string, never>;`,
|
|
135
|
+
` DisconnectInput: Record<string, never>;`,
|
|
136
|
+
` DeleteInput: Record<string, never>;`,
|
|
137
|
+
` PluralKey: never;`,
|
|
138
|
+
` };`,
|
|
139
|
+
].join('\n');
|
|
140
|
+
}
|
|
141
|
+
function buildInterfaceModelMapEntry(ifaceName) {
|
|
142
|
+
return [
|
|
143
|
+
` ${ifaceName}: {`,
|
|
144
|
+
` Type: ${ifaceName};`,
|
|
145
|
+
` Where: ${ifaceName}Where;`,
|
|
146
|
+
` };`,
|
|
147
|
+
].join('\n');
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=model-map-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-map-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/model-map-emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SchemaMetadata } from '../../schema/types';
|
|
2
|
+
/**
|
|
3
|
+
* Emits mutation response types for every node in the schema:
|
|
4
|
+
* - `CreateInfo` and `UpdateInfo` (emitted once)
|
|
5
|
+
* - `Create{PluralName}MutationResponse` per node
|
|
6
|
+
* - `Update{PluralName}MutationResponse` per node
|
|
7
|
+
*/
|
|
8
|
+
export declare function emitMutationResponseTypes(schema: SchemaMetadata): string;
|
|
9
|
+
//# sourceMappingURL=mutation-response-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutation-response-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/mutation-response-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAwCxE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Emits mutation response types for every node in the schema:
|
|
3
|
+
* - `CreateInfo` and `UpdateInfo` (emitted once)
|
|
4
|
+
* - `Create{PluralName}MutationResponse` per node
|
|
5
|
+
* - `Update{PluralName}MutationResponse` per node
|
|
6
|
+
*/
|
|
7
|
+
export function emitMutationResponseTypes(schema) {
|
|
8
|
+
const blocks = [];
|
|
9
|
+
// Static info types — emitted once
|
|
10
|
+
blocks.push(emitCreateInfo());
|
|
11
|
+
blocks.push(emitUpdateInfo());
|
|
12
|
+
blocks.push(emitMutationInfoSelectFields());
|
|
13
|
+
// Per-node mutation responses (sorted alphabetically)
|
|
14
|
+
const sortedNodes = [...schema.nodes.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
15
|
+
for (const [, node] of sortedNodes) {
|
|
16
|
+
const pascalPlural = toPascalPlural(node.pluralName);
|
|
17
|
+
blocks.push(`export type Create${pascalPlural}MutationResponse = {\n` +
|
|
18
|
+
` info: CreateInfo;\n` +
|
|
19
|
+
` ${node.pluralName}: Array<${node.typeName}>;\n` +
|
|
20
|
+
`};`);
|
|
21
|
+
blocks.push(`export type Update${pascalPlural}MutationResponse = {\n` +
|
|
22
|
+
` info: UpdateInfo;\n` +
|
|
23
|
+
` ${node.pluralName}: Array<${node.typeName}>;\n` +
|
|
24
|
+
`};`);
|
|
25
|
+
// Per-node mutation select fields
|
|
26
|
+
blocks.push(`export type ${node.typeName}MutationSelectFields = {\n` +
|
|
27
|
+
` info?: MutationInfoSelectFields;\n` +
|
|
28
|
+
` ${node.pluralName}?: ${node.typeName}SelectFields;\n` +
|
|
29
|
+
`};`);
|
|
30
|
+
}
|
|
31
|
+
return blocks.join('\n\n');
|
|
32
|
+
}
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
// Helpers
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
function emitMutationInfoSelectFields() {
|
|
37
|
+
return `export type MutationInfoSelectFields = {
|
|
38
|
+
nodesCreated?: boolean;
|
|
39
|
+
nodesDeleted?: boolean;
|
|
40
|
+
relationshipsCreated?: boolean;
|
|
41
|
+
relationshipsDeleted?: boolean;
|
|
42
|
+
};`;
|
|
43
|
+
}
|
|
44
|
+
function emitCreateInfo() {
|
|
45
|
+
return `export type CreateInfo = {
|
|
46
|
+
nodesCreated: Scalars["Int"]["output"];
|
|
47
|
+
nodesDeleted?: Scalars["Int"]["output"];
|
|
48
|
+
relationshipsCreated: Scalars["Int"]["output"];
|
|
49
|
+
relationshipsDeleted?: Scalars["Int"]["output"];
|
|
50
|
+
};`;
|
|
51
|
+
}
|
|
52
|
+
function emitUpdateInfo() {
|
|
53
|
+
return `export type UpdateInfo = {
|
|
54
|
+
nodesCreated: Scalars["Int"]["output"];
|
|
55
|
+
nodesDeleted?: Scalars["Int"]["output"];
|
|
56
|
+
relationshipsCreated: Scalars["Int"]["output"];
|
|
57
|
+
relationshipsDeleted?: Scalars["Int"]["output"];
|
|
58
|
+
};`;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Converts a plural name (e.g. `charts`) to PascalCase (`Charts`).
|
|
62
|
+
*/
|
|
63
|
+
function toPascalPlural(pluralName) {
|
|
64
|
+
return pluralName.charAt(0).toUpperCase() + pluralName.slice(1);
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=mutation-response-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutation-response-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/mutation-response-emitter.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAsB;IAC9D,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,mCAAmC;IACnC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAC9B,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAC9B,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC;IAE5C,sDAAsD;IACtD,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAChE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,CAAC;IAEF,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CACT,qBAAqB,YAAY,wBAAwB;YACvD,uBAAuB;YACvB,KAAK,IAAI,CAAC,UAAU,WAAW,IAAI,CAAC,QAAQ,MAAM;YAClD,IAAI,CACP,CAAC;QAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,YAAY,wBAAwB;YACvD,uBAAuB;YACvB,KAAK,IAAI,CAAC,UAAU,WAAW,IAAI,CAAC,QAAQ,MAAM;YAClD,IAAI,CACP,CAAC;QAEF,kCAAkC;QAClC,MAAM,CAAC,IAAI,CACT,eAAe,IAAI,CAAC,QAAQ,4BAA4B;YACtD,sCAAsC;YACtC,KAAK,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,QAAQ,iBAAiB;YACxD,IAAI,CACP,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,4BAA4B;IACnC,OAAO;;;;;GAKN,CAAC;AACJ,CAAC;AAED,SAAS,cAAc;IACrB,OAAO;;;;;GAKN,CAAC;AACJ,CAAC;AAED,SAAS,cAAc;IACrB,OAAO;;;;;GAKN,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,UAAkB;IACxC,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SchemaMetadata } from '../../schema/types';
|
|
2
|
+
/**
|
|
3
|
+
* Emits one `export type <Node> = { ... }` declaration per node in the
|
|
4
|
+
* schema, sorted alphabetically.
|
|
5
|
+
*
|
|
6
|
+
* Each type includes:
|
|
7
|
+
* - `__typename?: "<TypeName>"`
|
|
8
|
+
* - Scalar properties (skipping `@cypher` fields)
|
|
9
|
+
* - Relationship fields (array or singular, required or optional)
|
|
10
|
+
* - Connection fields for every relationship
|
|
11
|
+
*/
|
|
12
|
+
export declare function emitNodeTypes(schema: SchemaMetadata): string;
|
|
13
|
+
//# sourceMappingURL=node-type-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-type-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/node-type-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,oBAAoB,CAAC;AAG5B;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAiC5D"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { mapScalarType, toPascalCase, wrapMaybe } from './helpers';
|
|
2
|
+
/**
|
|
3
|
+
* Emits one `export type <Node> = { ... }` declaration per node in the
|
|
4
|
+
* schema, sorted alphabetically.
|
|
5
|
+
*
|
|
6
|
+
* Each type includes:
|
|
7
|
+
* - `__typename?: "<TypeName>"`
|
|
8
|
+
* - Scalar properties (skipping `@cypher` fields)
|
|
9
|
+
* - Relationship fields (array or singular, required or optional)
|
|
10
|
+
* - Connection fields for every relationship
|
|
11
|
+
*/
|
|
12
|
+
export function emitNodeTypes(schema) {
|
|
13
|
+
const blocks = [];
|
|
14
|
+
const sortedNodes = [...schema.nodes.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
15
|
+
for (const [, node] of sortedNodes)
|
|
16
|
+
blocks.push(emitSingleNodeType(node, schema));
|
|
17
|
+
// Union types (sorted alphabetically)
|
|
18
|
+
const sortedUnions = [...(schema.unions?.entries() ?? [])].sort(([a], [b]) => a.localeCompare(b));
|
|
19
|
+
for (const [name, members] of sortedUnions)
|
|
20
|
+
blocks.push(`export type ${name} = ${members.join(' | ')};`);
|
|
21
|
+
// Relationship-property base types (sorted alphabetically)
|
|
22
|
+
const sortedRelProps = [...schema.relationshipProperties.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
23
|
+
for (const [, relProp] of sortedRelProps) {
|
|
24
|
+
const members = [];
|
|
25
|
+
for (const [, prop] of relProp.properties) {
|
|
26
|
+
if (prop.isCypher)
|
|
27
|
+
continue;
|
|
28
|
+
members.push(emitPropertyField(prop, schema));
|
|
29
|
+
}
|
|
30
|
+
blocks.push(`export type ${relProp.typeName} = {\n${members.join('\n')}\n};`);
|
|
31
|
+
}
|
|
32
|
+
return blocks.join('\n\n');
|
|
33
|
+
}
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
// Helpers
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
function emitSingleNodeType(node, schema) {
|
|
38
|
+
const members = [];
|
|
39
|
+
// __typename (always optional)
|
|
40
|
+
members.push(` __typename?: "${node.typeName}";`);
|
|
41
|
+
// --- Scalar properties ---
|
|
42
|
+
for (const [, prop] of node.properties) {
|
|
43
|
+
if (prop.isCypher) {
|
|
44
|
+
// @cypher fields are computed — emit as always-optional
|
|
45
|
+
members.push(emitCypherField(prop, schema));
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
members.push(emitPropertyField(prop, schema));
|
|
49
|
+
}
|
|
50
|
+
// --- Relationship fields ---
|
|
51
|
+
for (const [, rel] of node.relationships) {
|
|
52
|
+
members.push(emitAggregateField(node.typeName, rel));
|
|
53
|
+
members.push(emitRelationshipField(rel));
|
|
54
|
+
members.push(emitConnectionField(node.typeName, rel));
|
|
55
|
+
}
|
|
56
|
+
return `export type ${node.typeName} = {\n${members.join('\n')}\n};`;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Emits a @cypher computed field as always-optional.
|
|
60
|
+
*
|
|
61
|
+
* @cypher fields may return scalars or node types (arrays or singular).
|
|
62
|
+
* They are always optional since they're only present when explicitly queried.
|
|
63
|
+
*/
|
|
64
|
+
function emitCypherField(prop, schema) {
|
|
65
|
+
const isNodeType = schema.nodes.has(prop.type);
|
|
66
|
+
const tsType = isNodeType
|
|
67
|
+
? prop.type
|
|
68
|
+
: mapScalarType(prop.type, schema.enums);
|
|
69
|
+
const wrapped = prop.isArray ? `Maybe<Array<${tsType}>>` : `Maybe<${tsType}>`;
|
|
70
|
+
return ` ${prop.name}?: ${wrapped};`;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Emits a single scalar property line.
|
|
74
|
+
*
|
|
75
|
+
* Examples:
|
|
76
|
+
* ` id: Scalars["ID"]["output"];`
|
|
77
|
+
* ` name?: Maybe<Scalars["String"]["output"]>;`
|
|
78
|
+
*/
|
|
79
|
+
function emitPropertyField(prop, schema) {
|
|
80
|
+
const tsType = mapScalarType(prop.type, schema.enums);
|
|
81
|
+
const wrapped = prop.isArray ? `Array<${tsType}>` : tsType;
|
|
82
|
+
const final = wrapMaybe(wrapped, prop.required);
|
|
83
|
+
const optional = prop.required ? '' : '?';
|
|
84
|
+
return ` ${prop.name}${optional}: ${final};`;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Emits the relationship field line.
|
|
88
|
+
*
|
|
89
|
+
* Array relationships → ` drugs: Array<Drug>;`
|
|
90
|
+
* Singular required → ` hasStatus: Status;`
|
|
91
|
+
* Singular optional → ` resource?: Maybe<Resource>;`
|
|
92
|
+
*/
|
|
93
|
+
function emitRelationshipField(rel) {
|
|
94
|
+
if (rel.isArray)
|
|
95
|
+
return ` ${rel.fieldName}: Array<${rel.target}>;`;
|
|
96
|
+
const optional = rel.isRequired ? '' : '?';
|
|
97
|
+
const type = wrapMaybe(rel.target, rel.isRequired);
|
|
98
|
+
return ` ${rel.fieldName}${optional}: ${type};`;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Emits the aggregate field for a relationship.
|
|
102
|
+
*
|
|
103
|
+
* Example: ` drugsAggregate?: Maybe<ChartDrugDrugsAggregationSelection>;`
|
|
104
|
+
*/
|
|
105
|
+
function emitAggregateField(typeName, rel) {
|
|
106
|
+
const pascalField = toPascalCase(rel.fieldName);
|
|
107
|
+
const aggType = `${typeName}${rel.target}${pascalField}AggregationSelection`;
|
|
108
|
+
return ` ${rel.fieldName}Aggregate?: Maybe<${aggType}>;`;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Emits the connection field for a relationship.
|
|
112
|
+
*
|
|
113
|
+
* Example: ` drugsConnection: ChartDrugsConnection;`
|
|
114
|
+
*/
|
|
115
|
+
function emitConnectionField(typeName, rel) {
|
|
116
|
+
const pascalField = toPascalCase(rel.fieldName);
|
|
117
|
+
const connectionType = `${typeName}${pascalField}Connection`;
|
|
118
|
+
return ` ${rel.fieldName}Connection: ${connectionType};`;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=node-type-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-type-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/node-type-emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SchemaMetadata } from '../../schema/types';
|
|
2
|
+
/**
|
|
3
|
+
* Emits `SelectFields` types for every node, interface, and edge-properties
|
|
4
|
+
* type in the schema. These types describe which fields can be selected in
|
|
5
|
+
* the type-safe `select` API.
|
|
6
|
+
*/
|
|
7
|
+
export declare function emitSelectFieldTypes(schema: SchemaMetadata): string;
|
|
8
|
+
//# sourceMappingURL=select-fields-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-fields-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/select-fields-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAKf,MAAM,oBAAoB,CAAC;AAG5B;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAkCnE"}
|