@ember-data/model 5.4.0-beta.11 → 5.4.0-beta.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 (33) hide show
  1. package/dist/-private.js +2 -2
  2. package/dist/{has-many-78F2FHCC.js → has-many-B7JDN69X.js} +2 -2
  3. package/dist/has-many-B7JDN69X.js.map +1 -0
  4. package/dist/{hooks-BgrTI_ff.js → hooks-CW9adWmR.js} +2 -2
  5. package/dist/{hooks-BgrTI_ff.js.map → hooks-CW9adWmR.js.map} +1 -1
  6. package/dist/hooks.js +2 -2
  7. package/dist/index.js +4 -4
  8. package/dist/migration-support.js +2 -2
  9. package/dist/migration-support.js.map +1 -1
  10. package/dist/{model-BFnMMaye.js → model-CAqu4cYw.js} +13 -65
  11. package/dist/model-CAqu4cYw.js.map +1 -0
  12. package/dist/{schema-provider-Cgpcwfn7.js → schema-provider-BtvdNYTK.js} +7 -7
  13. package/dist/schema-provider-BtvdNYTK.js.map +1 -0
  14. package/package.json +42 -31
  15. package/unstable-preview-types/-private/attr.d.ts +2 -1
  16. package/unstable-preview-types/-private/attr.d.ts.map +1 -1
  17. package/unstable-preview-types/-private/errors.d.ts +0 -2
  18. package/unstable-preview-types/-private/errors.d.ts.map +1 -1
  19. package/unstable-preview-types/-private/legacy-relationships-support.d.ts.map +1 -1
  20. package/unstable-preview-types/-private/model.d.ts +1 -2
  21. package/unstable-preview-types/-private/model.d.ts.map +1 -1
  22. package/unstable-preview-types/-private/promise-belongs-to.d.ts +0 -2
  23. package/unstable-preview-types/-private/promise-belongs-to.d.ts.map +1 -1
  24. package/unstable-preview-types/-private/promise-many-array.d.ts.map +1 -1
  25. package/unstable-preview-types/-private/references/belongs-to.d.ts.map +1 -1
  26. package/unstable-preview-types/-private/references/has-many.d.ts +1 -1
  27. package/unstable-preview-types/-private/references/has-many.d.ts.map +1 -1
  28. package/unstable-preview-types/-private/util.d.ts +0 -3
  29. package/unstable-preview-types/-private/util.d.ts.map +1 -1
  30. package/unstable-preview-types/index.d.ts +17 -17
  31. package/dist/has-many-78F2FHCC.js.map +0 -1
  32. package/dist/model-BFnMMaye.js.map +0 -1
  33. package/dist/schema-provider-Cgpcwfn7.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-provider-Cgpcwfn7.js","sources":["../src/-private/model-for-mixin.ts","../src/-private/schema-provider.ts"],"sourcesContent":["import { getOwner } from '@ember/application';\n\nimport type Store from '@ember-data/store';\n\nimport { Model, type ModelFactory } from './model';\n\n/*\n In case someone defined a relationship to a mixin, for example:\n ```ts\n class CommentModel extends Model {\n @belongsTo('commentable', { polymorphic: true }) owner;\n }\n\n let Commentable = Mixin.create({\n @hasMany('comment') comments;\n });\n ```\n we want to look up a Commentable class which has all the necessary\n relationship meta data. Thus, we look up the mixin and create a mock\n Model, so we can access the relationship CPs of the mixin (`comments`)\n in this case\n */\nexport default function modelForMixin(store: Store, normalizedModelName: string): ModelFactory | undefined {\n const owner = getOwner(store)!;\n const MaybeMixin = owner.factoryFor(`mixin:${normalizedModelName}`);\n const mixin = MaybeMixin && MaybeMixin.class;\n if (mixin) {\n const ModelForMixin = Model.extend(mixin) as unknown as { __isMixin: boolean; __mixin: typeof mixin };\n ModelForMixin.__isMixin = true;\n ModelForMixin.__mixin = mixin;\n //Cache the class as a model\n owner.register(`model:${normalizedModelName}`, ModelForMixin);\n }\n return owner.factoryFor(`model:${normalizedModelName}`) as ModelFactory | undefined;\n}\n","import { getOwner } from '@ember/application';\nimport { deprecate } from '@ember/debug';\n\nimport type Store from '@ember-data/store';\nimport type { SchemaService } from '@ember-data/store/types';\nimport { ENABLE_LEGACY_SCHEMA_SERVICE } from '@warp-drive/build-config/deprecations';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { RecordIdentifier, StableRecordIdentifier } from '@warp-drive/core-types/identifier';\nimport type { ObjectValue } from '@warp-drive/core-types/json/raw';\nimport type { Derivation, HashFn, Transformation } from '@warp-drive/core-types/schema/concepts';\nimport type {\n ArrayField,\n DerivedField,\n GenericField,\n HashField,\n LegacyAttributeField,\n LegacyFieldSchema,\n LegacyRelationshipSchema,\n ObjectField,\n ResourceSchema,\n} from '@warp-drive/core-types/schema/fields';\n\nimport type { FactoryCache, Model, ModelFactory, ModelStore } from './model';\nimport _modelForMixin from './model-for-mixin';\nimport { normalizeModelName } from './util';\n\ntype AttributesSchema = ReturnType<Exclude<SchemaService['attributesDefinitionFor'], undefined>>;\ntype RelationshipsSchema = ReturnType<Exclude<SchemaService['relationshipsDefinitionFor'], undefined>>;\n\ntype InternalSchema = {\n schema: ResourceSchema;\n fields: Map<string, LegacyAttributeField | LegacyRelationshipSchema>;\n attributes: Record<string, LegacyAttributeField>;\n relationships: Record<string, LegacyRelationshipSchema>;\n};\n\nexport interface ModelSchemaProvider {\n attributesDefinitionFor(resource: RecordIdentifier | { type: string }): AttributesSchema;\n\n relationshipsDefinitionFor(resource: RecordIdentifier | { type: string }): RelationshipsSchema;\n\n doesTypeExist(type: string): boolean;\n}\nexport class ModelSchemaProvider implements SchemaService {\n declare store: ModelStore;\n declare _schemas: Map<string, InternalSchema>;\n declare _typeMisses: Set<string>;\n\n constructor(store: ModelStore) {\n this.store = store;\n this._schemas = new Map();\n this._typeMisses = new Set();\n }\n\n hasTrait(type: string): boolean {\n assert(`hasTrait is not available with @ember-data/model's SchemaService`);\n return false;\n }\n resourceHasTrait(resource: StableRecordIdentifier | { type: string }, trait: string): boolean {\n assert(`resourceHasTrait is not available with @ember-data/model's SchemaService`);\n return false;\n }\n transformation(field: GenericField | ObjectField | ArrayField | { type: string }): Transformation {\n assert(`transformation is not available with @ember-data/model's SchemaService`);\n }\n derivation(field: DerivedField | { type: string }): Derivation {\n assert(`derivation is not available with @ember-data/model's SchemaService`);\n }\n hashFn(field: HashField | { type: string }): HashFn {\n assert(`hashFn is not available with @ember-data/model's SchemaService`);\n }\n resource(resource: StableRecordIdentifier | { type: string }): ResourceSchema {\n const type = normalizeModelName(resource.type);\n\n if (!this._schemas.has(type)) {\n this._loadModelSchema(type);\n }\n\n return this._schemas.get(type)!.schema;\n }\n registerResources(schemas: ResourceSchema[]): void {\n assert(`registerResources is not available with @ember-data/model's SchemaService`);\n }\n registerResource(schema: ResourceSchema): void {\n assert(`registerResource is not available with @ember-data/model's SchemaService`);\n }\n registerTransformation(transform: Transformation): void {\n assert(`registerTransformation is not available with @ember-data/model's SchemaService`);\n }\n registerDerivation<R, T, FM extends ObjectValue | null>(derivation: Derivation<R, T, FM>): void {\n assert(`registerDerivation is not available with @ember-data/model's SchemaService`);\n }\n registerHashFn(hashFn: HashFn): void {\n assert(`registerHashFn is not available with @ember-data/model's SchemaService`);\n }\n _loadModelSchema(type: string) {\n const modelClass = this.store.modelFor(type) as typeof Model;\n const attributeMap = modelClass.attributes;\n\n const attributes = Object.create(null) as AttributesSchema;\n attributeMap.forEach((meta, name) => (attributes[name] = meta));\n const relationships = modelClass.relationshipsObject || null;\n const fields = new Map<string, LegacyAttributeField | LegacyRelationshipSchema>();\n\n for (const attr of Object.values(attributes)) {\n fields.set(attr.name, attr);\n }\n\n for (const rel of Object.values(relationships)) {\n fields.set(rel.name, rel);\n }\n\n const schema: ResourceSchema = {\n legacy: true,\n identity: { name: 'id', kind: '@id' },\n type,\n fields: Array.from(fields.values()),\n };\n\n const internalSchema: InternalSchema = {\n schema,\n attributes,\n relationships,\n fields,\n };\n\n this._schemas.set(type, internalSchema);\n\n return internalSchema;\n }\n\n fields(resource: RecordIdentifier | { type: string }): Map<string, LegacyFieldSchema> {\n const type = normalizeModelName(resource.type);\n\n if (!this._schemas.has(type)) {\n this._loadModelSchema(type);\n }\n\n return this._schemas.get(type)!.fields;\n }\n\n hasResource(resource: { type: string }): boolean {\n const type = normalizeModelName(resource.type);\n\n if (this._schemas.has(type)) {\n return true;\n }\n\n if (this._typeMisses.has(type)) {\n return false;\n }\n\n const factory = getModelFactory(this.store, type);\n const exists = factory !== null;\n\n if (!exists) {\n this._typeMisses.add(type);\n return false;\n }\n\n return true;\n }\n}\n\nif (ENABLE_LEGACY_SCHEMA_SERVICE) {\n ModelSchemaProvider.prototype.doesTypeExist = function (type: string): boolean {\n deprecate(`Use \\`schema.hasResource({ type })\\` instead of \\`schema.doesTypeExist(type)\\``, false, {\n id: 'ember-data:schema-service-updates',\n until: '5.0',\n for: 'ember-data',\n since: {\n available: '5.4',\n enabled: '5.4',\n },\n });\n return this.hasResource({ type });\n };\n\n ModelSchemaProvider.prototype.attributesDefinitionFor = function (\n resource: RecordIdentifier | { type: string }\n ): AttributesSchema {\n deprecate(`Use \\`schema.fields({ type })\\` instead of \\`schema.attributesDefinitionFor({ type })\\``, false, {\n id: 'ember-data:schema-service-updates',\n until: '5.0',\n for: 'ember-data',\n since: {\n available: '5.4',\n enabled: '5.4',\n },\n });\n const type = normalizeModelName(resource.type);\n\n if (!this._schemas.has(type)) {\n this._loadModelSchema(type);\n }\n\n return this._schemas.get(type)!.attributes;\n };\n\n ModelSchemaProvider.prototype.relationshipsDefinitionFor = function (\n resource: RecordIdentifier | { type: string }\n ): RelationshipsSchema {\n deprecate(`Use \\`schema.fields({ type })\\` instead of \\`schema.relationshipsDefinitionFor({ type })\\``, false, {\n id: 'ember-data:schema-service-updates',\n until: '5.0',\n for: 'ember-data',\n since: {\n available: '5.4',\n enabled: '5.4',\n },\n });\n const type = normalizeModelName(resource.type);\n\n if (!this._schemas.has(type)) {\n this._loadModelSchema(type);\n }\n\n return this._schemas.get(type)!.relationships;\n };\n}\n\nexport function buildSchema(store: Store): SchemaService {\n return new ModelSchemaProvider(store as ModelStore);\n}\n\nexport function getModelFactory(store: ModelStore, type: string): ModelFactory | null {\n if (!store._modelFactoryCache) {\n store._modelFactoryCache = Object.create(null) as FactoryCache;\n }\n const cache = store._modelFactoryCache;\n let factory: ModelFactory | undefined = cache[type];\n\n if (!factory) {\n const owner = getOwner(store)!;\n factory = owner.factoryFor(`model:${type}`) as ModelFactory | undefined;\n\n if (!factory) {\n //Support looking up mixins as base types for polymorphic relationships\n factory = _modelForMixin(store, type);\n }\n\n if (!factory) {\n // we don't cache misses in case someone wants to register a missing model\n return null;\n }\n\n const klass = factory.class;\n\n if (klass.isModel) {\n const hasOwnModelNameSet = klass.modelName && Object.prototype.hasOwnProperty.call(klass, 'modelName');\n if (!hasOwnModelNameSet) {\n Object.defineProperty(klass, 'modelName', { value: type });\n }\n }\n\n cache[type] = factory;\n }\n\n return factory;\n}\n"],"names":["modelForMixin","store","normalizedModelName","owner","getOwner","MaybeMixin","factoryFor","mixin","class","ModelForMixin","Model","extend","__isMixin","__mixin","register","ModelSchemaProvider","constructor","_schemas","Map","_typeMisses","Set","hasTrait","type","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","Error","resourceHasTrait","resource","trait","transformation","field","derivation","hashFn","normalizeModelName","has","_loadModelSchema","get","schema","registerResources","schemas","registerResource","registerTransformation","transform","registerDerivation","registerHashFn","modelClass","modelFor","attributeMap","attributes","Object","create","forEach","meta","name","relationships","relationshipsObject","fields","attr","values","set","rel","legacy","identity","kind","Array","from","internalSchema","hasResource","factory","getModelFactory","exists","add","deprecations","ENABLE_LEGACY_SCHEMA_SERVICE","prototype","doesTypeExist","deprecate","id","until","for","since","available","enabled","attributesDefinitionFor","relationshipsDefinitionFor","buildSchema","_modelFactoryCache","cache","_modelForMixin","klass","isModel","hasOwnModelNameSet","modelName","hasOwnProperty","call","defineProperty","value"],"mappings":"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"}