@contember/schema-definition 2.0.0-alpha.10 → 2.0.0-alpha.13

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.
Files changed (112) hide show
  1. package/dist/development/index.cjs.map +1 -1
  2. package/dist/development/index.js.map +1 -1
  3. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.cjs +3 -0
  4. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.cjs.map +1 -1
  5. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.js +3 -0
  6. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +1 -1
  7. package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.cjs +0 -3
  8. package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.cjs.map +1 -1
  9. package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.js +0 -3
  10. package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.js.map +1 -1
  11. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs +6 -3
  12. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs.map +1 -1
  13. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js +6 -3
  14. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +1 -1
  15. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs +6 -7
  16. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs.map +1 -1
  17. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js +7 -8
  18. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js.map +1 -1
  19. package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs +6 -3
  20. package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs.map +1 -1
  21. package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js +6 -3
  22. package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +1 -1
  23. package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs +6 -3
  24. package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs.map +1 -1
  25. package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.js +6 -3
  26. package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.js.map +1 -1
  27. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs +6 -3
  28. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs.map +1 -1
  29. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.js +6 -3
  30. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +1 -1
  31. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs +6 -7
  32. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs.map +1 -1
  33. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js +7 -8
  34. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js.map +1 -1
  35. package/dist/development/src/model/definition/index.cjs +6 -8
  36. package/dist/development/src/model/definition/index.cjs.map +1 -1
  37. package/dist/development/src/model/definition/index.js +12 -14
  38. package/dist/development/src/model/definition/index.js.map +1 -1
  39. package/dist/production/index.cjs.map +1 -1
  40. package/dist/production/index.js.map +1 -1
  41. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.cjs +3 -0
  42. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.cjs.map +1 -1
  43. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.js +3 -0
  44. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +1 -1
  45. package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.cjs +0 -3
  46. package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.cjs.map +1 -1
  47. package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.js +0 -3
  48. package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.js.map +1 -1
  49. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs +6 -3
  50. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs.map +1 -1
  51. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js +6 -3
  52. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +1 -1
  53. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs +6 -7
  54. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs.map +1 -1
  55. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js +7 -8
  56. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js.map +1 -1
  57. package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs +6 -3
  58. package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs.map +1 -1
  59. package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js +6 -3
  60. package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +1 -1
  61. package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs +6 -3
  62. package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs.map +1 -1
  63. package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.js +6 -3
  64. package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.js.map +1 -1
  65. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs +6 -3
  66. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs.map +1 -1
  67. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.js +6 -3
  68. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +1 -1
  69. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs +6 -7
  70. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs.map +1 -1
  71. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js +7 -8
  72. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js.map +1 -1
  73. package/dist/production/src/model/definition/index.cjs +6 -8
  74. package/dist/production/src/model/definition/index.cjs.map +1 -1
  75. package/dist/production/src/model/definition/index.js +12 -14
  76. package/dist/production/src/model/definition/index.js.map +1 -1
  77. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  78. package/dist/types/index.d.ts +5 -1
  79. package/dist/types/index.d.ts.map +1 -1
  80. package/dist/types/model/definition/fieldDefinitions/ColumnDefinition.d.ts +9 -9
  81. package/dist/types/model/definition/fieldDefinitions/ColumnDefinition.d.ts.map +1 -1
  82. package/dist/types/model/definition/fieldDefinitions/FieldDefinition.d.ts +0 -3
  83. package/dist/types/model/definition/fieldDefinitions/FieldDefinition.d.ts.map +1 -1
  84. package/dist/types/model/definition/fieldDefinitions/ManyHasManyDefinition.d.ts +6 -6
  85. package/dist/types/model/definition/fieldDefinitions/ManyHasManyDefinition.d.ts.map +1 -1
  86. package/dist/types/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.d.ts +4 -8
  87. package/dist/types/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.d.ts.map +1 -1
  88. package/dist/types/model/definition/fieldDefinitions/ManyHasOneDefinition.d.ts +10 -10
  89. package/dist/types/model/definition/fieldDefinitions/ManyHasOneDefinition.d.ts.map +1 -1
  90. package/dist/types/model/definition/fieldDefinitions/OneHasManyDefinition.d.ts +4 -4
  91. package/dist/types/model/definition/fieldDefinitions/OneHasManyDefinition.d.ts.map +1 -1
  92. package/dist/types/model/definition/fieldDefinitions/OneHasOneDefinition.d.ts +11 -11
  93. package/dist/types/model/definition/fieldDefinitions/OneHasOneDefinition.d.ts.map +1 -1
  94. package/dist/types/model/definition/fieldDefinitions/OneHasOneInverseDefinition.d.ts +4 -8
  95. package/dist/types/model/definition/fieldDefinitions/OneHasOneInverseDefinition.d.ts.map +1 -1
  96. package/dist/types/model/definition/index.d.ts +1 -2
  97. package/dist/types/model/definition/index.d.ts.map +1 -1
  98. package/dist/types/model/definition/types.d.ts +2 -5
  99. package/dist/types/model/definition/types.d.ts.map +1 -1
  100. package/dist/types/tsconfig.tsbuildinfo +1 -1
  101. package/package.json +3 -3
  102. package/src/index.ts +15 -0
  103. package/src/model/definition/fieldDefinitions/ColumnDefinition.ts +22 -18
  104. package/src/model/definition/fieldDefinitions/FieldDefinition.ts +1 -5
  105. package/src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts +11 -7
  106. package/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.ts +8 -12
  107. package/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts +14 -12
  108. package/src/model/definition/fieldDefinitions/OneHasManyDefinition.ts +8 -5
  109. package/src/model/definition/fieldDefinitions/OneHasOneDefinition.ts +16 -12
  110. package/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.ts +8 -11
  111. package/src/model/definition/index.ts +1 -2
  112. package/src/model/definition/types.ts +2 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../packages/schema-definition/src/index.ts"],"sourcesContent":["import * as AclDefinition from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport * as InputValidation from './validation'\nimport { SchemaDefinition } from './model'\nimport { createSchema } from './createSchema'\n\nexport { AllowAllPermissionFactory } from '@contember/schema-utils'\nexport { PermissionsBuilder } from './acl/builder/PermissionsBuilder'\nexport * from './model'\nexport * from './presets'\n\nexport { AclDefinition, ActionsDefinition, SchemaDefinition, InputValidation, createSchema }\n\nexport const c = {\n\n\t// ACL\n\t// ACL entity decorators\n\tAllowCustomPrimary: AclDefinition.allowCustomPrimary,\n\tAllow: AclDefinition.allow,\n\t// ACL factories\n\tcreateRole: AclDefinition.createRole,\n\tcreateConditionVariable: AclDefinition.createConditionVariable,\n\tcreateEntityVariable: AclDefinition.createEntityVariable,\n\tcreatePredefinedVariable: AclDefinition.createPredefinedVariable,\n\t// ACL utilities\n\tcanCreate: AclDefinition.canCreate,\n\tcanRead: AclDefinition.canRead,\n\tcanUpdate: AclDefinition.canUpdate,\n\tcanDelete: AclDefinition.canDelete,\n\n\n\t// Actions\n\t// Actions entity decorators\n\tWatch: ActionsDefinition.watch,\n\tTrigger: ActionsDefinition.trigger,\n\t// Actions factories\n\tcreateActionsTarget: ActionsDefinition.createTarget,\n\n\n\t// Model\n\t// Model entity decorators\n\tExtendEntity: SchemaDefinition.extendEntity,\n\tIndex: SchemaDefinition.Index,\n\tUnique: SchemaDefinition.Unique,\n\tView: SchemaDefinition.View,\n\tDisableEventLog: SchemaDefinition.DisableEventLog,\n\tOrderBy: SchemaDefinition.OrderBy,\n\t// Model field factories\n\tcolumn: SchemaDefinition.column,\n\tboolColumn: SchemaDefinition.boolColumn,\n\tintColumn: SchemaDefinition.intColumn,\n\tdoubleColumn: SchemaDefinition.doubleColumn,\n\tdateColumn: SchemaDefinition.dateColumn,\n\tdateTimeColumn: SchemaDefinition.dateTimeColumn,\n\tjsonColumn: SchemaDefinition.jsonColumn,\n\tstringColumn: SchemaDefinition.stringColumn,\n\tenumColumn: SchemaDefinition.enumColumn,\n\tuuidColumn: SchemaDefinition.uuidColumn,\n\tmanyHasMany: SchemaDefinition.manyHasMany,\n\tmanyHasManyInverse: SchemaDefinition.manyHasManyInverse,\n\tmanyHasOne: SchemaDefinition.manyHasOne,\n\toneHasOne: SchemaDefinition.oneHasOne,\n\toneHasOneInverse: SchemaDefinition.oneHasOneInverse,\n\toneHasMany: SchemaDefinition.oneHasMany,\n\t// Model factories\n\tcreateEnum: SchemaDefinition.createEnum,\n\n\n\t// Validation\n\t// Validation field decorators\n\tAssert: InputValidation.assert,\n\tRequired: InputValidation.required,\n\tAssertDefined: InputValidation.assertDefined,\n\tAssertNotEmpty: InputValidation.assertNotEmpty,\n\tAssertPattern: InputValidation.assertPattern,\n\tAssertMinLength: InputValidation.assertMinLength,\n\tAssertMaxLength: InputValidation.assertMaxLength,\n\tValidateWhen: InputValidation.when,\n\t// Validation utilities\n\trules: InputValidation.rules,\n\n}\n"],"names":["AclDefinition.allowCustomPrimary","AclDefinition.allow","AclDefinition.createRole","AclDefinition.createConditionVariable","AclDefinition.createEntityVariable","AclDefinition.createPredefinedVariable","AclDefinition.canCreate","AclDefinition.canRead","AclDefinition.canUpdate","AclDefinition.canDelete","ActionsDefinition.watch","ActionsDefinition.trigger","ActionsDefinition.createTarget","SchemaDefinition.extendEntity","SchemaDefinition.Index","SchemaDefinition.Unique","SchemaDefinition.View","SchemaDefinition.DisableEventLog","SchemaDefinition.OrderBy","SchemaDefinition.column","SchemaDefinition.boolColumn","SchemaDefinition.intColumn","SchemaDefinition.doubleColumn","SchemaDefinition.dateColumn","SchemaDefinition.dateTimeColumn","SchemaDefinition.jsonColumn","SchemaDefinition.stringColumn","SchemaDefinition.enumColumn","SchemaDefinition.uuidColumn","SchemaDefinition.manyHasMany","SchemaDefinition.manyHasManyInverse","SchemaDefinition.manyHasOne","SchemaDefinition.oneHasOne","SchemaDefinition.oneHasOneInverse","SchemaDefinition.oneHasMany","SchemaDefinition.createEnum","InputValidation.assert","InputValidation.required","InputValidation.assertDefined","InputValidation.assertNotEmpty","InputValidation.assertPattern","InputValidation.assertMinLength","InputValidation.assertMaxLength","InputValidation.when","InputValidation.rules"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAM,IAAI;AAAA;AAAA;AAAA,EAIhB,oBAAoBA,cAAc;AAAA,EAClC,OAAOC,YAAc;AAAA;AAAA,EAErB,YAAYC,MAAc;AAAA,EAC1B,yBAAyBC,UAAc;AAAA,EACvC,sBAAsBC,UAAc;AAAA,EACpC,0BAA0BC,UAAc;AAAA;AAAA,EAExC,WAAWC,WAAc;AAAA,EACzB,SAASC,WAAc;AAAA,EACvB,WAAWC,WAAc;AAAA,EACzB,WAAWC,WAAc;AAAA;AAAA;AAAA,EAKzB,OAAOC,SAAkB;AAAA,EACzB,SAASC,SAAkB;AAAA;AAAA,EAE3B,qBAAqBC,QAAkB;AAAA;AAAA;AAAA,EAKvC,cAAcC,WAAiB;AAAA,EAC/B,OAAOC,gBAAiB;AAAA,EACxB,QAAQC,iBAAiB;AAAA,EACzB,MAAMC,eAAiB;AAAA,EACvB,iBAAiBC,mBAAiB;AAAA,EAClC,SAASC,kBAAiB;AAAA;AAAA,EAE1B,QAAQC,iBAAiB;AAAA,EACzB,YAAYC,iBAAiB;AAAA,EAC7B,WAAWC,iBAAiB;AAAA,EAC5B,cAAcC,iBAAiB;AAAA,EAC/B,YAAYC,iBAAiB;AAAA,EAC7B,gBAAgBC,iBAAiB;AAAA,EACjC,YAAYC,iBAAiB;AAAA,EAC7B,cAAcC,iBAAiB;AAAA,EAC/B,YAAYC,iBAAiB;AAAA,EAC7B,YAAYC,iBAAiB;AAAA,EAC7B,aAAaC,sBAAiB;AAAA,EAC9B,oBAAoBC,6BAAiB;AAAA,EACrC,YAAYC,qBAAiB;AAAA,EAC7B,WAAWC,oBAAiB;AAAA,EAC5B,kBAAkBC,2BAAiB;AAAA,EACnC,YAAYC,qBAAiB;AAAA;AAAA,EAE7B,YAAYC,eAAiB;AAAA;AAAA;AAAA,EAK7B,QAAQC,QAAgB;AAAA,EACxB,UAAUC,QAAgB;AAAA,EAC1B,eAAeC,QAAgB;AAAA,EAC/B,gBAAgBC,QAAgB;AAAA,EAChC,eAAeC,QAAgB;AAAA,EAC/B,iBAAiBC,QAAgB;AAAA,EACjC,iBAAiBC,QAAgB;AAAA,EACjC,cAAcC,QAAgB;AAAA;AAAA,EAE9B,OAAOC,QAAgB;AAExB;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../packages/schema-definition/src/index.ts"],"sourcesContent":["import * as AclDefinition from './acl/definition'\nimport { Role } from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport * as InputValidation from './validation'\nimport { SchemaDefinition } from './model'\nimport { createSchema } from './createSchema'\n\nexport { AllowAllPermissionFactory } from '@contember/schema-utils'\nexport { PermissionsBuilder } from './acl/builder/PermissionsBuilder'\nexport * from './model'\nexport * from './presets'\n\nexport type { Role }\nexport type { VariableDefinition } from './acl/definition'\nexport type {\n\tColumnDefinition,\n\tFieldDefinition,\n\tOneHasOneDefinition,\n\tOneHasOneInverseDefinition,\n\tOneHasManyDefinition,\n\tManyHasOneDefinition,\n\tManyHasManyDefinition,\n\tManyHasManyInverseDefinition,\n\tEnumDefinition,\n} from './model/definition'\n\nexport { AclDefinition, ActionsDefinition, SchemaDefinition, InputValidation, createSchema }\n\nexport const c = {\n\n\t// ACL\n\t// ACL entity decorators\n\tAllowCustomPrimary: AclDefinition.allowCustomPrimary,\n\tAllow: AclDefinition.allow,\n\t// ACL factories\n\tcreateRole: AclDefinition.createRole,\n\tcreateConditionVariable: AclDefinition.createConditionVariable,\n\tcreateEntityVariable: AclDefinition.createEntityVariable,\n\tcreatePredefinedVariable: AclDefinition.createPredefinedVariable,\n\t// ACL utilities\n\tcanCreate: AclDefinition.canCreate,\n\tcanRead: AclDefinition.canRead,\n\tcanUpdate: AclDefinition.canUpdate,\n\tcanDelete: AclDefinition.canDelete,\n\n\n\t// Actions\n\t// Actions entity decorators\n\tWatch: ActionsDefinition.watch,\n\tTrigger: ActionsDefinition.trigger,\n\t// Actions factories\n\tcreateActionsTarget: ActionsDefinition.createTarget,\n\n\n\t// Model\n\t// Model entity decorators\n\tExtendEntity: SchemaDefinition.extendEntity,\n\tIndex: SchemaDefinition.Index,\n\tUnique: SchemaDefinition.Unique,\n\tView: SchemaDefinition.View,\n\tDisableEventLog: SchemaDefinition.DisableEventLog,\n\tOrderBy: SchemaDefinition.OrderBy,\n\t// Model field factories\n\tcolumn: SchemaDefinition.column,\n\tboolColumn: SchemaDefinition.boolColumn,\n\tintColumn: SchemaDefinition.intColumn,\n\tdoubleColumn: SchemaDefinition.doubleColumn,\n\tdateColumn: SchemaDefinition.dateColumn,\n\tdateTimeColumn: SchemaDefinition.dateTimeColumn,\n\tjsonColumn: SchemaDefinition.jsonColumn,\n\tstringColumn: SchemaDefinition.stringColumn,\n\tenumColumn: SchemaDefinition.enumColumn,\n\tuuidColumn: SchemaDefinition.uuidColumn,\n\tmanyHasMany: SchemaDefinition.manyHasMany,\n\tmanyHasManyInverse: SchemaDefinition.manyHasManyInverse,\n\tmanyHasOne: SchemaDefinition.manyHasOne,\n\toneHasOne: SchemaDefinition.oneHasOne,\n\toneHasOneInverse: SchemaDefinition.oneHasOneInverse,\n\toneHasMany: SchemaDefinition.oneHasMany,\n\t// Model factories\n\tcreateEnum: SchemaDefinition.createEnum,\n\n\n\t// Validation\n\t// Validation field decorators\n\tAssert: InputValidation.assert,\n\tRequired: InputValidation.required,\n\tAssertDefined: InputValidation.assertDefined,\n\tAssertNotEmpty: InputValidation.assertNotEmpty,\n\tAssertPattern: InputValidation.assertPattern,\n\tAssertMinLength: InputValidation.assertMinLength,\n\tAssertMaxLength: InputValidation.assertMaxLength,\n\tValidateWhen: InputValidation.when,\n\t// Validation utilities\n\trules: InputValidation.rules,\n\n}\n"],"names":["AclDefinition.allowCustomPrimary","AclDefinition.allow","AclDefinition.createRole","AclDefinition.createConditionVariable","AclDefinition.createEntityVariable","AclDefinition.createPredefinedVariable","AclDefinition.canCreate","AclDefinition.canRead","AclDefinition.canUpdate","AclDefinition.canDelete","ActionsDefinition.watch","ActionsDefinition.trigger","ActionsDefinition.createTarget","SchemaDefinition.extendEntity","SchemaDefinition.Index","SchemaDefinition.Unique","SchemaDefinition.View","SchemaDefinition.DisableEventLog","SchemaDefinition.OrderBy","SchemaDefinition.column","SchemaDefinition.boolColumn","SchemaDefinition.intColumn","SchemaDefinition.doubleColumn","SchemaDefinition.dateColumn","SchemaDefinition.dateTimeColumn","SchemaDefinition.jsonColumn","SchemaDefinition.stringColumn","SchemaDefinition.enumColumn","SchemaDefinition.uuidColumn","SchemaDefinition.manyHasMany","SchemaDefinition.manyHasManyInverse","SchemaDefinition.manyHasOne","SchemaDefinition.oneHasOne","SchemaDefinition.oneHasOneInverse","SchemaDefinition.oneHasMany","SchemaDefinition.createEnum","InputValidation.assert","InputValidation.required","InputValidation.assertDefined","InputValidation.assertNotEmpty","InputValidation.assertPattern","InputValidation.assertMinLength","InputValidation.assertMaxLength","InputValidation.when","InputValidation.rules"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAM,IAAI;AAAA;AAAA;AAAA,EAIhB,oBAAoBA,cAAc;AAAA,EAClC,OAAOC,YAAc;AAAA;AAAA,EAErB,YAAYC,MAAc;AAAA,EAC1B,yBAAyBC,UAAc;AAAA,EACvC,sBAAsBC,UAAc;AAAA,EACpC,0BAA0BC,UAAc;AAAA;AAAA,EAExC,WAAWC,WAAc;AAAA,EACzB,SAASC,WAAc;AAAA,EACvB,WAAWC,WAAc;AAAA,EACzB,WAAWC,WAAc;AAAA;AAAA;AAAA,EAKzB,OAAOC,SAAkB;AAAA,EACzB,SAASC,SAAkB;AAAA;AAAA,EAE3B,qBAAqBC,QAAkB;AAAA;AAAA;AAAA,EAKvC,cAAcC,WAAiB;AAAA,EAC/B,OAAOC,gBAAiB;AAAA,EACxB,QAAQC,iBAAiB;AAAA,EACzB,MAAMC,eAAiB;AAAA,EACvB,iBAAiBC,mBAAiB;AAAA,EAClC,SAASC,kBAAiB;AAAA;AAAA,EAE1B,QAAQC,iBAAiB;AAAA,EACzB,YAAYC,iBAAiB;AAAA,EAC7B,WAAWC,iBAAiB;AAAA,EAC5B,cAAcC,iBAAiB;AAAA,EAC/B,YAAYC,iBAAiB;AAAA,EAC7B,gBAAgBC,iBAAiB;AAAA,EACjC,YAAYC,iBAAiB;AAAA,EAC7B,cAAcC,iBAAiB;AAAA,EAC/B,YAAYC,iBAAiB;AAAA,EAC7B,YAAYC,iBAAiB;AAAA,EAC7B,aAAaC,sBAAiB;AAAA,EAC9B,oBAAoBC,6BAAiB;AAAA,EACrC,YAAYC,qBAAiB;AAAA,EAC7B,WAAWC,oBAAiB;AAAA,EAC5B,kBAAkBC,2BAAiB;AAAA,EACnC,YAAYC,qBAAiB;AAAA;AAAA,EAE7B,YAAYC,eAAiB;AAAA;AAAA;AAAA,EAK7B,QAAQC,QAAgB;AAAA,EACxB,UAAUC,QAAgB;AAAA,EAC1B,eAAeC,QAAgB;AAAA,EAC/B,gBAAgBC,QAAgB;AAAA,EAChC,eAAeC,QAAgB;AAAA,EAC/B,iBAAiBC,QAAgB;AAAA,EACjC,iBAAiBC,QAAgB;AAAA,EACjC,cAAcC,QAAgB;AAAA;AAAA,EAE9B,OAAOC,QAAgB;AAExB;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../packages/schema-definition/src/index.ts"],"sourcesContent":["import * as AclDefinition from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport * as InputValidation from './validation'\nimport { SchemaDefinition } from './model'\nimport { createSchema } from './createSchema'\n\nexport { AllowAllPermissionFactory } from '@contember/schema-utils'\nexport { PermissionsBuilder } from './acl/builder/PermissionsBuilder'\nexport * from './model'\nexport * from './presets'\n\nexport { AclDefinition, ActionsDefinition, SchemaDefinition, InputValidation, createSchema }\n\nexport const c = {\n\n\t// ACL\n\t// ACL entity decorators\n\tAllowCustomPrimary: AclDefinition.allowCustomPrimary,\n\tAllow: AclDefinition.allow,\n\t// ACL factories\n\tcreateRole: AclDefinition.createRole,\n\tcreateConditionVariable: AclDefinition.createConditionVariable,\n\tcreateEntityVariable: AclDefinition.createEntityVariable,\n\tcreatePredefinedVariable: AclDefinition.createPredefinedVariable,\n\t// ACL utilities\n\tcanCreate: AclDefinition.canCreate,\n\tcanRead: AclDefinition.canRead,\n\tcanUpdate: AclDefinition.canUpdate,\n\tcanDelete: AclDefinition.canDelete,\n\n\n\t// Actions\n\t// Actions entity decorators\n\tWatch: ActionsDefinition.watch,\n\tTrigger: ActionsDefinition.trigger,\n\t// Actions factories\n\tcreateActionsTarget: ActionsDefinition.createTarget,\n\n\n\t// Model\n\t// Model entity decorators\n\tExtendEntity: SchemaDefinition.extendEntity,\n\tIndex: SchemaDefinition.Index,\n\tUnique: SchemaDefinition.Unique,\n\tView: SchemaDefinition.View,\n\tDisableEventLog: SchemaDefinition.DisableEventLog,\n\tOrderBy: SchemaDefinition.OrderBy,\n\t// Model field factories\n\tcolumn: SchemaDefinition.column,\n\tboolColumn: SchemaDefinition.boolColumn,\n\tintColumn: SchemaDefinition.intColumn,\n\tdoubleColumn: SchemaDefinition.doubleColumn,\n\tdateColumn: SchemaDefinition.dateColumn,\n\tdateTimeColumn: SchemaDefinition.dateTimeColumn,\n\tjsonColumn: SchemaDefinition.jsonColumn,\n\tstringColumn: SchemaDefinition.stringColumn,\n\tenumColumn: SchemaDefinition.enumColumn,\n\tuuidColumn: SchemaDefinition.uuidColumn,\n\tmanyHasMany: SchemaDefinition.manyHasMany,\n\tmanyHasManyInverse: SchemaDefinition.manyHasManyInverse,\n\tmanyHasOne: SchemaDefinition.manyHasOne,\n\toneHasOne: SchemaDefinition.oneHasOne,\n\toneHasOneInverse: SchemaDefinition.oneHasOneInverse,\n\toneHasMany: SchemaDefinition.oneHasMany,\n\t// Model factories\n\tcreateEnum: SchemaDefinition.createEnum,\n\n\n\t// Validation\n\t// Validation field decorators\n\tAssert: InputValidation.assert,\n\tRequired: InputValidation.required,\n\tAssertDefined: InputValidation.assertDefined,\n\tAssertNotEmpty: InputValidation.assertNotEmpty,\n\tAssertPattern: InputValidation.assertPattern,\n\tAssertMinLength: InputValidation.assertMinLength,\n\tAssertMaxLength: InputValidation.assertMaxLength,\n\tValidateWhen: InputValidation.when,\n\t// Validation utilities\n\trules: InputValidation.rules,\n\n}\n"],"names":["AclDefinition.allowCustomPrimary","AclDefinition.allow","ActionsDefinition.watch","ActionsDefinition.trigger","ActionsDefinition.createTarget","SchemaDefinition.extendEntity","InputValidation.assert","InputValidation.required","InputValidation.assertDefined","InputValidation.assertNotEmpty","InputValidation.assertPattern","InputValidation.assertMinLength","InputValidation.assertMaxLength","InputValidation.when"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAM,IAAI;AAAA;AAAA;AAAA,EAIhB,oBAAoBA;AAAAA,EACpB,OAAOC;AAAAA;AAAAA,EAEP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAKA,OAAOC;AAAAA,EACP,SAASC;AAAAA;AAAAA,EAET,qBAAqBC;AAAAA;AAAAA;AAAAA,EAKrB,cAAcC;AAAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA;AAAA,EAKA,QAAQC;AAAAA,EACR,UAAUC;AAAAA,EACV,eAAeC;AAAAA,EACf,gBAAgBC;AAAAA,EAChB,eAAeC;AAAAA,EACf,iBAAiBC;AAAAA,EACjB,iBAAiBC;AAAAA,EACjB,cAAcC;AAAAA;AAAAA,EAEd;AAED;"}
1
+ {"version":3,"file":"index.js","sources":["../../../packages/schema-definition/src/index.ts"],"sourcesContent":["import * as AclDefinition from './acl/definition'\nimport { Role } from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport * as InputValidation from './validation'\nimport { SchemaDefinition } from './model'\nimport { createSchema } from './createSchema'\n\nexport { AllowAllPermissionFactory } from '@contember/schema-utils'\nexport { PermissionsBuilder } from './acl/builder/PermissionsBuilder'\nexport * from './model'\nexport * from './presets'\n\nexport type { Role }\nexport type { VariableDefinition } from './acl/definition'\nexport type {\n\tColumnDefinition,\n\tFieldDefinition,\n\tOneHasOneDefinition,\n\tOneHasOneInverseDefinition,\n\tOneHasManyDefinition,\n\tManyHasOneDefinition,\n\tManyHasManyDefinition,\n\tManyHasManyInverseDefinition,\n\tEnumDefinition,\n} from './model/definition'\n\nexport { AclDefinition, ActionsDefinition, SchemaDefinition, InputValidation, createSchema }\n\nexport const c = {\n\n\t// ACL\n\t// ACL entity decorators\n\tAllowCustomPrimary: AclDefinition.allowCustomPrimary,\n\tAllow: AclDefinition.allow,\n\t// ACL factories\n\tcreateRole: AclDefinition.createRole,\n\tcreateConditionVariable: AclDefinition.createConditionVariable,\n\tcreateEntityVariable: AclDefinition.createEntityVariable,\n\tcreatePredefinedVariable: AclDefinition.createPredefinedVariable,\n\t// ACL utilities\n\tcanCreate: AclDefinition.canCreate,\n\tcanRead: AclDefinition.canRead,\n\tcanUpdate: AclDefinition.canUpdate,\n\tcanDelete: AclDefinition.canDelete,\n\n\n\t// Actions\n\t// Actions entity decorators\n\tWatch: ActionsDefinition.watch,\n\tTrigger: ActionsDefinition.trigger,\n\t// Actions factories\n\tcreateActionsTarget: ActionsDefinition.createTarget,\n\n\n\t// Model\n\t// Model entity decorators\n\tExtendEntity: SchemaDefinition.extendEntity,\n\tIndex: SchemaDefinition.Index,\n\tUnique: SchemaDefinition.Unique,\n\tView: SchemaDefinition.View,\n\tDisableEventLog: SchemaDefinition.DisableEventLog,\n\tOrderBy: SchemaDefinition.OrderBy,\n\t// Model field factories\n\tcolumn: SchemaDefinition.column,\n\tboolColumn: SchemaDefinition.boolColumn,\n\tintColumn: SchemaDefinition.intColumn,\n\tdoubleColumn: SchemaDefinition.doubleColumn,\n\tdateColumn: SchemaDefinition.dateColumn,\n\tdateTimeColumn: SchemaDefinition.dateTimeColumn,\n\tjsonColumn: SchemaDefinition.jsonColumn,\n\tstringColumn: SchemaDefinition.stringColumn,\n\tenumColumn: SchemaDefinition.enumColumn,\n\tuuidColumn: SchemaDefinition.uuidColumn,\n\tmanyHasMany: SchemaDefinition.manyHasMany,\n\tmanyHasManyInverse: SchemaDefinition.manyHasManyInverse,\n\tmanyHasOne: SchemaDefinition.manyHasOne,\n\toneHasOne: SchemaDefinition.oneHasOne,\n\toneHasOneInverse: SchemaDefinition.oneHasOneInverse,\n\toneHasMany: SchemaDefinition.oneHasMany,\n\t// Model factories\n\tcreateEnum: SchemaDefinition.createEnum,\n\n\n\t// Validation\n\t// Validation field decorators\n\tAssert: InputValidation.assert,\n\tRequired: InputValidation.required,\n\tAssertDefined: InputValidation.assertDefined,\n\tAssertNotEmpty: InputValidation.assertNotEmpty,\n\tAssertPattern: InputValidation.assertPattern,\n\tAssertMinLength: InputValidation.assertMinLength,\n\tAssertMaxLength: InputValidation.assertMaxLength,\n\tValidateWhen: InputValidation.when,\n\t// Validation utilities\n\trules: InputValidation.rules,\n\n}\n"],"names":["AclDefinition.allowCustomPrimary","AclDefinition.allow","ActionsDefinition.watch","ActionsDefinition.trigger","ActionsDefinition.createTarget","SchemaDefinition.extendEntity","InputValidation.assert","InputValidation.required","InputValidation.assertDefined","InputValidation.assertNotEmpty","InputValidation.assertPattern","InputValidation.assertMinLength","InputValidation.assertMaxLength","InputValidation.when"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAM,IAAI;AAAA;AAAA;AAAA,EAIhB,oBAAoBA;AAAAA,EACpB,OAAOC;AAAAA;AAAAA,EAEP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAKA,OAAOC;AAAAA,EACP,SAASC;AAAAA;AAAAA,EAET,qBAAqBC;AAAAA;AAAAA;AAAAA,EAKrB,cAAcC;AAAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA;AAAA,EAKA,QAAQC;AAAAA,EACR,UAAUC;AAAAA,EACV,eAAeC;AAAAA,EACf,gBAAgBC;AAAAA,EAChB,eAAeC;AAAAA,EACf,iBAAiBC;AAAAA,EACjB,iBAAiBC;AAAAA,EACjB,cAAcC;AAAAA;AAAAA,EAEd;AAED;"}
@@ -73,6 +73,9 @@ class ColumnDefinition extends FieldDefinition.FieldDefinition {
73
73
  ...typeAlias !== void 0 ? { typeAlias } : {}
74
74
  };
75
75
  }
76
+ withOption(key, value) {
77
+ return new ColumnDefinition({ ...this.options, [key]: value });
78
+ }
76
79
  }
77
80
  function column(type, typeOptions = {}) {
78
81
  return ColumnDefinition.create(type, typeOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ColumnDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { Interface } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EnumDefinition } from '../EnumDefinition'\nimport { resolveDefaultColumnType } from '@contember/schema-utils'\n\nexport class ColumnDefinition extends FieldDefinition<ColumnDefinitionOptions> {\n\ttype = 'ColumnDefinition' as const\n\n\tpublic static create(\n\t\ttype: Model.ColumnType,\n\t\ttypeOptions: ColumnTypeOptions = {},\n\t): ColumnDefinition {\n\t\treturn new ColumnDefinition({\n\t\t\ttype: type,\n\t\t\t...typeOptions,\n\t\t})\n\t}\n\n\n\tpublic columnName(columnName: string): Interface<ColumnDefinition> {\n\t\treturn this.withOption('columnName', columnName)\n\t}\n\n\tpublic columnType(columnType: string): Interface<ColumnDefinition> {\n\t\treturn this.withOption('columnType', columnType)\n\t}\n\n\tpublic nullable(): Interface<ColumnDefinition> {\n\t\treturn this.withOption('nullable', true)\n\t}\n\n\tpublic notNull(): Interface<ColumnDefinition> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tpublic sequence(options?: Partial<Model.ColumnTypeDefinition['sequence']>): Interface<ColumnDefinition> {\n\t\treturn this.withOption('sequence', { precedence: 'BY DEFAULT', ...options })\n\t}\n\n\tpublic unique(options: { timing?: Model.ConstraintTiming } = {}): Interface<ColumnDefinition> {\n\t\treturn this.withOption('unique', options)\n\t}\n\n\tpublic default(value: ColumnDefinition['options']['default']): Interface<ColumnDefinition> {\n\t\treturn this.withOption('default', value)\n\t}\n\n\tpublic typeAlias(alias: string): Interface<ColumnDefinition> {\n\t\treturn this.withOption('typeAlias', alias)\n\t}\n\n\tcreateField({ name, conventions, enumRegistry, entityName }: CreateFieldContext): Model.AnyField {\n\t\tconst { type, nullable, columnName, enumDefinition, default: defaultValue, columnType, typeAlias, sequence } = this.options\n\t\tconst common = {\n\t\t\tname: name,\n\t\t\tcolumnName: columnName || conventions.getColumnName(name),\n\t\t\tnullable: nullable === undefined ? true : nullable,\n\t\t\t...(defaultValue !== undefined ? { default: defaultValue } : {}),\n\t\t\t...(sequence !== undefined ? { sequence } : {}),\n\t\t}\n\t\tif (type === Model.ColumnType.Enum) {\n\t\t\tif (typeAlias) {\n\t\t\t\tthrow new Error('GraphQL type alias cannot be specified for enum type')\n\t\t\t}\n\t\t\tlet enumName: string\n\t\t\tif (!enumDefinition) {\n\t\t\t\tthrow new Error()\n\t\t\t}\n\t\t\tif (enumRegistry.has(enumDefinition)) {\n\t\t\t\tenumName = enumRegistry.getName(enumDefinition)\n\t\t\t} else {\n\t\t\t\tenumName = entityName + name.substring(0, 1).toUpperCase() + name.substring(1)\n\t\t\t\tenumRegistry.register(enumName, enumDefinition)\n\t\t\t}\n\n\t\t\treturn { ...common, type: type, columnType: enumName }\n\t\t}\n\t\treturn {\n\t\t\t...common,\n\t\t\ttype: type,\n\t\t\tcolumnType: columnType || resolveDefaultColumnType(type),\n\t\t\t...(typeAlias !== undefined ? { typeAlias } : {}),\n\t\t}\n\t}\n}\n\nexport function column(type: Model.ColumnType, typeOptions: ColumnTypeOptions = {}) {\n\treturn ColumnDefinition.create(type, typeOptions)\n}\n\nexport function stringColumn() {\n\treturn column(Model.ColumnType.String)\n}\n\nexport function intColumn() {\n\treturn column(Model.ColumnType.Int)\n}\n\nexport function boolColumn() {\n\treturn column(Model.ColumnType.Bool)\n}\n\nexport function doubleColumn() {\n\treturn column(Model.ColumnType.Double)\n}\n\nexport function dateColumn() {\n\treturn column(Model.ColumnType.Date)\n}\n\nexport function dateTimeColumn() {\n\treturn column(Model.ColumnType.DateTime)\n}\n\nexport function jsonColumn() {\n\treturn column(Model.ColumnType.Json)\n}\n\nexport function enumColumn(enumDefinition: EnumDefinition) {\n\treturn column(Model.ColumnType.Enum, { enumDefinition })\n}\n\nexport function uuidColumn() {\n\treturn column(Model.ColumnType.Uuid)\n}\n\nexport type ColumnTypeOptions = {\n\tenumDefinition?: EnumDefinition\n}\nexport type ColumnDefinitionOptions = {\n\ttype: Model.ColumnType\n\tcolumnType?: string\n\ttypeAlias?: string\n\tcolumnName?: string\n\tunique?: { timing?: Model.ConstraintTiming }\n\tnullable?: boolean\n\tdefault?: Model.ColumnTypeDefinition['default']\n\tsequence?: Model.ColumnTypeDefinition['sequence']\n} & ColumnTypeOptions\n"],"names":["FieldDefinition","Model","resolveDefaultColumnType"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ColumnDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EnumDefinition } from '../EnumDefinition'\nimport { resolveDefaultColumnType } from '@contember/schema-utils'\n\nexport class ColumnDefinition extends FieldDefinition<ColumnDefinitionOptions> {\n\ttype = 'ColumnDefinition' as const\n\n\n\tpublic static create(\n\t\ttype: Model.ColumnType,\n\t\ttypeOptions: ColumnTypeOptions = {},\n\t): ColumnDefinition {\n\t\treturn new ColumnDefinition({\n\t\t\ttype: type,\n\t\t\t...typeOptions,\n\t\t})\n\t}\n\n\n\tpublic columnName(columnName: string): ColumnDefinition {\n\t\treturn this.withOption('columnName', columnName)\n\t}\n\n\tpublic columnType(columnType: string): ColumnDefinition {\n\t\treturn this.withOption('columnType', columnType)\n\t}\n\n\tpublic nullable(): ColumnDefinition {\n\t\treturn this.withOption('nullable', true)\n\t}\n\n\tpublic notNull(): ColumnDefinition {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tpublic sequence(options?: Partial<Model.ColumnTypeDefinition['sequence']>): ColumnDefinition {\n\t\treturn this.withOption('sequence', { precedence: 'BY DEFAULT', ...options })\n\t}\n\n\tpublic unique(options: { timing?: Model.ConstraintTiming } = {}): ColumnDefinition {\n\t\treturn this.withOption('unique', options)\n\t}\n\n\tpublic default(value: ColumnDefinition['options']['default']): ColumnDefinition {\n\t\treturn this.withOption('default', value)\n\t}\n\n\tpublic typeAlias(alias: string): ColumnDefinition {\n\t\treturn this.withOption('typeAlias', alias)\n\t}\n\n\tcreateField({ name, conventions, enumRegistry, entityName }: CreateFieldContext): Model.AnyField {\n\t\tconst { type, nullable, columnName, enumDefinition, default: defaultValue, columnType, typeAlias, sequence } = this.options\n\t\tconst common = {\n\t\t\tname: name,\n\t\t\tcolumnName: columnName || conventions.getColumnName(name),\n\t\t\tnullable: nullable === undefined ? true : nullable,\n\t\t\t...(defaultValue !== undefined ? { default: defaultValue } : {}),\n\t\t\t...(sequence !== undefined ? { sequence } : {}),\n\t\t}\n\t\tif (type === Model.ColumnType.Enum) {\n\t\t\tif (typeAlias) {\n\t\t\t\tthrow new Error('GraphQL type alias cannot be specified for enum type')\n\t\t\t}\n\t\t\tlet enumName: string\n\t\t\tif (!enumDefinition) {\n\t\t\t\tthrow new Error()\n\t\t\t}\n\t\t\tif (enumRegistry.has(enumDefinition)) {\n\t\t\t\tenumName = enumRegistry.getName(enumDefinition)\n\t\t\t} else {\n\t\t\t\tenumName = entityName + name.substring(0, 1).toUpperCase() + name.substring(1)\n\t\t\t\tenumRegistry.register(enumName, enumDefinition)\n\t\t\t}\n\n\t\t\treturn { ...common, type: type, columnType: enumName }\n\t\t}\n\t\treturn {\n\t\t\t...common,\n\t\t\ttype: type,\n\t\t\tcolumnType: columnType || resolveDefaultColumnType(type),\n\t\t\t...(typeAlias !== undefined ? { typeAlias } : {}),\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof ColumnDefinitionOptions>(key: K, value: ColumnDefinitionOptions[K]): ColumnDefinition {\n\t\treturn new ColumnDefinition({ ...this.options, [key]: value })\n\t}\n}\n\nexport function column(type: Model.ColumnType, typeOptions: ColumnTypeOptions = {}) {\n\treturn ColumnDefinition.create(type, typeOptions)\n}\n\nexport function stringColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.String)\n}\n\nexport function intColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.Int)\n}\n\nexport function boolColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.Bool)\n}\n\nexport function doubleColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.Double)\n}\n\nexport function dateColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.Date)\n}\n\nexport function dateTimeColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.DateTime)\n}\n\nexport function jsonColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.Json)\n}\n\nexport function enumColumn(enumDefinition: EnumDefinition): ColumnDefinition {\n\treturn column(Model.ColumnType.Enum, { enumDefinition })\n}\n\nexport function uuidColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.Uuid)\n}\n\nexport type ColumnTypeOptions = {\n\tenumDefinition?: EnumDefinition\n}\nexport type ColumnDefinitionOptions = {\n\ttype: Model.ColumnType\n\tcolumnType?: string\n\ttypeAlias?: string\n\tcolumnName?: string\n\tunique?: { timing?: Model.ConstraintTiming }\n\tnullable?: boolean\n\tdefault?: Model.ColumnTypeDefinition['default']\n\tsequence?: Model.ColumnTypeDefinition['sequence']\n} & ColumnTypeOptions\n"],"names":["FieldDefinition","Model","resolveDefaultColumnType"],"mappings":"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"}
@@ -71,6 +71,9 @@ class ColumnDefinition extends FieldDefinition {
71
71
  ...typeAlias !== void 0 ? { typeAlias } : {}
72
72
  };
73
73
  }
74
+ withOption(key, value) {
75
+ return new ColumnDefinition({ ...this.options, [key]: value });
76
+ }
74
77
  }
75
78
  function column(type, typeOptions = {}) {
76
79
  return ColumnDefinition.create(type, typeOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ColumnDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { Interface } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EnumDefinition } from '../EnumDefinition'\nimport { resolveDefaultColumnType } from '@contember/schema-utils'\n\nexport class ColumnDefinition extends FieldDefinition<ColumnDefinitionOptions> {\n\ttype = 'ColumnDefinition' as const\n\n\tpublic static create(\n\t\ttype: Model.ColumnType,\n\t\ttypeOptions: ColumnTypeOptions = {},\n\t): ColumnDefinition {\n\t\treturn new ColumnDefinition({\n\t\t\ttype: type,\n\t\t\t...typeOptions,\n\t\t})\n\t}\n\n\n\tpublic columnName(columnName: string): Interface<ColumnDefinition> {\n\t\treturn this.withOption('columnName', columnName)\n\t}\n\n\tpublic columnType(columnType: string): Interface<ColumnDefinition> {\n\t\treturn this.withOption('columnType', columnType)\n\t}\n\n\tpublic nullable(): Interface<ColumnDefinition> {\n\t\treturn this.withOption('nullable', true)\n\t}\n\n\tpublic notNull(): Interface<ColumnDefinition> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tpublic sequence(options?: Partial<Model.ColumnTypeDefinition['sequence']>): Interface<ColumnDefinition> {\n\t\treturn this.withOption('sequence', { precedence: 'BY DEFAULT', ...options })\n\t}\n\n\tpublic unique(options: { timing?: Model.ConstraintTiming } = {}): Interface<ColumnDefinition> {\n\t\treturn this.withOption('unique', options)\n\t}\n\n\tpublic default(value: ColumnDefinition['options']['default']): Interface<ColumnDefinition> {\n\t\treturn this.withOption('default', value)\n\t}\n\n\tpublic typeAlias(alias: string): Interface<ColumnDefinition> {\n\t\treturn this.withOption('typeAlias', alias)\n\t}\n\n\tcreateField({ name, conventions, enumRegistry, entityName }: CreateFieldContext): Model.AnyField {\n\t\tconst { type, nullable, columnName, enumDefinition, default: defaultValue, columnType, typeAlias, sequence } = this.options\n\t\tconst common = {\n\t\t\tname: name,\n\t\t\tcolumnName: columnName || conventions.getColumnName(name),\n\t\t\tnullable: nullable === undefined ? true : nullable,\n\t\t\t...(defaultValue !== undefined ? { default: defaultValue } : {}),\n\t\t\t...(sequence !== undefined ? { sequence } : {}),\n\t\t}\n\t\tif (type === Model.ColumnType.Enum) {\n\t\t\tif (typeAlias) {\n\t\t\t\tthrow new Error('GraphQL type alias cannot be specified for enum type')\n\t\t\t}\n\t\t\tlet enumName: string\n\t\t\tif (!enumDefinition) {\n\t\t\t\tthrow new Error()\n\t\t\t}\n\t\t\tif (enumRegistry.has(enumDefinition)) {\n\t\t\t\tenumName = enumRegistry.getName(enumDefinition)\n\t\t\t} else {\n\t\t\t\tenumName = entityName + name.substring(0, 1).toUpperCase() + name.substring(1)\n\t\t\t\tenumRegistry.register(enumName, enumDefinition)\n\t\t\t}\n\n\t\t\treturn { ...common, type: type, columnType: enumName }\n\t\t}\n\t\treturn {\n\t\t\t...common,\n\t\t\ttype: type,\n\t\t\tcolumnType: columnType || resolveDefaultColumnType(type),\n\t\t\t...(typeAlias !== undefined ? { typeAlias } : {}),\n\t\t}\n\t}\n}\n\nexport function column(type: Model.ColumnType, typeOptions: ColumnTypeOptions = {}) {\n\treturn ColumnDefinition.create(type, typeOptions)\n}\n\nexport function stringColumn() {\n\treturn column(Model.ColumnType.String)\n}\n\nexport function intColumn() {\n\treturn column(Model.ColumnType.Int)\n}\n\nexport function boolColumn() {\n\treturn column(Model.ColumnType.Bool)\n}\n\nexport function doubleColumn() {\n\treturn column(Model.ColumnType.Double)\n}\n\nexport function dateColumn() {\n\treturn column(Model.ColumnType.Date)\n}\n\nexport function dateTimeColumn() {\n\treturn column(Model.ColumnType.DateTime)\n}\n\nexport function jsonColumn() {\n\treturn column(Model.ColumnType.Json)\n}\n\nexport function enumColumn(enumDefinition: EnumDefinition) {\n\treturn column(Model.ColumnType.Enum, { enumDefinition })\n}\n\nexport function uuidColumn() {\n\treturn column(Model.ColumnType.Uuid)\n}\n\nexport type ColumnTypeOptions = {\n\tenumDefinition?: EnumDefinition\n}\nexport type ColumnDefinitionOptions = {\n\ttype: Model.ColumnType\n\tcolumnType?: string\n\ttypeAlias?: string\n\tcolumnName?: string\n\tunique?: { timing?: Model.ConstraintTiming }\n\tnullable?: boolean\n\tdefault?: Model.ColumnTypeDefinition['default']\n\tsequence?: Model.ColumnTypeDefinition['sequence']\n} & ColumnTypeOptions\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ColumnDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ColumnDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EnumDefinition } from '../EnumDefinition'\nimport { resolveDefaultColumnType } from '@contember/schema-utils'\n\nexport class ColumnDefinition extends FieldDefinition<ColumnDefinitionOptions> {\n\ttype = 'ColumnDefinition' as const\n\n\n\tpublic static create(\n\t\ttype: Model.ColumnType,\n\t\ttypeOptions: ColumnTypeOptions = {},\n\t): ColumnDefinition {\n\t\treturn new ColumnDefinition({\n\t\t\ttype: type,\n\t\t\t...typeOptions,\n\t\t})\n\t}\n\n\n\tpublic columnName(columnName: string): ColumnDefinition {\n\t\treturn this.withOption('columnName', columnName)\n\t}\n\n\tpublic columnType(columnType: string): ColumnDefinition {\n\t\treturn this.withOption('columnType', columnType)\n\t}\n\n\tpublic nullable(): ColumnDefinition {\n\t\treturn this.withOption('nullable', true)\n\t}\n\n\tpublic notNull(): ColumnDefinition {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tpublic sequence(options?: Partial<Model.ColumnTypeDefinition['sequence']>): ColumnDefinition {\n\t\treturn this.withOption('sequence', { precedence: 'BY DEFAULT', ...options })\n\t}\n\n\tpublic unique(options: { timing?: Model.ConstraintTiming } = {}): ColumnDefinition {\n\t\treturn this.withOption('unique', options)\n\t}\n\n\tpublic default(value: ColumnDefinition['options']['default']): ColumnDefinition {\n\t\treturn this.withOption('default', value)\n\t}\n\n\tpublic typeAlias(alias: string): ColumnDefinition {\n\t\treturn this.withOption('typeAlias', alias)\n\t}\n\n\tcreateField({ name, conventions, enumRegistry, entityName }: CreateFieldContext): Model.AnyField {\n\t\tconst { type, nullable, columnName, enumDefinition, default: defaultValue, columnType, typeAlias, sequence } = this.options\n\t\tconst common = {\n\t\t\tname: name,\n\t\t\tcolumnName: columnName || conventions.getColumnName(name),\n\t\t\tnullable: nullable === undefined ? true : nullable,\n\t\t\t...(defaultValue !== undefined ? { default: defaultValue } : {}),\n\t\t\t...(sequence !== undefined ? { sequence } : {}),\n\t\t}\n\t\tif (type === Model.ColumnType.Enum) {\n\t\t\tif (typeAlias) {\n\t\t\t\tthrow new Error('GraphQL type alias cannot be specified for enum type')\n\t\t\t}\n\t\t\tlet enumName: string\n\t\t\tif (!enumDefinition) {\n\t\t\t\tthrow new Error()\n\t\t\t}\n\t\t\tif (enumRegistry.has(enumDefinition)) {\n\t\t\t\tenumName = enumRegistry.getName(enumDefinition)\n\t\t\t} else {\n\t\t\t\tenumName = entityName + name.substring(0, 1).toUpperCase() + name.substring(1)\n\t\t\t\tenumRegistry.register(enumName, enumDefinition)\n\t\t\t}\n\n\t\t\treturn { ...common, type: type, columnType: enumName }\n\t\t}\n\t\treturn {\n\t\t\t...common,\n\t\t\ttype: type,\n\t\t\tcolumnType: columnType || resolveDefaultColumnType(type),\n\t\t\t...(typeAlias !== undefined ? { typeAlias } : {}),\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof ColumnDefinitionOptions>(key: K, value: ColumnDefinitionOptions[K]): ColumnDefinition {\n\t\treturn new ColumnDefinition({ ...this.options, [key]: value })\n\t}\n}\n\nexport function column(type: Model.ColumnType, typeOptions: ColumnTypeOptions = {}) {\n\treturn ColumnDefinition.create(type, typeOptions)\n}\n\nexport function stringColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.String)\n}\n\nexport function intColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.Int)\n}\n\nexport function boolColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.Bool)\n}\n\nexport function doubleColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.Double)\n}\n\nexport function dateColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.Date)\n}\n\nexport function dateTimeColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.DateTime)\n}\n\nexport function jsonColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.Json)\n}\n\nexport function enumColumn(enumDefinition: EnumDefinition): ColumnDefinition {\n\treturn column(Model.ColumnType.Enum, { enumDefinition })\n}\n\nexport function uuidColumn(): ColumnDefinition {\n\treturn column(Model.ColumnType.Uuid)\n}\n\nexport type ColumnTypeOptions = {\n\tenumDefinition?: EnumDefinition\n}\nexport type ColumnDefinitionOptions = {\n\ttype: Model.ColumnType\n\tcolumnType?: string\n\ttypeAlias?: string\n\tcolumnName?: string\n\tunique?: { timing?: Model.ConstraintTiming }\n\tnullable?: boolean\n\tdefault?: Model.ColumnTypeDefinition['default']\n\tsequence?: Model.ColumnTypeDefinition['sequence']\n} & ColumnTypeOptions\n"],"names":[],"mappings":"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"}
@@ -4,9 +4,6 @@ class FieldDefinition {
4
4
  constructor(options) {
5
5
  this.options = options;
6
6
  }
7
- withOption(key, value) {
8
- return new this.constructor({ ...this.options, [key]: value });
9
- }
10
7
  }
11
8
  exports.FieldDefinition = FieldDefinition;
12
9
  //# sourceMappingURL=FieldDefinition.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/FieldDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CommonContext } from '../context'\n\nexport abstract class FieldDefinition<O> {\n\tconstructor(public readonly options: O) {}\n\n\tprotected withOption<K extends keyof O>(this: any, key: K, value: O[K]): { [K in keyof this]: this[K] } {\n\t\treturn new this.constructor({ ...this.options, [key]: value })\n\t}\n\n\tabstract createField(context: CreateFieldContext): Model.AnyField\n}\n\nexport type CreateFieldContext =\n\t& {\n\t\tname: string\n\t\tentityName: string\n\t}\n\t& CommonContext\n\nexport type Map = { [name: string]: FieldDefinition<any> }\n"],"names":[],"mappings":";;AAGO,MAAe,gBAAmB;AAAA,EACxC,YAA4B,SAAY;AAAZ,SAAA,UAAA;AAAA,EAAa;AAAA,EAE/B,WAAyC,KAAQ,OAA6C;AAChG,WAAA,IAAI,KAAK,YAAY,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,MAAA,CAAO;AAAA,EAC9D;AAGD;;"}
1
+ {"version":3,"file":"FieldDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/FieldDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CommonContext } from '../context'\n\nexport abstract class FieldDefinition<O> {\n\tconstructor(public readonly options: O) {\n\t}\n\tabstract createField(context: CreateFieldContext): Model.AnyField\n}\n\nexport type CreateFieldContext =\n\t& {\n\t\tname: string\n\t\tentityName: string\n\t}\n\t& CommonContext\n\nexport type Map = { [name: string]: FieldDefinition<any> }\n"],"names":[],"mappings":";;AAGO,MAAe,gBAAmB;AAAA,EACxC,YAA4B,SAAY;AAAZ,SAAA,UAAA;AAAA,EAC5B;AAED;;"}
@@ -2,9 +2,6 @@ class FieldDefinition {
2
2
  constructor(options) {
3
3
  this.options = options;
4
4
  }
5
- withOption(key, value) {
6
- return new this.constructor({ ...this.options, [key]: value });
7
- }
8
5
  }
9
6
  export {
10
7
  FieldDefinition
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/FieldDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CommonContext } from '../context'\n\nexport abstract class FieldDefinition<O> {\n\tconstructor(public readonly options: O) {}\n\n\tprotected withOption<K extends keyof O>(this: any, key: K, value: O[K]): { [K in keyof this]: this[K] } {\n\t\treturn new this.constructor({ ...this.options, [key]: value })\n\t}\n\n\tabstract createField(context: CreateFieldContext): Model.AnyField\n}\n\nexport type CreateFieldContext =\n\t& {\n\t\tname: string\n\t\tentityName: string\n\t}\n\t& CommonContext\n\nexport type Map = { [name: string]: FieldDefinition<any> }\n"],"names":[],"mappings":"AAGO,MAAe,gBAAmB;AAAA,EACxC,YAA4B,SAAY;AAAZ,SAAA,UAAA;AAAA,EAAa;AAAA,EAE/B,WAAyC,KAAQ,OAA6C;AAChG,WAAA,IAAI,KAAK,YAAY,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,MAAA,CAAO;AAAA,EAC9D;AAGD;"}
1
+ {"version":3,"file":"FieldDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/FieldDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CommonContext } from '../context'\n\nexport abstract class FieldDefinition<O> {\n\tconstructor(public readonly options: O) {\n\t}\n\tabstract createField(context: CreateFieldContext): Model.AnyField\n}\n\nexport type CreateFieldContext =\n\t& {\n\t\tname: string\n\t\tentityName: string\n\t}\n\t& CommonContext\n\nexport type Map = { [name: string]: FieldDefinition<any> }\n"],"names":[],"mappings":"AAGO,MAAe,gBAAmB;AAAA,EACxC,YAA4B,SAAY;AAAZ,SAAA,UAAA;AAAA,EAC5B;AAED;"}
@@ -5,7 +5,7 @@ const FieldDefinition = require("./FieldDefinition.cjs");
5
5
  var __defProp = Object.defineProperty;
6
6
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
7
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
8
- class ManyHasManyDefinitionImpl extends FieldDefinition.FieldDefinition {
8
+ class ManyHasManyDefinition extends FieldDefinition.FieldDefinition {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  __publicField(this, "type", "ManyHasManyDefinition");
@@ -45,10 +45,13 @@ class ManyHasManyDefinitionImpl extends FieldDefinition.FieldDefinition {
45
45
  ...options.orderBy ? { orderBy: options.orderBy } : {}
46
46
  };
47
47
  }
48
+ withOption(key, value) {
49
+ return new ManyHasManyDefinition({ ...this.options, [key]: value });
50
+ }
48
51
  }
49
52
  function manyHasMany(target, inversedBy) {
50
- return new ManyHasManyDefinitionImpl({ target, inversedBy });
53
+ return new ManyHasManyDefinition({ target, inversedBy });
51
54
  }
52
- exports.ManyHasManyDefinitionImpl = ManyHasManyDefinitionImpl;
55
+ exports.ManyHasManyDefinition = ManyHasManyDefinition;
53
56
  exports.manyHasMany = manyHasMany;
54
57
  //# sourceMappingURL=ManyHasManyDefinition.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasManyDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EntityConstructor, Interface, RelationTarget } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class ManyHasManyDefinitionImpl extends FieldDefinition<ManyHasManyDefinitionOptions> {\n\ttype = 'ManyHasManyDefinition' as const\n\n\tinversedBy(inversedBy: string): Interface<ManyHasManyDefinition> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningTable(joiningTable: Partial<Model.JoiningTable>): Interface<ManyHasManyDefinition> {\n\t\treturn this.withOption('joiningTable', joiningTable)\n\t}\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): Interface<ManyHasManyDefinition> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst columnNames = conventions.getJoiningTableColumnNames(\n\t\t\tentityName,\n\t\t\tname,\n\t\t\tentityRegistry.getName(options.target),\n\t\t\toptions.inversedBy,\n\t\t)\n\t\tconst joiningTable = {\n\t\t\ttableName: conventions.getJoiningTableName(entityName, name),\n\t\t\tjoiningColumn: { columnName: columnNames[0], onDelete: Model.OnDelete.cascade },\n\t\t\tinverseJoiningColumn: { columnName: columnNames[1], onDelete: Model.OnDelete.cascade },\n\t\t\teventLog: { enabled: true },\n\t\t\t...options.joiningTable,\n\t\t}\n\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\n\t\treturn {\n\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\tname,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningTable: joiningTable,\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n}\n\nexport type ManyHasManyDefinition = Interface<ManyHasManyDefinitionImpl>\n\nexport function manyHasMany(target: EntityConstructor, inversedBy?: string): ManyHasManyDefinition {\n\treturn new ManyHasManyDefinitionImpl({ target, inversedBy })\n}\n\nexport type ManyHasManyDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningTable?: Partial<Model.JoiningTable>\n\torderBy?: Model.OrderBy[]\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,kCAAkCA,gBAAAA,gBAA8C;AAAA,EAAtF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,uBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAAsD;AACzD,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,aAAa,cAA6E;AAClF,WAAA,KAAK,WAAW,gBAAgB,YAAY;AAAA,EACpD;AAAA,EAEA,QACC,OACA,YAA8DC,OAAAA,MAAM,eAAe,KAChD;AACnC,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,gBAAgB,6BAAiE;AAC7H,UAAM,UAAU,KAAK;AACrB,UAAM,cAAc,YAAY;AAAA,MAC/B;AAAA,MACA;AAAA,MACA,eAAe,QAAQ,QAAQ,MAAM;AAAA,MACrC,QAAQ;AAAA,IAAA;AAET,UAAM,eAAe;AAAA,MACpB,WAAW,YAAY,oBAAoB,YAAY,IAAI;AAAA,MAC3D,eAAe,EAAE,YAAY,YAAY,CAAC,GAAG,UAAUA,OAAAA,MAAM,SAAS,QAAQ;AAAA,MAC9E,sBAAsB,EAAE,YAAY,YAAY,CAAC,GAAG,UAAUA,OAAAA,MAAM,SAAS,QAAQ;AAAA,MACrF,UAAU,EAAE,SAAS,KAAK;AAAA,MAC1B,GAAG,QAAQ;AAAA,IAAA;AAGc,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAEhE,WAAA;AAAA,MACN,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C;AAAA,MACA,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AACD;AAIgB,SAAA,YAAY,QAA2B,YAA4C;AAClG,SAAO,IAAI,0BAA0B,EAAE,QAAQ,WAAY,CAAA;AAC5D;;;"}
1
+ {"version":3,"file":"ManyHasManyDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EntityConstructor, RelationTarget } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class ManyHasManyDefinition extends FieldDefinition<ManyHasManyDefinitionOptions> {\n\ttype = 'ManyHasManyDefinition' as const\n\n\tinversedBy(inversedBy: string): ManyHasManyDefinition {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningTable(joiningTable: Partial<Model.JoiningTable>): ManyHasManyDefinition {\n\t\treturn this.withOption('joiningTable', joiningTable)\n\t}\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): ManyHasManyDefinition {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst columnNames = conventions.getJoiningTableColumnNames(\n\t\t\tentityName,\n\t\t\tname,\n\t\t\tentityRegistry.getName(options.target),\n\t\t\toptions.inversedBy,\n\t\t)\n\t\tconst joiningTable = {\n\t\t\ttableName: conventions.getJoiningTableName(entityName, name),\n\t\t\tjoiningColumn: { columnName: columnNames[0], onDelete: Model.OnDelete.cascade },\n\t\t\tinverseJoiningColumn: { columnName: columnNames[1], onDelete: Model.OnDelete.cascade },\n\t\t\teventLog: { enabled: true },\n\t\t\t...options.joiningTable,\n\t\t}\n\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\n\t\treturn {\n\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\tname,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningTable: joiningTable,\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\n\tprotected withOption<K extends keyof ManyHasManyDefinitionOptions>(key: K, value: ManyHasManyDefinitionOptions[K]): ManyHasManyDefinition {\n\t\treturn new ManyHasManyDefinition({ ...this.options, [key]: value })\n\t}\n}\n\n\nexport function manyHasMany(target: EntityConstructor, inversedBy?: string): ManyHasManyDefinition {\n\treturn new ManyHasManyDefinition({ target, inversedBy })\n}\n\nexport type ManyHasManyDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningTable?: Partial<Model.JoiningTable>\n\torderBy?: Model.OrderBy[]\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,8BAA8BA,gBAAAA,gBAA8C;AAAA,EAAlF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,uBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAA2C;AAC9C,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,aAAa,cAAkE;AACvE,WAAA,KAAK,WAAW,gBAAgB,YAAY;AAAA,EACpD;AAAA,EAEA,QACC,OACA,YAA8DC,OAAAA,MAAM,eAAe,KAC3D;AACxB,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,gBAAgB,6BAAiE;AAC7H,UAAM,UAAU,KAAK;AACrB,UAAM,cAAc,YAAY;AAAA,MAC/B;AAAA,MACA;AAAA,MACA,eAAe,QAAQ,QAAQ,MAAM;AAAA,MACrC,QAAQ;AAAA,IAAA;AAET,UAAM,eAAe;AAAA,MACpB,WAAW,YAAY,oBAAoB,YAAY,IAAI;AAAA,MAC3D,eAAe,EAAE,YAAY,YAAY,CAAC,GAAG,UAAUA,OAAAA,MAAM,SAAS,QAAQ;AAAA,MAC9E,sBAAsB,EAAE,YAAY,YAAY,CAAC,GAAG,UAAUA,OAAAA,MAAM,SAAS,QAAQ;AAAA,MACrF,UAAU,EAAE,SAAS,KAAK;AAAA,MAC1B,GAAG,QAAQ;AAAA,IAAA;AAGc,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAEhE,WAAA;AAAA,MACN,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C;AAAA,MACA,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AAAA,EAGU,WAAyD,KAAQ,OAA+D;AAClI,WAAA,IAAI,sBAAsB,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,MAAA,CAAO;AAAA,EACnE;AACD;AAGgB,SAAA,YAAY,QAA2B,YAA4C;AAClG,SAAO,IAAI,sBAAsB,EAAE,QAAQ,WAAY,CAAA;AACxD;;;"}
@@ -3,7 +3,7 @@ import { FieldDefinition } from "./FieldDefinition.js";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
5
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
6
- class ManyHasManyDefinitionImpl extends FieldDefinition {
6
+ class ManyHasManyDefinition extends FieldDefinition {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  __publicField(this, "type", "ManyHasManyDefinition");
@@ -43,12 +43,15 @@ class ManyHasManyDefinitionImpl extends FieldDefinition {
43
43
  ...options.orderBy ? { orderBy: options.orderBy } : {}
44
44
  };
45
45
  }
46
+ withOption(key, value) {
47
+ return new ManyHasManyDefinition({ ...this.options, [key]: value });
48
+ }
46
49
  }
47
50
  function manyHasMany(target, inversedBy) {
48
- return new ManyHasManyDefinitionImpl({ target, inversedBy });
51
+ return new ManyHasManyDefinition({ target, inversedBy });
49
52
  }
50
53
  export {
51
- ManyHasManyDefinitionImpl,
54
+ ManyHasManyDefinition,
52
55
  manyHasMany
53
56
  };
54
57
  //# sourceMappingURL=ManyHasManyDefinition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasManyDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EntityConstructor, Interface, RelationTarget } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class ManyHasManyDefinitionImpl extends FieldDefinition<ManyHasManyDefinitionOptions> {\n\ttype = 'ManyHasManyDefinition' as const\n\n\tinversedBy(inversedBy: string): Interface<ManyHasManyDefinition> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningTable(joiningTable: Partial<Model.JoiningTable>): Interface<ManyHasManyDefinition> {\n\t\treturn this.withOption('joiningTable', joiningTable)\n\t}\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): Interface<ManyHasManyDefinition> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst columnNames = conventions.getJoiningTableColumnNames(\n\t\t\tentityName,\n\t\t\tname,\n\t\t\tentityRegistry.getName(options.target),\n\t\t\toptions.inversedBy,\n\t\t)\n\t\tconst joiningTable = {\n\t\t\ttableName: conventions.getJoiningTableName(entityName, name),\n\t\t\tjoiningColumn: { columnName: columnNames[0], onDelete: Model.OnDelete.cascade },\n\t\t\tinverseJoiningColumn: { columnName: columnNames[1], onDelete: Model.OnDelete.cascade },\n\t\t\teventLog: { enabled: true },\n\t\t\t...options.joiningTable,\n\t\t}\n\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\n\t\treturn {\n\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\tname,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningTable: joiningTable,\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n}\n\nexport type ManyHasManyDefinition = Interface<ManyHasManyDefinitionImpl>\n\nexport function manyHasMany(target: EntityConstructor, inversedBy?: string): ManyHasManyDefinition {\n\treturn new ManyHasManyDefinitionImpl({ target, inversedBy })\n}\n\nexport type ManyHasManyDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningTable?: Partial<Model.JoiningTable>\n\torderBy?: Model.OrderBy[]\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,kCAAkC,gBAA8C;AAAA,EAAtF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,uBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAAsD;AACzD,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,aAAa,cAA6E;AAClF,WAAA,KAAK,WAAW,gBAAgB,YAAY;AAAA,EACpD;AAAA,EAEA,QACC,OACA,YAA8D,MAAM,eAAe,KAChD;AACnC,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,gBAAgB,6BAAiE;AAC7H,UAAM,UAAU,KAAK;AACrB,UAAM,cAAc,YAAY;AAAA,MAC/B;AAAA,MACA;AAAA,MACA,eAAe,QAAQ,QAAQ,MAAM;AAAA,MACrC,QAAQ;AAAA,IAAA;AAET,UAAM,eAAe;AAAA,MACpB,WAAW,YAAY,oBAAoB,YAAY,IAAI;AAAA,MAC3D,eAAe,EAAE,YAAY,YAAY,CAAC,GAAG,UAAU,MAAM,SAAS,QAAQ;AAAA,MAC9E,sBAAsB,EAAE,YAAY,YAAY,CAAC,GAAG,UAAU,MAAM,SAAS,QAAQ;AAAA,MACrF,UAAU,EAAE,SAAS,KAAK;AAAA,MAC1B,GAAG,QAAQ;AAAA,IAAA;AAGc,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAEhE,WAAA;AAAA,MACN,MAAM,MAAM,aAAa;AAAA,MACzB;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C;AAAA,MACA,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AACD;AAIgB,SAAA,YAAY,QAA2B,YAA4C;AAClG,SAAO,IAAI,0BAA0B,EAAE,QAAQ,WAAY,CAAA;AAC5D;"}
1
+ {"version":3,"file":"ManyHasManyDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EntityConstructor, RelationTarget } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class ManyHasManyDefinition extends FieldDefinition<ManyHasManyDefinitionOptions> {\n\ttype = 'ManyHasManyDefinition' as const\n\n\tinversedBy(inversedBy: string): ManyHasManyDefinition {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningTable(joiningTable: Partial<Model.JoiningTable>): ManyHasManyDefinition {\n\t\treturn this.withOption('joiningTable', joiningTable)\n\t}\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): ManyHasManyDefinition {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst columnNames = conventions.getJoiningTableColumnNames(\n\t\t\tentityName,\n\t\t\tname,\n\t\t\tentityRegistry.getName(options.target),\n\t\t\toptions.inversedBy,\n\t\t)\n\t\tconst joiningTable = {\n\t\t\ttableName: conventions.getJoiningTableName(entityName, name),\n\t\t\tjoiningColumn: { columnName: columnNames[0], onDelete: Model.OnDelete.cascade },\n\t\t\tinverseJoiningColumn: { columnName: columnNames[1], onDelete: Model.OnDelete.cascade },\n\t\t\teventLog: { enabled: true },\n\t\t\t...options.joiningTable,\n\t\t}\n\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\n\t\treturn {\n\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\tname,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningTable: joiningTable,\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\n\tprotected withOption<K extends keyof ManyHasManyDefinitionOptions>(key: K, value: ManyHasManyDefinitionOptions[K]): ManyHasManyDefinition {\n\t\treturn new ManyHasManyDefinition({ ...this.options, [key]: value })\n\t}\n}\n\n\nexport function manyHasMany(target: EntityConstructor, inversedBy?: string): ManyHasManyDefinition {\n\treturn new ManyHasManyDefinition({ target, inversedBy })\n}\n\nexport type ManyHasManyDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningTable?: Partial<Model.JoiningTable>\n\torderBy?: Model.OrderBy[]\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,8BAA8B,gBAA8C;AAAA,EAAlF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,uBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAA2C;AAC9C,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,aAAa,cAAkE;AACvE,WAAA,KAAK,WAAW,gBAAgB,YAAY;AAAA,EACpD;AAAA,EAEA,QACC,OACA,YAA8D,MAAM,eAAe,KAC3D;AACxB,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,gBAAgB,6BAAiE;AAC7H,UAAM,UAAU,KAAK;AACrB,UAAM,cAAc,YAAY;AAAA,MAC/B;AAAA,MACA;AAAA,MACA,eAAe,QAAQ,QAAQ,MAAM;AAAA,MACrC,QAAQ;AAAA,IAAA;AAET,UAAM,eAAe;AAAA,MACpB,WAAW,YAAY,oBAAoB,YAAY,IAAI;AAAA,MAC3D,eAAe,EAAE,YAAY,YAAY,CAAC,GAAG,UAAU,MAAM,SAAS,QAAQ;AAAA,MAC9E,sBAAsB,EAAE,YAAY,YAAY,CAAC,GAAG,UAAU,MAAM,SAAS,QAAQ;AAAA,MACrF,UAAU,EAAE,SAAS,KAAK;AAAA,MAC1B,GAAG,QAAQ;AAAA,IAAA;AAGc,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAEhE,WAAA;AAAA,MACN,MAAM,MAAM,aAAa;AAAA,MACzB;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C;AAAA,MACA,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AAAA,EAGU,WAAyD,KAAQ,OAA+D;AAClI,WAAA,IAAI,sBAAsB,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,MAAA,CAAO;AAAA,EACnE;AACD;AAGgB,SAAA,YAAY,QAA2B,YAA4C;AAClG,SAAO,IAAI,sBAAsB,EAAE,QAAQ,WAAY,CAAA;AACxD;"}
@@ -5,7 +5,7 @@ const FieldDefinition = require("./FieldDefinition.cjs");
5
5
  var __defProp = Object.defineProperty;
6
6
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
7
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
8
- class ManyHasManyInverseDefinitionImpl extends FieldDefinition.FieldDefinition {
8
+ class ManyHasManyInverseDefinition extends FieldDefinition.FieldDefinition {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  __publicField(this, "type", "ManyHasManyInverseDefinition");
@@ -24,14 +24,13 @@ class ManyHasManyInverseDefinitionImpl extends FieldDefinition.FieldDefinition {
24
24
  ...options.orderBy ? { orderBy: options.orderBy } : {}
25
25
  };
26
26
  }
27
+ withOption(key, value) {
28
+ return new ManyHasManyInverseDefinition({ ...this.options, [key]: value });
29
+ }
27
30
  }
28
31
  function manyHasManyInverse(target, ownedBy) {
29
- return new ManyHasManyInverseDefinitionImpl({ target, ownedBy });
30
- }
31
- function manyHasManyInversed(target, ownedBy) {
32
- return new ManyHasManyInverseDefinitionImpl({ target, ownedBy });
32
+ return new ManyHasManyInverseDefinition({ target, ownedBy });
33
33
  }
34
- exports.ManyHasManyInverseDefinitionImpl = ManyHasManyInverseDefinitionImpl;
34
+ exports.ManyHasManyInverseDefinition = ManyHasManyInverseDefinition;
35
35
  exports.manyHasManyInverse = manyHasManyInverse;
36
- exports.manyHasManyInversed = manyHasManyInversed;
37
36
  //# sourceMappingURL=ManyHasManyInverseDefinition.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasManyInverseDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EntityConstructor, Interface, RelationTarget } from '../types'\n\nexport class ManyHasManyInverseDefinitionImpl extends FieldDefinition<ManyHasManyInverseDefinitionOptions> {\n\ttype = 'ManyHasManyInverseDefinition' as const\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): Interface<ManyHasManyInverseDefinition> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n}\n\nexport type ManyHasManyInverseDefinition = Interface<ManyHasManyInverseDefinitionImpl>\n/** @deprecated use ManyHasManyInverseDefinition */\nexport type ManyHasManyInversedDefinition = Interface<ManyHasManyInverseDefinitionImpl>\n\nexport function manyHasManyInverse(target: EntityConstructor, ownedBy: string): ManyHasManyInverseDefinition {\n\treturn new ManyHasManyInverseDefinitionImpl({ target, ownedBy })\n}\n\n/** @deprecated use manyHasManyInverse */\nexport function manyHasManyInversed(target: EntityConstructor, ownedBy: string): ManyHasManyInverseDefinition {\n\treturn new ManyHasManyInverseDefinitionImpl({ target, ownedBy })\n}\n\nexport type ManyHasManyInverseDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\torderBy?: Model.OrderBy[]\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,yCAAyCA,gBAAAA,gBAAqD;AAAA,EAApG,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,8BAAA;AAAA,EAAA;AAAA,EAEP,QACC,OACA,YAA8DC,OAAAA,MAAM,eAAe,KACzC;AAC1C,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,kBAAsD;AAClG,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AACD;AAMgB,SAAA,mBAAmB,QAA2B,SAA+C;AAC5G,SAAO,IAAI,iCAAiC,EAAE,QAAQ,QAAS,CAAA;AAChE;AAGgB,SAAA,oBAAoB,QAA2B,SAA+C;AAC7G,SAAO,IAAI,iCAAiC,EAAE,QAAQ,QAAS,CAAA;AAChE;;;;"}
1
+ {"version":3,"file":"ManyHasManyInverseDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EntityConstructor, RelationTarget } from '../types'\n\nexport class ManyHasManyInverseDefinition extends FieldDefinition<ManyHasManyInverseDefinitionOptions> {\n\ttype = 'ManyHasManyInverseDefinition' as const\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): ManyHasManyInverseDefinition {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof ManyHasManyInverseDefinitionOptions>(key: K, value: ManyHasManyInverseDefinitionOptions[K]): ManyHasManyInverseDefinition {\n\t\treturn new ManyHasManyInverseDefinition({ ...this.options, [key]: value })\n\t}\n}\n\n\nexport function manyHasManyInverse(target: EntityConstructor, ownedBy: string): ManyHasManyInverseDefinition {\n\treturn new ManyHasManyInverseDefinition({ target, ownedBy })\n}\n\nexport type ManyHasManyInverseDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\torderBy?: Model.OrderBy[]\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,qCAAqCA,gBAAAA,gBAAqD;AAAA,EAAhG,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,8BAAA;AAAA,EAAA;AAAA,EAEP,QACC,OACA,YAA8DC,OAAAA,MAAM,eAAe,KACpD;AAC/B,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,kBAAsD;AAClG,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AAAA,EAEU,WAAgE,KAAQ,OAA6E;AACvJ,WAAA,IAAI,6BAA6B,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,MAAA,CAAO;AAAA,EAC1E;AACD;AAGgB,SAAA,mBAAmB,QAA2B,SAA+C;AAC5G,SAAO,IAAI,6BAA6B,EAAE,QAAQ,QAAS,CAAA;AAC5D;;;"}
@@ -3,7 +3,7 @@ import { FieldDefinition } from "./FieldDefinition.js";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
5
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
6
- class ManyHasManyInverseDefinitionImpl extends FieldDefinition {
6
+ class ManyHasManyInverseDefinition extends FieldDefinition {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  __publicField(this, "type", "ManyHasManyInverseDefinition");
@@ -22,16 +22,15 @@ class ManyHasManyInverseDefinitionImpl extends FieldDefinition {
22
22
  ...options.orderBy ? { orderBy: options.orderBy } : {}
23
23
  };
24
24
  }
25
+ withOption(key, value) {
26
+ return new ManyHasManyInverseDefinition({ ...this.options, [key]: value });
27
+ }
25
28
  }
26
29
  function manyHasManyInverse(target, ownedBy) {
27
- return new ManyHasManyInverseDefinitionImpl({ target, ownedBy });
28
- }
29
- function manyHasManyInversed(target, ownedBy) {
30
- return new ManyHasManyInverseDefinitionImpl({ target, ownedBy });
30
+ return new ManyHasManyInverseDefinition({ target, ownedBy });
31
31
  }
32
32
  export {
33
- ManyHasManyInverseDefinitionImpl,
34
- manyHasManyInverse,
35
- manyHasManyInversed
33
+ ManyHasManyInverseDefinition,
34
+ manyHasManyInverse
36
35
  };
37
36
  //# sourceMappingURL=ManyHasManyInverseDefinition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasManyInverseDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EntityConstructor, Interface, RelationTarget } from '../types'\n\nexport class ManyHasManyInverseDefinitionImpl extends FieldDefinition<ManyHasManyInverseDefinitionOptions> {\n\ttype = 'ManyHasManyInverseDefinition' as const\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): Interface<ManyHasManyInverseDefinition> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n}\n\nexport type ManyHasManyInverseDefinition = Interface<ManyHasManyInverseDefinitionImpl>\n/** @deprecated use ManyHasManyInverseDefinition */\nexport type ManyHasManyInversedDefinition = Interface<ManyHasManyInverseDefinitionImpl>\n\nexport function manyHasManyInverse(target: EntityConstructor, ownedBy: string): ManyHasManyInverseDefinition {\n\treturn new ManyHasManyInverseDefinitionImpl({ target, ownedBy })\n}\n\n/** @deprecated use manyHasManyInverse */\nexport function manyHasManyInversed(target: EntityConstructor, ownedBy: string): ManyHasManyInverseDefinition {\n\treturn new ManyHasManyInverseDefinitionImpl({ target, ownedBy })\n}\n\nexport type ManyHasManyInverseDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\torderBy?: Model.OrderBy[]\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,yCAAyC,gBAAqD;AAAA,EAApG,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,8BAAA;AAAA,EAAA;AAAA,EAEP,QACC,OACA,YAA8D,MAAM,eAAe,KACzC;AAC1C,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,kBAAsD;AAClG,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,MAAM,MAAM,aAAa;AAAA,MACzB,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AACD;AAMgB,SAAA,mBAAmB,QAA2B,SAA+C;AAC5G,SAAO,IAAI,iCAAiC,EAAE,QAAQ,QAAS,CAAA;AAChE;AAGgB,SAAA,oBAAoB,QAA2B,SAA+C;AAC7G,SAAO,IAAI,iCAAiC,EAAE,QAAQ,QAAS,CAAA;AAChE;"}
1
+ {"version":3,"file":"ManyHasManyInverseDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EntityConstructor, RelationTarget } from '../types'\n\nexport class ManyHasManyInverseDefinition extends FieldDefinition<ManyHasManyInverseDefinitionOptions> {\n\ttype = 'ManyHasManyInverseDefinition' as const\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): ManyHasManyInverseDefinition {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof ManyHasManyInverseDefinitionOptions>(key: K, value: ManyHasManyInverseDefinitionOptions[K]): ManyHasManyInverseDefinition {\n\t\treturn new ManyHasManyInverseDefinition({ ...this.options, [key]: value })\n\t}\n}\n\n\nexport function manyHasManyInverse(target: EntityConstructor, ownedBy: string): ManyHasManyInverseDefinition {\n\treturn new ManyHasManyInverseDefinition({ target, ownedBy })\n}\n\nexport type ManyHasManyInverseDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\torderBy?: Model.OrderBy[]\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,qCAAqC,gBAAqD;AAAA,EAAhG,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,8BAAA;AAAA,EAAA;AAAA,EAEP,QACC,OACA,YAA8D,MAAM,eAAe,KACpD;AAC/B,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,kBAAsD;AAClG,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,MAAM,MAAM,aAAa;AAAA,MACzB,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AAAA,EAEU,WAAgE,KAAQ,OAA6E;AACvJ,WAAA,IAAI,6BAA6B,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,MAAA,CAAO;AAAA,EAC1E;AACD;AAGgB,SAAA,mBAAmB,QAA2B,SAA+C;AAC5G,SAAO,IAAI,6BAA6B,EAAE,QAAQ,QAAS,CAAA;AAC5D;"}
@@ -5,7 +5,7 @@ const FieldDefinition = require("./FieldDefinition.cjs");
5
5
  var __defProp = Object.defineProperty;
6
6
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
7
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
8
- class ManyHasOneDefinitionImpl extends FieldDefinition.FieldDefinition {
8
+ class ManyHasOneDefinition extends FieldDefinition.FieldDefinition {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  __publicField(this, "type", "ManyHasOneDefinition");
@@ -48,10 +48,13 @@ class ManyHasOneDefinitionImpl extends FieldDefinition.FieldDefinition {
48
48
  }
49
49
  };
50
50
  }
51
+ withOption(key, value) {
52
+ return new ManyHasOneDefinition({ ...this.options, [key]: value });
53
+ }
51
54
  }
52
55
  function manyHasOne(target, inversedBy) {
53
- return new ManyHasOneDefinitionImpl({ target, inversedBy });
56
+ return new ManyHasOneDefinition({ target, inversedBy });
54
57
  }
55
- exports.ManyHasOneDefinitionImpl = ManyHasOneDefinitionImpl;
58
+ exports.ManyHasOneDefinition = ManyHasOneDefinition;
56
59
  exports.manyHasOne = manyHasOne;
57
60
  //# sourceMappingURL=ManyHasOneDefinition.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasOneDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts"],"sourcesContent":["import { EntityConstructor, Interface, RelationTarget } from '../types'\nimport { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class ManyHasOneDefinitionImpl extends FieldDefinition<ManyHasOneDefinitionOptions> {\n\ttype = 'ManyHasOneDefinition' as const\n\n\tinversedBy(inversedBy: string): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: onDelete as Model.OnDelete })\n\t}\n\n\tcascadeOnDelete(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })\n\t}\n\n\tsetNullOnDelete(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })\n\t}\n\n\trestrictOnDelete(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })\n\t}\n\n\tnotNull(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst joiningColumn = options.joiningColumn || {}\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\t\tstrictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn)\n\n\t\treturn {\n\t\t\tname: name,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningColumn: {\n\t\t\t\tcolumnName: joiningColumn.columnName || conventions.getJoiningColumnName(name),\n\t\t\t\tonDelete: joiningColumn.onDelete || Model.OnDelete.restrict,\n\t\t\t},\n\t\t}\n\t}\n}\n\nexport type ManyHasOneDefinition = Interface<ManyHasOneDefinitionImpl>\n\nexport function manyHasOne(target: EntityConstructor, inversedBy?: string): ManyHasOneDefinition {\n\treturn new ManyHasOneDefinitionImpl({ target, inversedBy })\n}\n\nexport type ManyHasOneDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningColumn?: Partial<Model.JoiningColumn>\n\tnullable?: boolean\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,iCAAiCA,gBAAAA,gBAA6C;AAAA,EAApF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAAqD;AACxD,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAAqD;AAC3D,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,WAAA,CAAY;AAAA,EACtF;AAAA,EAEA,SAAS,UAAiF;AAClF,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,SAAA,CAAsC;AAAA,EAChH;AAAA,EAEA,kBAAmD;AAClD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUC,OAAA,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,kBAAmD;AAClD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUA,OAAA,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,mBAAoD;AACnD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUA,OAAA,MAAM,SAAS,SAAU,CAAA;AAAA,EAC7G;AAAA,EAEA,UAA2C;AACnC,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,gBAAgB,6BAAiE;AAC7H,UAAM,UAAU,KAAK;AACf,UAAA,gBAAgB,QAAQ,iBAAiB;AACrB,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAC7C,8BAAA,kBAAkB,YAAY,MAAM,aAAa;AAEpE,WAAA;AAAA,MACN;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,MAC1D,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,eAAe;AAAA,QACd,YAAY,cAAc,cAAc,YAAY,qBAAqB,IAAI;AAAA,QAC7E,UAAU,cAAc,YAAYA,OAAA,MAAM,SAAS;AAAA,MACpD;AAAA,IAAA;AAAA,EAEF;AACD;AAIgB,SAAA,WAAW,QAA2B,YAA2C;AAChG,SAAO,IAAI,yBAAyB,EAAE,QAAQ,WAAY,CAAA;AAC3D;;;"}
1
+ {"version":3,"file":"ManyHasOneDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts"],"sourcesContent":["import { EntityConstructor, RelationTarget } from '../types'\nimport { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class ManyHasOneDefinition extends FieldDefinition<ManyHasOneDefinitionOptions> {\n\ttype = 'ManyHasOneDefinition' as const\n\n\tinversedBy(inversedBy: string): ManyHasOneDefinition {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: onDelete as Model.OnDelete })\n\t}\n\n\tcascadeOnDelete(): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })\n\t}\n\n\tsetNullOnDelete(): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })\n\t}\n\n\trestrictOnDelete(): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })\n\t}\n\n\tnotNull(): ManyHasOneDefinition {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst joiningColumn = options.joiningColumn || {}\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\t\tstrictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn)\n\n\t\treturn {\n\t\t\tname: name,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningColumn: {\n\t\t\t\tcolumnName: joiningColumn.columnName || conventions.getJoiningColumnName(name),\n\t\t\t\tonDelete: joiningColumn.onDelete || Model.OnDelete.restrict,\n\t\t\t},\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof ManyHasOneDefinitionOptions>(key: K, value: ManyHasOneDefinitionOptions[K]): ManyHasOneDefinition {\n\t\treturn new ManyHasOneDefinition({ ...this.options, [key]: value })\n\t}\n}\n\nexport function manyHasOne(target: EntityConstructor, inversedBy?: string): ManyHasOneDefinition {\n\treturn new ManyHasOneDefinition({ target, inversedBy })\n}\n\nexport type ManyHasOneDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningColumn?: Partial<Model.JoiningColumn>\n\tnullable?: boolean\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,6BAA6BA,gBAAAA,gBAA6C;AAAA,EAAhF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAA0C;AAC7C,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAA0C;AAChD,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,WAAA,CAAY;AAAA,EACtF;AAAA,EAEA,SAAS,UAAsE;AACvE,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,SAAA,CAAsC;AAAA,EAChH;AAAA,EAEA,kBAAwC;AACvC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUC,OAAA,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,kBAAwC;AACvC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUA,OAAA,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,mBAAyC;AACxC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUA,OAAA,MAAM,SAAS,SAAU,CAAA;AAAA,EAC7G;AAAA,EAEA,UAAgC;AACxB,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,gBAAgB,6BAAiE;AAC7H,UAAM,UAAU,KAAK;AACf,UAAA,gBAAgB,QAAQ,iBAAiB;AACrB,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAC7C,8BAAA,kBAAkB,YAAY,MAAM,aAAa;AAEpE,WAAA;AAAA,MACN;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,MAC1D,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,eAAe;AAAA,QACd,YAAY,cAAc,cAAc,YAAY,qBAAqB,IAAI;AAAA,QAC7E,UAAU,cAAc,YAAYA,OAAA,MAAM,SAAS;AAAA,MACpD;AAAA,IAAA;AAAA,EAEF;AAAA,EAEU,WAAwD,KAAQ,OAA6D;AAC/H,WAAA,IAAI,qBAAqB,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,MAAA,CAAO;AAAA,EAClE;AACD;AAEgB,SAAA,WAAW,QAA2B,YAA2C;AAChG,SAAO,IAAI,qBAAqB,EAAE,QAAQ,WAAY,CAAA;AACvD;;;"}
@@ -3,7 +3,7 @@ import { FieldDefinition } from "./FieldDefinition.js";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
5
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
6
- class ManyHasOneDefinitionImpl extends FieldDefinition {
6
+ class ManyHasOneDefinition extends FieldDefinition {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  __publicField(this, "type", "ManyHasOneDefinition");
@@ -46,12 +46,15 @@ class ManyHasOneDefinitionImpl extends FieldDefinition {
46
46
  }
47
47
  };
48
48
  }
49
+ withOption(key, value) {
50
+ return new ManyHasOneDefinition({ ...this.options, [key]: value });
51
+ }
49
52
  }
50
53
  function manyHasOne(target, inversedBy) {
51
- return new ManyHasOneDefinitionImpl({ target, inversedBy });
54
+ return new ManyHasOneDefinition({ target, inversedBy });
52
55
  }
53
56
  export {
54
- ManyHasOneDefinitionImpl,
57
+ ManyHasOneDefinition,
55
58
  manyHasOne
56
59
  };
57
60
  //# sourceMappingURL=ManyHasOneDefinition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasOneDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts"],"sourcesContent":["import { EntityConstructor, Interface, RelationTarget } from '../types'\nimport { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class ManyHasOneDefinitionImpl extends FieldDefinition<ManyHasOneDefinitionOptions> {\n\ttype = 'ManyHasOneDefinition' as const\n\n\tinversedBy(inversedBy: string): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: onDelete as Model.OnDelete })\n\t}\n\n\tcascadeOnDelete(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })\n\t}\n\n\tsetNullOnDelete(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })\n\t}\n\n\trestrictOnDelete(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })\n\t}\n\n\tnotNull(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst joiningColumn = options.joiningColumn || {}\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\t\tstrictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn)\n\n\t\treturn {\n\t\t\tname: name,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningColumn: {\n\t\t\t\tcolumnName: joiningColumn.columnName || conventions.getJoiningColumnName(name),\n\t\t\t\tonDelete: joiningColumn.onDelete || Model.OnDelete.restrict,\n\t\t\t},\n\t\t}\n\t}\n}\n\nexport type ManyHasOneDefinition = Interface<ManyHasOneDefinitionImpl>\n\nexport function manyHasOne(target: EntityConstructor, inversedBy?: string): ManyHasOneDefinition {\n\treturn new ManyHasOneDefinitionImpl({ target, inversedBy })\n}\n\nexport type ManyHasOneDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningColumn?: Partial<Model.JoiningColumn>\n\tnullable?: boolean\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,iCAAiC,gBAA6C;AAAA,EAApF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAAqD;AACxD,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAAqD;AAC3D,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,WAAA,CAAY;AAAA,EACtF;AAAA,EAEA,SAAS,UAAiF;AAClF,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,SAAA,CAAsC;AAAA,EAChH;AAAA,EAEA,kBAAmD;AAClD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,kBAAmD;AAClD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,mBAAoD;AACnD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,SAAU,CAAA;AAAA,EAC7G;AAAA,EAEA,UAA2C;AACnC,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,gBAAgB,6BAAiE;AAC7H,UAAM,UAAU,KAAK;AACf,UAAA,gBAAgB,QAAQ,iBAAiB;AACrB,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAC7C,8BAAA,kBAAkB,YAAY,MAAM,aAAa;AAEpE,WAAA;AAAA,MACN;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,MAC1D,MAAM,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,eAAe;AAAA,QACd,YAAY,cAAc,cAAc,YAAY,qBAAqB,IAAI;AAAA,QAC7E,UAAU,cAAc,YAAY,MAAM,SAAS;AAAA,MACpD;AAAA,IAAA;AAAA,EAEF;AACD;AAIgB,SAAA,WAAW,QAA2B,YAA2C;AAChG,SAAO,IAAI,yBAAyB,EAAE,QAAQ,WAAY,CAAA;AAC3D;"}
1
+ {"version":3,"file":"ManyHasOneDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts"],"sourcesContent":["import { EntityConstructor, RelationTarget } from '../types'\nimport { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class ManyHasOneDefinition extends FieldDefinition<ManyHasOneDefinitionOptions> {\n\ttype = 'ManyHasOneDefinition' as const\n\n\tinversedBy(inversedBy: string): ManyHasOneDefinition {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: onDelete as Model.OnDelete })\n\t}\n\n\tcascadeOnDelete(): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })\n\t}\n\n\tsetNullOnDelete(): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })\n\t}\n\n\trestrictOnDelete(): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })\n\t}\n\n\tnotNull(): ManyHasOneDefinition {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst joiningColumn = options.joiningColumn || {}\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\t\tstrictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn)\n\n\t\treturn {\n\t\t\tname: name,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningColumn: {\n\t\t\t\tcolumnName: joiningColumn.columnName || conventions.getJoiningColumnName(name),\n\t\t\t\tonDelete: joiningColumn.onDelete || Model.OnDelete.restrict,\n\t\t\t},\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof ManyHasOneDefinitionOptions>(key: K, value: ManyHasOneDefinitionOptions[K]): ManyHasOneDefinition {\n\t\treturn new ManyHasOneDefinition({ ...this.options, [key]: value })\n\t}\n}\n\nexport function manyHasOne(target: EntityConstructor, inversedBy?: string): ManyHasOneDefinition {\n\treturn new ManyHasOneDefinition({ target, inversedBy })\n}\n\nexport type ManyHasOneDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningColumn?: Partial<Model.JoiningColumn>\n\tnullable?: boolean\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,6BAA6B,gBAA6C;AAAA,EAAhF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAA0C;AAC7C,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAA0C;AAChD,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,WAAA,CAAY;AAAA,EACtF;AAAA,EAEA,SAAS,UAAsE;AACvE,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,SAAA,CAAsC;AAAA,EAChH;AAAA,EAEA,kBAAwC;AACvC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,kBAAwC;AACvC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,mBAAyC;AACxC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,SAAU,CAAA;AAAA,EAC7G;AAAA,EAEA,UAAgC;AACxB,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,gBAAgB,6BAAiE;AAC7H,UAAM,UAAU,KAAK;AACf,UAAA,gBAAgB,QAAQ,iBAAiB;AACrB,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAC7C,8BAAA,kBAAkB,YAAY,MAAM,aAAa;AAEpE,WAAA;AAAA,MACN;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,MAC1D,MAAM,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,eAAe;AAAA,QACd,YAAY,cAAc,cAAc,YAAY,qBAAqB,IAAI;AAAA,QAC7E,UAAU,cAAc,YAAY,MAAM,SAAS;AAAA,MACpD;AAAA,IAAA;AAAA,EAEF;AAAA,EAEU,WAAwD,KAAQ,OAA6D;AAC/H,WAAA,IAAI,qBAAqB,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,MAAA,CAAO;AAAA,EAClE;AACD;AAEgB,SAAA,WAAW,QAA2B,YAA2C;AAChG,SAAO,IAAI,qBAAqB,EAAE,QAAQ,WAAY,CAAA;AACvD;"}
@@ -5,7 +5,7 @@ const FieldDefinition = require("./FieldDefinition.cjs");
5
5
  var __defProp = Object.defineProperty;
6
6
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
7
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
8
- class OneHasManyDefinitionImpl extends FieldDefinition.FieldDefinition {
8
+ class OneHasManyDefinition extends FieldDefinition.FieldDefinition {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  __publicField(this, "type", "OneHasManyDefinition");
@@ -24,10 +24,13 @@ class OneHasManyDefinitionImpl extends FieldDefinition.FieldDefinition {
24
24
  ...options.orderBy ? { orderBy: options.orderBy } : {}
25
25
  };
26
26
  }
27
+ withOption(key, value) {
28
+ return new OneHasManyDefinition({ ...this.options, [key]: value });
29
+ }
27
30
  }
28
31
  function oneHasMany(target, ownedBy) {
29
- return new OneHasManyDefinitionImpl({ target, ownedBy });
32
+ return new OneHasManyDefinition({ target, ownedBy });
30
33
  }
31
- exports.OneHasManyDefinitionImpl = OneHasManyDefinitionImpl;
34
+ exports.OneHasManyDefinition = OneHasManyDefinition;
32
35
  exports.oneHasMany = oneHasMany;
33
36
  //# sourceMappingURL=OneHasManyDefinition.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasManyDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasManyDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EntityConstructor, Interface, RelationTarget } from '../types'\n\nexport class OneHasManyDefinitionImpl extends FieldDefinition<OneHasManyDefinitionOptions> {\n\ttype = 'OneHasManyDefinition' as const\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): Interface<OneHasManyDefinition> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\tcreateField({ name, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n}\n\nexport type OneHasManyDefinition = Interface<OneHasManyDefinitionImpl>\n\nexport function oneHasMany(target: EntityConstructor, ownedBy: string): OneHasManyDefinition {\n\treturn new OneHasManyDefinitionImpl({ target, ownedBy })\n}\n\nexport type OneHasManyDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\torderBy?: Model.OrderBy[]\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,iCAAiCA,gBAAAA,gBAA6C;AAAA,EAApF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,QACC,OACA,YAA8DC,OAAAA,MAAM,eAAe,KACjD;AAClC,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EACA,YAAY,EAAE,MAAM,kBAAsD;AACzE,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AACD;AAIgB,SAAA,WAAW,QAA2B,SAAuC;AAC5F,SAAO,IAAI,yBAAyB,EAAE,QAAQ,QAAS,CAAA;AACxD;;;"}
1
+ {"version":3,"file":"OneHasManyDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasManyDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EntityConstructor, RelationTarget } from '../types'\n\nexport class OneHasManyDefinition extends FieldDefinition<OneHasManyDefinitionOptions> {\n\ttype = 'OneHasManyDefinition' as const\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): OneHasManyDefinition {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\tcreateField({ name, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof OneHasManyDefinitionOptions>(key: K, value: OneHasManyDefinitionOptions[K]): OneHasManyDefinition {\n\t\treturn new OneHasManyDefinition({ ...this.options, [key]: value })\n\t}\n}\n\n\nexport function oneHasMany(target: EntityConstructor, ownedBy: string): OneHasManyDefinition {\n\treturn new OneHasManyDefinition({ target, ownedBy })\n}\n\nexport type OneHasManyDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\torderBy?: Model.OrderBy[]\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,6BAA6BA,gBAAAA,gBAA6C;AAAA,EAAhF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,QACC,OACA,YAA8DC,OAAAA,MAAM,eAAe,KAC5D;AACvB,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EACA,YAAY,EAAE,MAAM,kBAAsD;AACzE,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AAAA,EAEU,WAAwD,KAAQ,OAA6D;AAC/H,WAAA,IAAI,qBAAqB,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,MAAA,CAAO;AAAA,EAClE;AACD;AAGgB,SAAA,WAAW,QAA2B,SAAuC;AAC5F,SAAO,IAAI,qBAAqB,EAAE,QAAQ,QAAS,CAAA;AACpD;;;"}
@@ -3,7 +3,7 @@ import { FieldDefinition } from "./FieldDefinition.js";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
5
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
6
- class OneHasManyDefinitionImpl extends FieldDefinition {
6
+ class OneHasManyDefinition extends FieldDefinition {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  __publicField(this, "type", "OneHasManyDefinition");
@@ -22,12 +22,15 @@ class OneHasManyDefinitionImpl extends FieldDefinition {
22
22
  ...options.orderBy ? { orderBy: options.orderBy } : {}
23
23
  };
24
24
  }
25
+ withOption(key, value) {
26
+ return new OneHasManyDefinition({ ...this.options, [key]: value });
27
+ }
25
28
  }
26
29
  function oneHasMany(target, ownedBy) {
27
- return new OneHasManyDefinitionImpl({ target, ownedBy });
30
+ return new OneHasManyDefinition({ target, ownedBy });
28
31
  }
29
32
  export {
30
- OneHasManyDefinitionImpl,
33
+ OneHasManyDefinition,
31
34
  oneHasMany
32
35
  };
33
36
  //# sourceMappingURL=OneHasManyDefinition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasManyDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasManyDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EntityConstructor, Interface, RelationTarget } from '../types'\n\nexport class OneHasManyDefinitionImpl extends FieldDefinition<OneHasManyDefinitionOptions> {\n\ttype = 'OneHasManyDefinition' as const\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): Interface<OneHasManyDefinition> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\tcreateField({ name, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n}\n\nexport type OneHasManyDefinition = Interface<OneHasManyDefinitionImpl>\n\nexport function oneHasMany(target: EntityConstructor, ownedBy: string): OneHasManyDefinition {\n\treturn new OneHasManyDefinitionImpl({ target, ownedBy })\n}\n\nexport type OneHasManyDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\torderBy?: Model.OrderBy[]\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,iCAAiC,gBAA6C;AAAA,EAApF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,QACC,OACA,YAA8D,MAAM,eAAe,KACjD;AAClC,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EACA,YAAY,EAAE,MAAM,kBAAsD;AACzE,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,MAAM,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AACD;AAIgB,SAAA,WAAW,QAA2B,SAAuC;AAC5F,SAAO,IAAI,yBAAyB,EAAE,QAAQ,QAAS,CAAA;AACxD;"}
1
+ {"version":3,"file":"OneHasManyDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasManyDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EntityConstructor, RelationTarget } from '../types'\n\nexport class OneHasManyDefinition extends FieldDefinition<OneHasManyDefinitionOptions> {\n\ttype = 'OneHasManyDefinition' as const\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): OneHasManyDefinition {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\tcreateField({ name, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof OneHasManyDefinitionOptions>(key: K, value: OneHasManyDefinitionOptions[K]): OneHasManyDefinition {\n\t\treturn new OneHasManyDefinition({ ...this.options, [key]: value })\n\t}\n}\n\n\nexport function oneHasMany(target: EntityConstructor, ownedBy: string): OneHasManyDefinition {\n\treturn new OneHasManyDefinition({ target, ownedBy })\n}\n\nexport type OneHasManyDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\torderBy?: Model.OrderBy[]\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,6BAA6B,gBAA6C;AAAA,EAAhF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,QACC,OACA,YAA8D,MAAM,eAAe,KAC5D;AACvB,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EACA,YAAY,EAAE,MAAM,kBAAsD;AACzE,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,MAAM,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AAAA,EAEU,WAAwD,KAAQ,OAA6D;AAC/H,WAAA,IAAI,qBAAqB,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,MAAA,CAAO;AAAA,EAClE;AACD;AAGgB,SAAA,WAAW,QAA2B,SAAuC;AAC5F,SAAO,IAAI,qBAAqB,EAAE,QAAQ,QAAS,CAAA;AACpD;"}