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,270 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.emitConnectionWhereTypes = emitConnectionWhereTypes;
|
|
4
|
+
exports.emitConnectionEdgeTypes = emitConnectionEdgeTypes;
|
|
5
|
+
const helpers_1 = require("./helpers");
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Connection Where types
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
/**
|
|
10
|
+
* Emits `{Parent}{PascalField}ConnectionWhere` types for every relationship
|
|
11
|
+
* on every node in the schema.
|
|
12
|
+
*
|
|
13
|
+
* Each ConnectionWhere type contains:
|
|
14
|
+
* - `node` / `node_NOT` — target node Where filter
|
|
15
|
+
* - `edge` / `edge_NOT` — edge property Where filter (only when relationship has properties)
|
|
16
|
+
* - `AND` / `OR` / `NOT` — logical operators
|
|
17
|
+
*/
|
|
18
|
+
function emitConnectionWhereTypes(schema) {
|
|
19
|
+
const blocks = [];
|
|
20
|
+
const sortedNodes = [...schema.nodes.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
21
|
+
for (const [, node] of sortedNodes) {
|
|
22
|
+
const sortedRels = [...node.relationships.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
23
|
+
for (const [, rel] of sortedRels) {
|
|
24
|
+
const unionMembers = schema.unions?.get(rel.target);
|
|
25
|
+
if (unionMembers)
|
|
26
|
+
// Union target → emit per-member ConnectionWhere types
|
|
27
|
+
blocks.push(...emitUnionConnectionWheres(node.typeName, rel, unionMembers, schema));
|
|
28
|
+
else
|
|
29
|
+
blocks.push(emitConnectionWhere(node.typeName, rel, schema));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Interface connection where types
|
|
33
|
+
const sortedInterfaces = [...schema.interfaces.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
34
|
+
for (const [, iface] of sortedInterfaces) {
|
|
35
|
+
const sortedRels = [...iface.relationships.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
36
|
+
for (const [, rel] of sortedRels)
|
|
37
|
+
blocks.push(emitInterfaceConnectionWhere(iface.name, rel, schema));
|
|
38
|
+
}
|
|
39
|
+
return blocks.join('\n\n');
|
|
40
|
+
}
|
|
41
|
+
function emitConnectionWhere(parentType, rel, schema) {
|
|
42
|
+
const pascalField = (0, helpers_1.toPascalCase)(rel.fieldName);
|
|
43
|
+
const typeName = `${parentType}${pascalField}ConnectionWhere`;
|
|
44
|
+
const lines = [];
|
|
45
|
+
// node filters
|
|
46
|
+
lines.push(` node?: InputMaybe<${rel.target}Where>;`);
|
|
47
|
+
lines.push(` node_NOT?: InputMaybe<${rel.target}Where>;`);
|
|
48
|
+
// edge filters (only when relationship has properties)
|
|
49
|
+
if (rel.properties) {
|
|
50
|
+
const edgeWhereName = resolveEdgeWhereName(rel.properties, schema);
|
|
51
|
+
lines.push(` edge?: InputMaybe<${edgeWhereName}>;`);
|
|
52
|
+
lines.push(` edge_NOT?: InputMaybe<${edgeWhereName}>;`);
|
|
53
|
+
}
|
|
54
|
+
// Logical operators
|
|
55
|
+
lines.push(` AND?: InputMaybe<Array<${typeName}>>;`);
|
|
56
|
+
lines.push(` OR?: InputMaybe<Array<${typeName}>>;`);
|
|
57
|
+
lines.push(` NOT?: InputMaybe<${typeName}>;`);
|
|
58
|
+
return `export type ${typeName} = {\n${lines.join('\n')}\n};`;
|
|
59
|
+
}
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
// Connection & Edge (Relationship) types
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
/**
|
|
64
|
+
* Emits Connection, Relationship (edge), and PageInfo types.
|
|
65
|
+
*
|
|
66
|
+
* For each relationship on each node:
|
|
67
|
+
* - `{Parent}{PascalField}Connection` — edges array, totalCount, pageInfo
|
|
68
|
+
* - `{Parent}{PascalField}Relationship` — cursor, node, and optional properties
|
|
69
|
+
*
|
|
70
|
+
* Also emits the `PageInfo` type exactly once.
|
|
71
|
+
*/
|
|
72
|
+
function emitConnectionEdgeTypes(schema) {
|
|
73
|
+
const blocks = [];
|
|
74
|
+
// PageInfo (emitted once at the top)
|
|
75
|
+
blocks.push(emitPageInfo());
|
|
76
|
+
const sortedNodes = [...schema.nodes.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
77
|
+
for (const [, node] of sortedNodes) {
|
|
78
|
+
const sortedRels = [...node.relationships.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
79
|
+
for (const [, rel] of sortedRels) {
|
|
80
|
+
const unionMembers = schema.unions?.get(rel.target);
|
|
81
|
+
if (unionMembers)
|
|
82
|
+
blocks.push(...emitUnionConnectionAndRelationships(node.typeName, rel, unionMembers));
|
|
83
|
+
else
|
|
84
|
+
blocks.push(emitConnectionAndRelationship(node.typeName, rel));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Interface connection/edge types
|
|
88
|
+
const sortedInterfaces = [...schema.interfaces.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
89
|
+
for (const [, iface] of sortedInterfaces) {
|
|
90
|
+
const sortedRels = [...iface.relationships.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
91
|
+
for (const [, rel] of sortedRels)
|
|
92
|
+
blocks.push(emitInterfaceConnectionAndRelationship(iface.name, rel, schema));
|
|
93
|
+
}
|
|
94
|
+
return blocks.join('\n\n');
|
|
95
|
+
}
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
// Helpers
|
|
98
|
+
// ---------------------------------------------------------------------------
|
|
99
|
+
function emitPageInfo() {
|
|
100
|
+
return `export type PageInfo = {
|
|
101
|
+
hasNextPage: Scalars["Boolean"]["output"];
|
|
102
|
+
hasPreviousPage: Scalars["Boolean"]["output"];
|
|
103
|
+
startCursor?: Maybe<Scalars["String"]["output"]>;
|
|
104
|
+
endCursor?: Maybe<Scalars["String"]["output"]>;
|
|
105
|
+
};`;
|
|
106
|
+
}
|
|
107
|
+
function emitConnectionAndRelationship(parentType, rel) {
|
|
108
|
+
const pascalField = (0, helpers_1.toPascalCase)(rel.fieldName);
|
|
109
|
+
const connectionName = `${parentType}${pascalField}Connection`;
|
|
110
|
+
const relationshipName = `${parentType}${pascalField}Relationship`;
|
|
111
|
+
// Connection type
|
|
112
|
+
const connectionType = `export type ${connectionName} = {
|
|
113
|
+
edges: Array<${relationshipName}>;
|
|
114
|
+
totalCount: Scalars["Int"]["output"];
|
|
115
|
+
pageInfo: PageInfo;
|
|
116
|
+
};`;
|
|
117
|
+
// Relationship type
|
|
118
|
+
const relLines = [];
|
|
119
|
+
relLines.push(` cursor: Scalars["String"]["output"];`);
|
|
120
|
+
relLines.push(` node: ${rel.target};`);
|
|
121
|
+
if (rel.properties)
|
|
122
|
+
relLines.push(` properties: ${rel.properties};`);
|
|
123
|
+
const relationshipType = `export type ${relationshipName} = {\n${relLines.join('\n')}\n};`;
|
|
124
|
+
return `${connectionType}\n\n${relationshipType}`;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Resolves the Where type name for edge properties.
|
|
128
|
+
*
|
|
129
|
+
* Uses `{RelPropsTypeName}Where` — matching Neo4j OGM convention where the
|
|
130
|
+
* relationship-properties type name is suffixed with `Where`.
|
|
131
|
+
*/
|
|
132
|
+
function resolveEdgeWhereName(propsTypeName, _schema) {
|
|
133
|
+
return `${propsTypeName}Where`;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* For an interface relationship, find the edge properties type name used by
|
|
137
|
+
* any concrete implementor. Returns `undefined` if none of the implementors
|
|
138
|
+
* have edge properties for this relationship field.
|
|
139
|
+
*/
|
|
140
|
+
function findInterfaceRelEdgeProps(interfaceName, fieldName, schema) {
|
|
141
|
+
const iface = schema.interfaces.get(interfaceName);
|
|
142
|
+
if (!iface)
|
|
143
|
+
return undefined;
|
|
144
|
+
for (const implName of iface.implementedBy) {
|
|
145
|
+
const node = schema.nodes.get(implName);
|
|
146
|
+
if (!node)
|
|
147
|
+
continue;
|
|
148
|
+
const rel = node.relationships.get(fieldName);
|
|
149
|
+
if (rel?.properties)
|
|
150
|
+
return rel.properties;
|
|
151
|
+
}
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Emits ConnectionWhere for interface relationships.
|
|
156
|
+
* When implementors have edge properties, emits an intermediate EdgeWhere
|
|
157
|
+
* type with a discriminator key (the properties type name).
|
|
158
|
+
*/
|
|
159
|
+
function emitInterfaceConnectionWhere(interfaceName, rel, schema) {
|
|
160
|
+
const pascalField = (0, helpers_1.toPascalCase)(rel.fieldName);
|
|
161
|
+
const typeName = `${interfaceName}${pascalField}ConnectionWhere`;
|
|
162
|
+
const lines = [];
|
|
163
|
+
// node filters
|
|
164
|
+
lines.push(` node?: InputMaybe<${rel.target}Where>;`);
|
|
165
|
+
lines.push(` node_NOT?: InputMaybe<${rel.target}Where>;`);
|
|
166
|
+
// edge filters — check concrete implementors for edge properties
|
|
167
|
+
const edgeProps = findInterfaceRelEdgeProps(interfaceName, rel.fieldName, schema);
|
|
168
|
+
if (edgeProps) {
|
|
169
|
+
const edgeWhereName = `${interfaceName}${pascalField}EdgeWhere`;
|
|
170
|
+
lines.push(` edge?: InputMaybe<${edgeWhereName}>;`);
|
|
171
|
+
lines.push(` edge_NOT?: InputMaybe<${edgeWhereName}>;`);
|
|
172
|
+
}
|
|
173
|
+
// Logical operators
|
|
174
|
+
lines.push(` AND?: InputMaybe<Array<${typeName}>>;`);
|
|
175
|
+
lines.push(` OR?: InputMaybe<Array<${typeName}>>;`);
|
|
176
|
+
lines.push(` NOT?: InputMaybe<${typeName}>;`);
|
|
177
|
+
const blocks = [];
|
|
178
|
+
blocks.push(`export type ${typeName} = {\n${lines.join('\n')}\n};`);
|
|
179
|
+
// Emit the intermediate EdgeWhere type if needed
|
|
180
|
+
if (edgeProps)
|
|
181
|
+
blocks.push(`export type ${interfaceName}${pascalField}EdgeWhere = {\n` +
|
|
182
|
+
` ${edgeProps}?: InputMaybe<${edgeProps}Where>;\n` +
|
|
183
|
+
`};`);
|
|
184
|
+
return blocks.join('\n\n');
|
|
185
|
+
}
|
|
186
|
+
// ---------------------------------------------------------------------------
|
|
187
|
+
// Union-target per-member Connection types
|
|
188
|
+
// ---------------------------------------------------------------------------
|
|
189
|
+
/**
|
|
190
|
+
* For union-target relationships, emits per-member ConnectionWhere types.
|
|
191
|
+
* e.g., DoseDoseTypesStandardDoseConnectionWhere
|
|
192
|
+
*/
|
|
193
|
+
function emitUnionConnectionWheres(parentType, rel, members, schema) {
|
|
194
|
+
const pascalField = (0, helpers_1.toPascalCase)(rel.fieldName);
|
|
195
|
+
const prefix = `${parentType}${pascalField}`;
|
|
196
|
+
const blocks = [];
|
|
197
|
+
// Also emit the top-level ConnectionWhere (used by Where types)
|
|
198
|
+
blocks.push(emitConnectionWhere(parentType, rel, schema));
|
|
199
|
+
for (const m of [...members].sort()) {
|
|
200
|
+
const typeName = `${prefix}${m}ConnectionWhere`;
|
|
201
|
+
const lines = [];
|
|
202
|
+
lines.push(` node?: InputMaybe<${m}Where>;`);
|
|
203
|
+
lines.push(` node_NOT?: InputMaybe<${m}Where>;`);
|
|
204
|
+
if (rel.properties) {
|
|
205
|
+
const edgeWhereName = `${rel.properties}Where`;
|
|
206
|
+
lines.push(` edge?: InputMaybe<${edgeWhereName}>;`);
|
|
207
|
+
lines.push(` edge_NOT?: InputMaybe<${edgeWhereName}>;`);
|
|
208
|
+
}
|
|
209
|
+
lines.push(` AND?: InputMaybe<Array<${typeName}>>;`);
|
|
210
|
+
lines.push(` OR?: InputMaybe<Array<${typeName}>>;`);
|
|
211
|
+
lines.push(` NOT?: InputMaybe<${typeName}>;`);
|
|
212
|
+
blocks.push(`export type ${typeName} = {\n${lines.join('\n')}\n};`);
|
|
213
|
+
}
|
|
214
|
+
return blocks;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* For union-target relationships, emits per-member Connection and Relationship types.
|
|
218
|
+
*/
|
|
219
|
+
function emitUnionConnectionAndRelationships(parentType, rel, _members) {
|
|
220
|
+
const pascalField = (0, helpers_1.toPascalCase)(rel.fieldName);
|
|
221
|
+
const prefix = `${parentType}${pascalField}`;
|
|
222
|
+
const blocks = [];
|
|
223
|
+
// Top-level Connection type
|
|
224
|
+
const connectionName = `${prefix}Connection`;
|
|
225
|
+
const relationshipName = `${prefix}Relationship`;
|
|
226
|
+
blocks.push(`export type ${connectionName} = {\n` +
|
|
227
|
+
` edges: Array<${relationshipName}>;\n` +
|
|
228
|
+
` totalCount: Scalars["Int"]["output"];\n` +
|
|
229
|
+
` pageInfo: PageInfo;\n` +
|
|
230
|
+
`};`);
|
|
231
|
+
// Top-level Relationship type
|
|
232
|
+
const relLines = [];
|
|
233
|
+
relLines.push(` cursor: Scalars["String"]["output"];`);
|
|
234
|
+
relLines.push(` node: ${rel.target};`);
|
|
235
|
+
if (rel.properties)
|
|
236
|
+
relLines.push(` properties: ${rel.properties};`);
|
|
237
|
+
blocks.push(`export type ${relationshipName} = {\n${relLines.join('\n')}\n};`);
|
|
238
|
+
return blocks;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Emits Connection and Relationship types for interface relationships.
|
|
242
|
+
*/
|
|
243
|
+
function emitInterfaceConnectionAndRelationship(interfaceName, rel, schema) {
|
|
244
|
+
const pascalField = (0, helpers_1.toPascalCase)(rel.fieldName);
|
|
245
|
+
const connectionName = `${interfaceName}${pascalField}Connection`;
|
|
246
|
+
const relationshipName = `${interfaceName}${pascalField}Relationship`;
|
|
247
|
+
// Connection type
|
|
248
|
+
const connectionType = `export type ${connectionName} = {\n` +
|
|
249
|
+
` edges: Array<${relationshipName}>;\n` +
|
|
250
|
+
` totalCount: Scalars["Int"]["output"];\n` +
|
|
251
|
+
` pageInfo: PageInfo;\n` +
|
|
252
|
+
`};`;
|
|
253
|
+
// Relationship type
|
|
254
|
+
const relLines = [];
|
|
255
|
+
relLines.push(` cursor: Scalars["String"]["output"];`);
|
|
256
|
+
relLines.push(` node: ${rel.target};`);
|
|
257
|
+
// Check if any implementor uses edge properties for this field
|
|
258
|
+
const edgeProps = findInterfaceRelEdgeProps(interfaceName, rel.fieldName, schema);
|
|
259
|
+
if (edgeProps) {
|
|
260
|
+
const propsAlias = `${interfaceName}${pascalField}RelationshipProperties`;
|
|
261
|
+
relLines.push(` properties: ${propsAlias};`);
|
|
262
|
+
}
|
|
263
|
+
const relationshipType = `export type ${relationshipName} = {\n${relLines.join('\n')}\n};`;
|
|
264
|
+
const blocks = [connectionType, relationshipType];
|
|
265
|
+
// Emit RelationshipProperties alias if needed
|
|
266
|
+
if (edgeProps)
|
|
267
|
+
blocks.push(`export type ${interfaceName}${pascalField}RelationshipProperties = ${edgeProps};`);
|
|
268
|
+
return blocks.join('\n\n');
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=connection-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/connection-emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SchemaMetadata } from '../../schema/types';
|
|
2
|
+
/**
|
|
3
|
+
* Emits TypeScript `enum` declarations for every enum found in the schema,
|
|
4
|
+
* plus the always-present `SortDirection` enum.
|
|
5
|
+
*/
|
|
6
|
+
export declare function emitEnums(schema: SchemaMetadata): string;
|
|
7
|
+
//# sourceMappingURL=enum-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/enum-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAuBzD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAsBxD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.emitEnums = emitEnums;
|
|
4
|
+
/**
|
|
5
|
+
* Converts an UPPER_SNAKE_CASE enum value to PascalCase.
|
|
6
|
+
* Values that are already PascalCase (or mixed case) are returned as-is.
|
|
7
|
+
*
|
|
8
|
+
* Examples:
|
|
9
|
+
* - `WELCOME` → `Welcome`
|
|
10
|
+
* - `PENDING_APPROVAL` → `PendingApproval`
|
|
11
|
+
* - `US_BANK_ACCOUNT` → `UsBankAccount`
|
|
12
|
+
* - `Chart` → `Chart` (already PascalCase)
|
|
13
|
+
*/
|
|
14
|
+
function toPascalCaseEnum(value) {
|
|
15
|
+
// If the value is not all-uppercase (possibly with underscores/digits),
|
|
16
|
+
// it's already in a mixed case format — return as-is
|
|
17
|
+
if (value !== value.toUpperCase())
|
|
18
|
+
return value;
|
|
19
|
+
return value
|
|
20
|
+
.split('_')
|
|
21
|
+
.map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase())
|
|
22
|
+
.join('');
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Emits TypeScript `enum` declarations for every enum found in the schema,
|
|
26
|
+
* plus the always-present `SortDirection` enum.
|
|
27
|
+
*/
|
|
28
|
+
function emitEnums(schema) {
|
|
29
|
+
const blocks = [];
|
|
30
|
+
// Schema-defined enums (sorted alphabetically)
|
|
31
|
+
const sortedNames = [...schema.enums.keys()].sort();
|
|
32
|
+
for (const name of sortedNames) {
|
|
33
|
+
const values = schema.enums.get(name);
|
|
34
|
+
const members = values
|
|
35
|
+
.map((v) => ` ${toPascalCaseEnum(v)} = "${v}",`)
|
|
36
|
+
.join('\n');
|
|
37
|
+
blocks.push(`export enum ${name} {\n${members}\n}`);
|
|
38
|
+
}
|
|
39
|
+
// SortDirection is always emitted (skip if the schema already declares it)
|
|
40
|
+
// Uses Asc/Desc PascalCase for backward compatibility with @neo4j/graphql-ogm
|
|
41
|
+
if (!schema.enums.has('SortDirection'))
|
|
42
|
+
blocks.push(`export enum SortDirection {\n Asc = "ASC",\n Desc = "DESC",\n}`);
|
|
43
|
+
return blocks.join('\n\n');
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=enum-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/enum-emitter.ts"],"names":[],"mappings":";;AA2BA,8BAsBC;AA/CD;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,wEAAwE;IACxE,qDAAqD;IACrD,IAAI,KAAK,KAAK,KAAK,CAAC,WAAW,EAAE;QAAE,OAAO,KAAK,CAAC;IAEhD,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACzE,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,MAAsB;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,+CAA+C;IAC/C,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEpD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;aAChD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,OAAO,OAAO,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,2EAA2E;IAC3E,8EAA8E;IAC9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;QACpC,MAAM,CAAC,IAAI,CACT,kEAAkE,CACnE,CAAC;IAEJ,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SchemaMetadata } from '../../schema/types';
|
|
2
|
+
/**
|
|
3
|
+
* Emits fulltext-related types for every node that declares at least one
|
|
4
|
+
* `@fulltext` index:
|
|
5
|
+
*
|
|
6
|
+
* - `<Node>FulltextResult` — score + the matched node
|
|
7
|
+
* - `<Node>FulltextWhere` — filtering by score and node-level where
|
|
8
|
+
* - `<Node>FulltextSort` — sorting by score and node-level sort
|
|
9
|
+
*
|
|
10
|
+
* Also emits the shared `FloatWhere` type used for score filtering.
|
|
11
|
+
*
|
|
12
|
+
* Returns an empty string when no nodes have fulltext indexes.
|
|
13
|
+
*/
|
|
14
|
+
export declare function emitFulltextTypes(schema: SchemaMetadata): string;
|
|
15
|
+
//# sourceMappingURL=fulltext-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fulltext-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/fulltext-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,oBAAoB,CAAC;AAMzE;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAchE"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.emitFulltextTypes = emitFulltextTypes;
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Public API
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
/**
|
|
8
|
+
* Emits fulltext-related types for every node that declares at least one
|
|
9
|
+
* `@fulltext` index:
|
|
10
|
+
*
|
|
11
|
+
* - `<Node>FulltextResult` — score + the matched node
|
|
12
|
+
* - `<Node>FulltextWhere` — filtering by score and node-level where
|
|
13
|
+
* - `<Node>FulltextSort` — sorting by score and node-level sort
|
|
14
|
+
*
|
|
15
|
+
* Also emits the shared `FloatWhere` type used for score filtering.
|
|
16
|
+
*
|
|
17
|
+
* Returns an empty string when no nodes have fulltext indexes.
|
|
18
|
+
*/
|
|
19
|
+
function emitFulltextTypes(schema) {
|
|
20
|
+
const nodesWithFulltext = getNodesWithFulltext(schema);
|
|
21
|
+
if (nodesWithFulltext.length === 0)
|
|
22
|
+
return '';
|
|
23
|
+
const blocks = [FLOAT_WHERE_TYPE];
|
|
24
|
+
for (const node of nodesWithFulltext) {
|
|
25
|
+
blocks.push(emitFulltextResult(node));
|
|
26
|
+
blocks.push(emitFulltextWhere(node));
|
|
27
|
+
blocks.push(emitFulltextSort(node));
|
|
28
|
+
}
|
|
29
|
+
return blocks.join('\n\n');
|
|
30
|
+
}
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Shared types
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
const FLOAT_WHERE_TYPE = `export type FloatWhere = {
|
|
35
|
+
min?: InputMaybe<Scalars["Float"]["input"]>;
|
|
36
|
+
max?: InputMaybe<Scalars["Float"]["input"]>;
|
|
37
|
+
};`;
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
// Helpers
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
/**
|
|
42
|
+
* Returns all nodes that have at least one fulltext index,
|
|
43
|
+
* sorted alphabetically by type name.
|
|
44
|
+
*/
|
|
45
|
+
function getNodesWithFulltext(schema) {
|
|
46
|
+
return [...schema.nodes.values()]
|
|
47
|
+
.filter((node) => node.fulltextIndexes.length > 0)
|
|
48
|
+
.sort((a, b) => a.typeName.localeCompare(b.typeName));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Converts a PascalCase type name to camelCase for the result field name.
|
|
52
|
+
* e.g. `Book` → `book`, `BookCategory` → `bookCategory`
|
|
53
|
+
*/
|
|
54
|
+
function toCamelCase(typeName) {
|
|
55
|
+
return typeName.charAt(0).toLowerCase() + typeName.slice(1);
|
|
56
|
+
}
|
|
57
|
+
function emitFulltextResult(node) {
|
|
58
|
+
const fieldName = toCamelCase(node.typeName);
|
|
59
|
+
return `export type ${node.typeName}FulltextResult = {
|
|
60
|
+
__typename?: "${node.typeName}FulltextResult";
|
|
61
|
+
score: Scalars["Float"]["output"];
|
|
62
|
+
${fieldName}: ${node.typeName};
|
|
63
|
+
};`;
|
|
64
|
+
}
|
|
65
|
+
function emitFulltextWhere(node) {
|
|
66
|
+
const fieldName = toCamelCase(node.typeName);
|
|
67
|
+
return `/** The input for filtering a fulltext query on an index of ${node.typeName} */
|
|
68
|
+
export type ${node.typeName}FulltextWhere = {
|
|
69
|
+
score?: InputMaybe<FloatWhere>;
|
|
70
|
+
${fieldName}?: InputMaybe<${node.typeName}Where>;
|
|
71
|
+
};`;
|
|
72
|
+
}
|
|
73
|
+
function emitFulltextSort(node) {
|
|
74
|
+
const fieldName = toCamelCase(node.typeName);
|
|
75
|
+
return `export type ${node.typeName}FulltextSort = {
|
|
76
|
+
score?: InputMaybe<SortDirection>;
|
|
77
|
+
${fieldName}?: InputMaybe<${node.typeName}Sort>;
|
|
78
|
+
};`;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=fulltext-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fulltext-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/fulltext-emitter.ts"],"names":[],"mappings":";;AAkBA,8CAcC;AA9BD,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,SAAgB,iBAAiB,CAAC,MAAsB;IACtD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAEvD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE9C,MAAM,MAAM,GAAa,CAAC,gBAAgB,CAAC,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,gBAAgB,GAAG;;;GAGtB,CAAC;AAEJ,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,oBAAoB,CAAC,MAAsB;IAClD,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SAC9B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;SACjD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAoB;IAC9C,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE7C,OAAO,eAAe,IAAI,CAAC,QAAQ;kBACnB,IAAI,CAAC,QAAQ;;IAE3B,SAAS,KAAK,IAAI,CAAC,QAAQ;GAC5B,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAoB;IAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE7C,OAAO,+DAA+D,IAAI,CAAC,QAAQ;cACvE,IAAI,CAAC,QAAQ;;IAEvB,SAAS,iBAAiB,IAAI,CAAC,QAAQ;GACxC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAoB;IAC5C,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE7C,OAAO,eAAe,IAAI,CAAC,QAAQ;;IAEjC,SAAS,iBAAiB,IAAI,CAAC,QAAQ;GACxC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for type emitters — GraphQL-to-TypeScript type mapping
|
|
3
|
+
* and common formatting utilities.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Returns `true` when `typeName` is one of the built-in GraphQL scalars
|
|
7
|
+
* (`ID`, `String`, `Int`, `Float`, `Boolean`, `DateTime`, `BigInt`,
|
|
8
|
+
* `Date`, `Time`, `LocalTime`, `LocalDateTime`, `Duration`, `Point`,
|
|
9
|
+
* `CartesianPoint`).
|
|
10
|
+
*/
|
|
11
|
+
export declare function isBuiltInScalar(typeName: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Maps a GraphQL scalar type name to its TypeScript output representation.
|
|
14
|
+
*
|
|
15
|
+
* Built-in scalars → `Scalars["<TYPE>"]["output"]`
|
|
16
|
+
* Enum / other types → used directly (the type name itself).
|
|
17
|
+
*/
|
|
18
|
+
export declare function mapScalarType(typeName: string, enums: Map<string, string[]>): string;
|
|
19
|
+
/**
|
|
20
|
+
* Wraps `inner` in `Maybe<>` when the field is optional.
|
|
21
|
+
*/
|
|
22
|
+
export declare function wrapMaybe(inner: string, required: boolean): string;
|
|
23
|
+
/**
|
|
24
|
+
* Converts a field name to PascalCase (first letter uppercased).
|
|
25
|
+
*
|
|
26
|
+
* Examples:
|
|
27
|
+
* - `drugs` → `Drugs`
|
|
28
|
+
* - `hasStatus` → `HasStatus`
|
|
29
|
+
* - `isDescribedBy` → `IsDescribedBy`
|
|
30
|
+
*/
|
|
31
|
+
export declare function toPascalCase(fieldName: string): string;
|
|
32
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC3B,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAElE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtD"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared helpers for type emitters — GraphQL-to-TypeScript type mapping
|
|
4
|
+
* and common formatting utilities.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.isBuiltInScalar = isBuiltInScalar;
|
|
8
|
+
exports.mapScalarType = mapScalarType;
|
|
9
|
+
exports.wrapMaybe = wrapMaybe;
|
|
10
|
+
exports.toPascalCase = toPascalCase;
|
|
11
|
+
/** Built-in GraphQL scalar names that map to `Scalars[TYPE]["output"]`. */
|
|
12
|
+
const SCALAR_TYPES = new Set([
|
|
13
|
+
'ID',
|
|
14
|
+
'String',
|
|
15
|
+
'Int',
|
|
16
|
+
'Float',
|
|
17
|
+
'Boolean',
|
|
18
|
+
'DateTime',
|
|
19
|
+
'BigInt',
|
|
20
|
+
'Date',
|
|
21
|
+
'Time',
|
|
22
|
+
'LocalTime',
|
|
23
|
+
'LocalDateTime',
|
|
24
|
+
'Duration',
|
|
25
|
+
'Point',
|
|
26
|
+
'CartesianPoint',
|
|
27
|
+
]);
|
|
28
|
+
/**
|
|
29
|
+
* Returns `true` when `typeName` is one of the built-in GraphQL scalars
|
|
30
|
+
* (`ID`, `String`, `Int`, `Float`, `Boolean`, `DateTime`, `BigInt`,
|
|
31
|
+
* `Date`, `Time`, `LocalTime`, `LocalDateTime`, `Duration`, `Point`,
|
|
32
|
+
* `CartesianPoint`).
|
|
33
|
+
*/
|
|
34
|
+
function isBuiltInScalar(typeName) {
|
|
35
|
+
return SCALAR_TYPES.has(typeName);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Maps a GraphQL scalar type name to its TypeScript output representation.
|
|
39
|
+
*
|
|
40
|
+
* Built-in scalars → `Scalars["<TYPE>"]["output"]`
|
|
41
|
+
* Enum / other types → used directly (the type name itself).
|
|
42
|
+
*/
|
|
43
|
+
function mapScalarType(typeName, enums) {
|
|
44
|
+
if (SCALAR_TYPES.has(typeName))
|
|
45
|
+
return `Scalars["${typeName}"]["output"]`;
|
|
46
|
+
// Enum types are referenced by name directly
|
|
47
|
+
if (enums.has(typeName))
|
|
48
|
+
return typeName;
|
|
49
|
+
// Fallback: treat as a known type reference (e.g. another node/interface)
|
|
50
|
+
return typeName;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Wraps `inner` in `Maybe<>` when the field is optional.
|
|
54
|
+
*/
|
|
55
|
+
function wrapMaybe(inner, required) {
|
|
56
|
+
return required ? inner : `Maybe<${inner}>`;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Converts a field name to PascalCase (first letter uppercased).
|
|
60
|
+
*
|
|
61
|
+
* Examples:
|
|
62
|
+
* - `drugs` → `Drugs`
|
|
63
|
+
* - `hasStatus` → `HasStatus`
|
|
64
|
+
* - `isDescribedBy` → `IsDescribedBy`
|
|
65
|
+
*/
|
|
66
|
+
function toPascalCase(fieldName) {
|
|
67
|
+
return fieldName.charAt(0).toUpperCase() + fieldName.slice(1);
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/helpers.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA0BH,0CAEC;AAQD,sCAWC;AAKD,8BAEC;AAUD,oCAEC;AAhED,2EAA2E;AAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,IAAI;IACJ,QAAQ;IACR,KAAK;IACL,OAAO;IACP,SAAS;IACT,UAAU;IACV,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;IACX,eAAe;IACf,UAAU;IACV,OAAO;IACP,gBAAgB;CACjB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,QAAgB;IAC9C,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAC3B,QAAgB,EAChB,KAA4B;IAE5B,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,YAAY,QAAQ,cAAc,CAAC;IAE1E,6CAA6C;IAC7C,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEzC,0EAA0E;IAC1E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,KAAa,EAAE,QAAiB;IACxD,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,YAAY,CAAC,SAAiB;IAC5C,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/input-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,cAAc,EACf,MAAM,oBAAoB,CAAC;AAiB5B;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAmI7D"}
|