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,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.emitInterfaceTypes = emitInterfaceTypes;
|
|
4
|
+
const helpers_1 = require("./helpers");
|
|
5
|
+
/**
|
|
6
|
+
* Emits interface type declarations and their `*Implementation` enums.
|
|
7
|
+
*
|
|
8
|
+
* For each interface in the schema (sorted alphabetically):
|
|
9
|
+
* 1. `export type Entity = { ... }` — only fields declared on the interface
|
|
10
|
+
* 2. `export enum EntityImplementation { ... }` — if there are implementing types
|
|
11
|
+
*/
|
|
12
|
+
function emitInterfaceTypes(schema) {
|
|
13
|
+
const blocks = [];
|
|
14
|
+
const sortedInterfaces = [...schema.interfaces.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
15
|
+
for (const [, iface] of sortedInterfaces)
|
|
16
|
+
blocks.push(emitSingleInterface(iface, schema));
|
|
17
|
+
return blocks.join('\n\n');
|
|
18
|
+
}
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Helpers
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
function emitSingleInterface(iface, schema) {
|
|
23
|
+
const parts = [];
|
|
24
|
+
// --- Interface type ---
|
|
25
|
+
parts.push(emitInterfaceType(iface, schema));
|
|
26
|
+
// --- Implementation enum ---
|
|
27
|
+
if (iface.implementedBy.length > 0)
|
|
28
|
+
parts.push(emitImplementationEnum(iface));
|
|
29
|
+
return parts.join('\n\n');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Emits `export type <Interface> = { ... }` with only the fields declared
|
|
33
|
+
* directly on the interface (no `__typename`).
|
|
34
|
+
*/
|
|
35
|
+
function emitInterfaceType(iface, schema) {
|
|
36
|
+
const members = [];
|
|
37
|
+
// --- Scalar properties ---
|
|
38
|
+
for (const [, prop] of iface.properties) {
|
|
39
|
+
if (prop.isCypher)
|
|
40
|
+
continue;
|
|
41
|
+
members.push(emitPropertyField(prop, schema));
|
|
42
|
+
}
|
|
43
|
+
// --- Relationship fields ---
|
|
44
|
+
for (const [, rel] of iface.relationships) {
|
|
45
|
+
members.push(emitRelationshipField(rel));
|
|
46
|
+
members.push(emitConnectionField(iface.name, rel));
|
|
47
|
+
}
|
|
48
|
+
return `export type ${iface.name} = {\n${members.join('\n')}\n};`;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Emits `export enum <Interface>Implementation { ... }`.
|
|
52
|
+
*
|
|
53
|
+
* Members are sorted alphabetically, each with `Name = "Name"`.
|
|
54
|
+
*/
|
|
55
|
+
function emitImplementationEnum(iface) {
|
|
56
|
+
const sorted = [...iface.implementedBy].sort();
|
|
57
|
+
const members = sorted.map((name) => ` ${name} = "${name}",`).join('\n');
|
|
58
|
+
return `export enum ${iface.name}Implementation {\n${members}\n}`;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Emits a single scalar property line for an interface field.
|
|
62
|
+
*/
|
|
63
|
+
function emitPropertyField(prop, schema) {
|
|
64
|
+
const tsType = (0, helpers_1.mapScalarType)(prop.type, schema.enums);
|
|
65
|
+
const wrapped = prop.isArray ? `Array<${tsType}>` : tsType;
|
|
66
|
+
const final = (0, helpers_1.wrapMaybe)(wrapped, prop.required);
|
|
67
|
+
const optional = prop.required ? '' : '?';
|
|
68
|
+
return ` ${prop.name}${optional}: ${final};`;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Emits the relationship field line for an interface.
|
|
72
|
+
*/
|
|
73
|
+
function emitRelationshipField(rel) {
|
|
74
|
+
if (rel.isArray)
|
|
75
|
+
return ` ${rel.fieldName}: Array<${rel.target}>;`;
|
|
76
|
+
const optional = rel.isRequired ? '' : '?';
|
|
77
|
+
const type = (0, helpers_1.wrapMaybe)(rel.target, rel.isRequired);
|
|
78
|
+
return ` ${rel.fieldName}${optional}: ${type};`;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Emits the connection field for a relationship on an interface.
|
|
82
|
+
*/
|
|
83
|
+
function emitConnectionField(interfaceName, rel) {
|
|
84
|
+
const pascalField = (0, helpers_1.toPascalCase)(rel.fieldName);
|
|
85
|
+
const connectionType = `${interfaceName}${pascalField}Connection`;
|
|
86
|
+
return ` ${rel.fieldName}Connection: ${connectionType};`;
|
|
87
|
+
}
|
|
88
|
+
//# 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,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.emitModelDeclarations = emitModelDeclarations;
|
|
4
|
+
exports.emitModelMap = emitModelMap;
|
|
5
|
+
exports.emitInterfaceModelMap = emitInterfaceModelMap;
|
|
6
|
+
/**
|
|
7
|
+
* Emits a model declaration type for each node type, wrapping the generic
|
|
8
|
+
* `ModelInterface` from `grafeo-ogm` with the correct type parameters.
|
|
9
|
+
*
|
|
10
|
+
* Example output:
|
|
11
|
+
* ```typescript
|
|
12
|
+
* export type BookModel = ModelInterface<
|
|
13
|
+
* Book,
|
|
14
|
+
* BookSelectFields,
|
|
15
|
+
* BookWhere,
|
|
16
|
+
* BookCreateInput,
|
|
17
|
+
* BookUpdateInput,
|
|
18
|
+
* BookConnectInput,
|
|
19
|
+
* BookDisconnectInput,
|
|
20
|
+
* BookDeleteInput,
|
|
21
|
+
* 'books'
|
|
22
|
+
* >;
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
function emitModelDeclarations(schema) {
|
|
26
|
+
const blocks = [];
|
|
27
|
+
const sortedNodes = [...schema.nodes.keys()].sort();
|
|
28
|
+
for (const typeName of sortedNodes) {
|
|
29
|
+
const node = schema.nodes.get(typeName);
|
|
30
|
+
const hasRels = node.relationships.size > 0;
|
|
31
|
+
blocks.push(buildModelType(typeName, node.pluralName, hasRels));
|
|
32
|
+
}
|
|
33
|
+
// Interface model declarations
|
|
34
|
+
const sortedInterfaces = [...schema.interfaces.keys()].sort();
|
|
35
|
+
for (const ifaceName of sortedInterfaces)
|
|
36
|
+
blocks.push(buildInterfaceModelType(ifaceName));
|
|
37
|
+
return blocks.join('\n\n');
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Emits the `ModelMap` type that maps every node name to its associated
|
|
41
|
+
* generated types (node type, select fields, where, and mutation inputs).
|
|
42
|
+
*/
|
|
43
|
+
function emitModelMap(schema) {
|
|
44
|
+
const entries = [];
|
|
45
|
+
const sortedNodes = [...schema.nodes.keys()].sort();
|
|
46
|
+
for (const typeName of sortedNodes) {
|
|
47
|
+
const node = schema.nodes.get(typeName);
|
|
48
|
+
const hasRels = node.relationships.size > 0;
|
|
49
|
+
entries.push(buildModelMapEntry(typeName, node.pluralName, hasRels));
|
|
50
|
+
}
|
|
51
|
+
// Include interfaces so ogm.model('InterfaceName') gets autocomplete
|
|
52
|
+
const sortedInterfaces = [...schema.interfaces.keys()].sort();
|
|
53
|
+
for (const ifaceName of sortedInterfaces)
|
|
54
|
+
entries.push(buildInterfaceAsModelMapEntry(ifaceName));
|
|
55
|
+
return `export type ModelMap = {\n${entries.join('\n')}\n};`;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Emits the `InterfaceModelMap` type that maps every interface name to its
|
|
59
|
+
* associated generated types (interface type and where input).
|
|
60
|
+
*/
|
|
61
|
+
function emitInterfaceModelMap(schema) {
|
|
62
|
+
const entries = [];
|
|
63
|
+
const sortedInterfaces = [...schema.interfaces.keys()].sort();
|
|
64
|
+
for (const ifaceName of sortedInterfaces)
|
|
65
|
+
entries.push(buildInterfaceModelMapEntry(ifaceName));
|
|
66
|
+
if (entries.length === 0)
|
|
67
|
+
return 'export type InterfaceModelMap = {};';
|
|
68
|
+
return `export type InterfaceModelMap = {\n${entries.join('\n')}\n};`;
|
|
69
|
+
}
|
|
70
|
+
// ---------------------------------------------------------------------------
|
|
71
|
+
// Helpers
|
|
72
|
+
// ---------------------------------------------------------------------------
|
|
73
|
+
function buildModelType(typeName, pluralName, hasRels) {
|
|
74
|
+
const connectType = hasRels
|
|
75
|
+
? `${typeName}ConnectInput`
|
|
76
|
+
: 'Record<string, never>';
|
|
77
|
+
const disconnectType = hasRels
|
|
78
|
+
? `${typeName}DisconnectInput`
|
|
79
|
+
: 'Record<string, never>';
|
|
80
|
+
const deleteType = hasRels
|
|
81
|
+
? `${typeName}DeleteInput`
|
|
82
|
+
: 'Record<string, never>';
|
|
83
|
+
return [
|
|
84
|
+
`export type ${typeName}Model = ModelInterface<`,
|
|
85
|
+
` ${typeName},`,
|
|
86
|
+
` ${typeName}SelectFields,`,
|
|
87
|
+
` ${typeName}Where,`,
|
|
88
|
+
` ${typeName}CreateInput,`,
|
|
89
|
+
` ${typeName}UpdateInput,`,
|
|
90
|
+
` ${connectType},`,
|
|
91
|
+
` ${disconnectType},`,
|
|
92
|
+
` ${deleteType},`,
|
|
93
|
+
` '${pluralName}',`,
|
|
94
|
+
` ${typeName}MutationSelectFields`,
|
|
95
|
+
`>;`,
|
|
96
|
+
].join('\n');
|
|
97
|
+
}
|
|
98
|
+
function buildInterfaceModelType(ifaceName) {
|
|
99
|
+
return [
|
|
100
|
+
`export type ${ifaceName}Model = InterfaceModelInterface<`,
|
|
101
|
+
` ${ifaceName},`,
|
|
102
|
+
` ${ifaceName}Where`,
|
|
103
|
+
`>;`,
|
|
104
|
+
].join('\n');
|
|
105
|
+
}
|
|
106
|
+
function buildModelMapEntry(typeName, pluralName, hasRels) {
|
|
107
|
+
const connectType = hasRels
|
|
108
|
+
? `${typeName}ConnectInput`
|
|
109
|
+
: 'Record<string, never>';
|
|
110
|
+
const disconnectType = hasRels
|
|
111
|
+
? `${typeName}DisconnectInput`
|
|
112
|
+
: 'Record<string, never>';
|
|
113
|
+
const deleteType = hasRels
|
|
114
|
+
? `${typeName}DeleteInput`
|
|
115
|
+
: 'Record<string, never>';
|
|
116
|
+
return [
|
|
117
|
+
` ${typeName}: {`,
|
|
118
|
+
` Type: ${typeName};`,
|
|
119
|
+
` SelectFields: ${typeName}SelectFields;`,
|
|
120
|
+
` MutationSelectFields: ${typeName}MutationSelectFields;`,
|
|
121
|
+
` Where: ${typeName}Where;`,
|
|
122
|
+
` CreateInput: ${typeName}CreateInput;`,
|
|
123
|
+
` UpdateInput: ${typeName}UpdateInput;`,
|
|
124
|
+
` ConnectInput: ${connectType};`,
|
|
125
|
+
` DisconnectInput: ${disconnectType};`,
|
|
126
|
+
` DeleteInput: ${deleteType};`,
|
|
127
|
+
` PluralKey: '${pluralName}';`,
|
|
128
|
+
` };`,
|
|
129
|
+
].join('\n');
|
|
130
|
+
}
|
|
131
|
+
function buildInterfaceAsModelMapEntry(ifaceName) {
|
|
132
|
+
return [
|
|
133
|
+
` ${ifaceName}: {`,
|
|
134
|
+
` Type: ${ifaceName};`,
|
|
135
|
+
` SelectFields: ${ifaceName}SelectFields;`,
|
|
136
|
+
` Where: ${ifaceName}Where;`,
|
|
137
|
+
` CreateInput: Record<string, never>;`,
|
|
138
|
+
` UpdateInput: Record<string, never>;`,
|
|
139
|
+
` ConnectInput: Record<string, never>;`,
|
|
140
|
+
` DisconnectInput: Record<string, never>;`,
|
|
141
|
+
` DeleteInput: Record<string, never>;`,
|
|
142
|
+
` PluralKey: never;`,
|
|
143
|
+
` };`,
|
|
144
|
+
].join('\n');
|
|
145
|
+
}
|
|
146
|
+
function buildInterfaceModelMapEntry(ifaceName) {
|
|
147
|
+
return [
|
|
148
|
+
` ${ifaceName}: {`,
|
|
149
|
+
` Type: ${ifaceName};`,
|
|
150
|
+
` Where: ${ifaceName}Where;`,
|
|
151
|
+
` };`,
|
|
152
|
+
].join('\n');
|
|
153
|
+
}
|
|
154
|
+
//# 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,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.emitMutationResponseTypes = emitMutationResponseTypes;
|
|
4
|
+
/**
|
|
5
|
+
* Emits mutation response types for every node in the schema:
|
|
6
|
+
* - `CreateInfo` and `UpdateInfo` (emitted once)
|
|
7
|
+
* - `Create{PluralName}MutationResponse` per node
|
|
8
|
+
* - `Update{PluralName}MutationResponse` per node
|
|
9
|
+
*/
|
|
10
|
+
function emitMutationResponseTypes(schema) {
|
|
11
|
+
const blocks = [];
|
|
12
|
+
// Static info types — emitted once
|
|
13
|
+
blocks.push(emitCreateInfo());
|
|
14
|
+
blocks.push(emitUpdateInfo());
|
|
15
|
+
blocks.push(emitMutationInfoSelectFields());
|
|
16
|
+
// Per-node mutation responses (sorted alphabetically)
|
|
17
|
+
const sortedNodes = [...schema.nodes.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
18
|
+
for (const [, node] of sortedNodes) {
|
|
19
|
+
const pascalPlural = toPascalPlural(node.pluralName);
|
|
20
|
+
blocks.push(`export type Create${pascalPlural}MutationResponse = {\n` +
|
|
21
|
+
` info: CreateInfo;\n` +
|
|
22
|
+
` ${node.pluralName}: Array<${node.typeName}>;\n` +
|
|
23
|
+
`};`);
|
|
24
|
+
blocks.push(`export type Update${pascalPlural}MutationResponse = {\n` +
|
|
25
|
+
` info: UpdateInfo;\n` +
|
|
26
|
+
` ${node.pluralName}: Array<${node.typeName}>;\n` +
|
|
27
|
+
`};`);
|
|
28
|
+
// Per-node mutation select fields
|
|
29
|
+
blocks.push(`export type ${node.typeName}MutationSelectFields = {\n` +
|
|
30
|
+
` info?: MutationInfoSelectFields;\n` +
|
|
31
|
+
` ${node.pluralName}?: ${node.typeName}SelectFields;\n` +
|
|
32
|
+
`};`);
|
|
33
|
+
}
|
|
34
|
+
return blocks.join('\n\n');
|
|
35
|
+
}
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
// Helpers
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
function emitMutationInfoSelectFields() {
|
|
40
|
+
return `export type MutationInfoSelectFields = {
|
|
41
|
+
nodesCreated?: boolean;
|
|
42
|
+
nodesDeleted?: boolean;
|
|
43
|
+
relationshipsCreated?: boolean;
|
|
44
|
+
relationshipsDeleted?: boolean;
|
|
45
|
+
};`;
|
|
46
|
+
}
|
|
47
|
+
function emitCreateInfo() {
|
|
48
|
+
return `export type CreateInfo = {
|
|
49
|
+
nodesCreated: Scalars["Int"]["output"];
|
|
50
|
+
nodesDeleted?: Scalars["Int"]["output"];
|
|
51
|
+
relationshipsCreated: Scalars["Int"]["output"];
|
|
52
|
+
relationshipsDeleted?: Scalars["Int"]["output"];
|
|
53
|
+
};`;
|
|
54
|
+
}
|
|
55
|
+
function emitUpdateInfo() {
|
|
56
|
+
return `export type UpdateInfo = {
|
|
57
|
+
nodesCreated: Scalars["Int"]["output"];
|
|
58
|
+
nodesDeleted?: Scalars["Int"]["output"];
|
|
59
|
+
relationshipsCreated: Scalars["Int"]["output"];
|
|
60
|
+
relationshipsDeleted?: Scalars["Int"]["output"];
|
|
61
|
+
};`;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Converts a plural name (e.g. `charts`) to PascalCase (`Charts`).
|
|
65
|
+
*/
|
|
66
|
+
function toPascalPlural(pluralName) {
|
|
67
|
+
return pluralName.charAt(0).toUpperCase() + pluralName.slice(1);
|
|
68
|
+
}
|
|
69
|
+
//# 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":";;AAQA,8DAwCC;AA9CD;;;;;GAKG;AACH,SAAgB,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,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.emitNodeTypes = emitNodeTypes;
|
|
4
|
+
const helpers_1 = require("./helpers");
|
|
5
|
+
/**
|
|
6
|
+
* Emits one `export type <Node> = { ... }` declaration per node in the
|
|
7
|
+
* schema, sorted alphabetically.
|
|
8
|
+
*
|
|
9
|
+
* Each type includes:
|
|
10
|
+
* - `__typename?: "<TypeName>"`
|
|
11
|
+
* - Scalar properties (skipping `@cypher` fields)
|
|
12
|
+
* - Relationship fields (array or singular, required or optional)
|
|
13
|
+
* - Connection fields for every relationship
|
|
14
|
+
*/
|
|
15
|
+
function emitNodeTypes(schema) {
|
|
16
|
+
const blocks = [];
|
|
17
|
+
const sortedNodes = [...schema.nodes.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
18
|
+
for (const [, node] of sortedNodes)
|
|
19
|
+
blocks.push(emitSingleNodeType(node, schema));
|
|
20
|
+
// Union types (sorted alphabetically)
|
|
21
|
+
const sortedUnions = [...(schema.unions?.entries() ?? [])].sort(([a], [b]) => a.localeCompare(b));
|
|
22
|
+
for (const [name, members] of sortedUnions)
|
|
23
|
+
blocks.push(`export type ${name} = ${members.join(' | ')};`);
|
|
24
|
+
// Relationship-property base types (sorted alphabetically)
|
|
25
|
+
const sortedRelProps = [...schema.relationshipProperties.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
26
|
+
for (const [, relProp] of sortedRelProps) {
|
|
27
|
+
const members = [];
|
|
28
|
+
for (const [, prop] of relProp.properties) {
|
|
29
|
+
if (prop.isCypher)
|
|
30
|
+
continue;
|
|
31
|
+
members.push(emitPropertyField(prop, schema));
|
|
32
|
+
}
|
|
33
|
+
blocks.push(`export type ${relProp.typeName} = {\n${members.join('\n')}\n};`);
|
|
34
|
+
}
|
|
35
|
+
return blocks.join('\n\n');
|
|
36
|
+
}
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
// Helpers
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
function emitSingleNodeType(node, schema) {
|
|
41
|
+
const members = [];
|
|
42
|
+
// __typename (always optional)
|
|
43
|
+
members.push(` __typename?: "${node.typeName}";`);
|
|
44
|
+
// --- Scalar properties ---
|
|
45
|
+
for (const [, prop] of node.properties) {
|
|
46
|
+
if (prop.isCypher) {
|
|
47
|
+
// @cypher fields are computed — emit as always-optional
|
|
48
|
+
members.push(emitCypherField(prop, schema));
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
members.push(emitPropertyField(prop, schema));
|
|
52
|
+
}
|
|
53
|
+
// --- Relationship fields ---
|
|
54
|
+
for (const [, rel] of node.relationships) {
|
|
55
|
+
members.push(emitAggregateField(node.typeName, rel));
|
|
56
|
+
members.push(emitRelationshipField(rel));
|
|
57
|
+
members.push(emitConnectionField(node.typeName, rel));
|
|
58
|
+
}
|
|
59
|
+
return `export type ${node.typeName} = {\n${members.join('\n')}\n};`;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Emits a @cypher computed field as always-optional.
|
|
63
|
+
*
|
|
64
|
+
* @cypher fields may return scalars or node types (arrays or singular).
|
|
65
|
+
* They are always optional since they're only present when explicitly queried.
|
|
66
|
+
*/
|
|
67
|
+
function emitCypherField(prop, schema) {
|
|
68
|
+
const isNodeType = schema.nodes.has(prop.type);
|
|
69
|
+
const tsType = isNodeType
|
|
70
|
+
? prop.type
|
|
71
|
+
: (0, helpers_1.mapScalarType)(prop.type, schema.enums);
|
|
72
|
+
const wrapped = prop.isArray ? `Maybe<Array<${tsType}>>` : `Maybe<${tsType}>`;
|
|
73
|
+
return ` ${prop.name}?: ${wrapped};`;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Emits a single scalar property line.
|
|
77
|
+
*
|
|
78
|
+
* Examples:
|
|
79
|
+
* ` id: Scalars["ID"]["output"];`
|
|
80
|
+
* ` name?: Maybe<Scalars["String"]["output"]>;`
|
|
81
|
+
*/
|
|
82
|
+
function emitPropertyField(prop, schema) {
|
|
83
|
+
const tsType = (0, helpers_1.mapScalarType)(prop.type, schema.enums);
|
|
84
|
+
const wrapped = prop.isArray ? `Array<${tsType}>` : tsType;
|
|
85
|
+
const final = (0, helpers_1.wrapMaybe)(wrapped, prop.required);
|
|
86
|
+
const optional = prop.required ? '' : '?';
|
|
87
|
+
return ` ${prop.name}${optional}: ${final};`;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Emits the relationship field line.
|
|
91
|
+
*
|
|
92
|
+
* Array relationships → ` drugs: Array<Drug>;`
|
|
93
|
+
* Singular required → ` hasStatus: Status;`
|
|
94
|
+
* Singular optional → ` resource?: Maybe<Resource>;`
|
|
95
|
+
*/
|
|
96
|
+
function emitRelationshipField(rel) {
|
|
97
|
+
if (rel.isArray)
|
|
98
|
+
return ` ${rel.fieldName}: Array<${rel.target}>;`;
|
|
99
|
+
const optional = rel.isRequired ? '' : '?';
|
|
100
|
+
const type = (0, helpers_1.wrapMaybe)(rel.target, rel.isRequired);
|
|
101
|
+
return ` ${rel.fieldName}${optional}: ${type};`;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Emits the aggregate field for a relationship.
|
|
105
|
+
*
|
|
106
|
+
* Example: ` drugsAggregate?: Maybe<ChartDrugDrugsAggregationSelection>;`
|
|
107
|
+
*/
|
|
108
|
+
function emitAggregateField(typeName, rel) {
|
|
109
|
+
const pascalField = (0, helpers_1.toPascalCase)(rel.fieldName);
|
|
110
|
+
const aggType = `${typeName}${rel.target}${pascalField}AggregationSelection`;
|
|
111
|
+
return ` ${rel.fieldName}Aggregate?: Maybe<${aggType}>;`;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Emits the connection field for a relationship.
|
|
115
|
+
*
|
|
116
|
+
* Example: ` drugsConnection: ChartDrugsConnection;`
|
|
117
|
+
*/
|
|
118
|
+
function emitConnectionField(typeName, rel) {
|
|
119
|
+
const pascalField = (0, helpers_1.toPascalCase)(rel.fieldName);
|
|
120
|
+
const connectionType = `${typeName}${pascalField}Connection`;
|
|
121
|
+
return ` ${rel.fieldName}Connection: ${connectionType};`;
|
|
122
|
+
}
|
|
123
|
+
//# 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"}
|