@orion-js/models 4.0.4 → 4.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -108,6 +108,9 @@ function modelToSchema(options) {
108
108
  if (options.validateOptions) {
109
109
  compiledSchema.__validate = options.validateOptions;
110
110
  }
111
+ if (options.resolvers) {
112
+ compiledSchema.__resolvers = options.resolvers;
113
+ }
111
114
  for (const key in options.modelSchema) {
112
115
  if (key.startsWith("__")) {
113
116
  compiledSchema[key] = options.modelSchema[key];
@@ -121,27 +124,29 @@ function modelToSchema(options) {
121
124
  // src/createModel/index.ts
122
125
  function createModel(modelOptions) {
123
126
  const name = modelOptions.name;
127
+ let resolvedResolvers;
128
+ const getResolvers = () => {
129
+ if (!modelOptions.resolvers) return {};
130
+ if (!resolvedResolvers) {
131
+ resolvedResolvers = modelOptions.resolvers;
132
+ }
133
+ return resolvedResolvers;
134
+ };
124
135
  let resolvedSchema;
125
136
  const getSchema = () => {
126
137
  if (!modelOptions.schema) return {};
127
138
  if (!resolvedSchema) {
139
+ console.log("getting schema", getResolvers());
128
140
  resolvedSchema = modelToSchema({
129
141
  modelSchema: modelOptions.schema,
130
142
  modelName: model.name,
131
143
  cleanOptions: modelOptions.clean,
132
- validateOptions: modelOptions.validate
144
+ validateOptions: modelOptions.validate,
145
+ resolvers: getResolvers()
133
146
  });
134
147
  }
135
148
  return resolvedSchema;
136
149
  };
137
- let resolvedResolvers;
138
- const getResolvers = () => {
139
- if (!modelOptions.resolvers) return {};
140
- if (!resolvedResolvers) {
141
- resolvedResolvers = modelOptions.resolvers;
142
- }
143
- return resolvedResolvers;
144
- };
145
150
  const model = {
146
151
  __isModel: true,
147
152
  __modelName: name,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/createModel/index.ts","../src/createModel/clone.ts","../src/createModel/modelToSchema.ts"],"sourcesContent":["import createModel from './createModel'\nimport {modelToSchema} from './createModel/modelToSchema'\n\nexport {createModel, modelToSchema}\n\nexport * from './types'\n","import {CloneOptions, Model, CreateModelOptions, ModelResolversMap} from '../types'\nimport {validate, clean, Schema} from '@orion-js/schema'\nimport clone from './clone'\nimport {modelToSchema} from './modelToSchema'\n\nexport default function createModel<TSchema extends Schema>(\n modelOptions: CreateModelOptions<TSchema>,\n): Model<TSchema> {\n const name = modelOptions.name\n\n let resolvedSchema: Schema\n const getSchema = () => {\n if (!modelOptions.schema) return {}\n if (!resolvedSchema) {\n resolvedSchema = modelToSchema({\n modelSchema: modelOptions.schema,\n modelName: model.name,\n cleanOptions: modelOptions.clean,\n validateOptions: modelOptions.validate,\n })\n }\n return resolvedSchema\n }\n\n let resolvedResolvers: ModelResolversMap\n const getResolvers = () => {\n if (!modelOptions.resolvers) return {}\n if (!resolvedResolvers) {\n resolvedResolvers = modelOptions.resolvers\n }\n return resolvedResolvers\n }\n\n const model: Model<TSchema> = {\n __isModel: true,\n __modelName: name,\n name,\n getSchema,\n getResolvers,\n validate: async doc => {\n const schema = getSchema() as any\n return await validate(schema, doc)\n },\n clean: async doc => {\n const schema = getSchema() as any\n return await clean(schema, doc)\n },\n cleanAndValidate: async doc => {\n const schema = getSchema() as any\n const cleaned = (await clean(schema, doc)) as any\n await validate(schema, cleaned)\n return cleaned\n },\n clone: (cloneOptions: CloneOptions) => {\n return clone(\n {\n createModel,\n getSchema,\n getResolvers,\n modelOptions,\n },\n cloneOptions,\n )\n },\n type: null,\n }\n\n return model\n}\n","import {CreateModel, CloneOptions, CreateModelOptions, ModelResolversMap} from '../types'\nimport {clone as deepClone} from '@orion-js/helpers'\nimport {Schema} from '@orion-js/schema'\n\ninterface CloneInfo {\n createModel: CreateModel\n getSchema: () => Schema\n getResolvers: () => ModelResolversMap\n modelOptions: CreateModelOptions\n}\n\nconst clone = (cloneInfo: CloneInfo, options: CloneOptions) => {\n const {createModel, getSchema, getResolvers, modelOptions} = cloneInfo\n return createModel({\n name: options.name,\n clean: modelOptions.clean,\n validate: modelOptions.validate,\n resolvers: (() => {\n if (!options.extendResolvers) return getResolvers()\n\n return {\n ...getResolvers(),\n ...options.extendResolvers,\n } as ModelResolversMap\n })(),\n schema: (() => {\n const oldSchema = deepClone(getSchema())\n const newSchema = {}\n\n const keys = Object.keys(oldSchema)\n .filter(key => {\n if (!options.omitFields) return true\n return !options.omitFields.includes(key)\n })\n .filter(key => {\n if (!options.pickFields) return true\n return options.pickFields.includes(key)\n })\n\n for (const key of keys) {\n const field = oldSchema[key]\n if (options.mapFields) {\n newSchema[key] = options.mapFields(field, key)\n } else {\n newSchema[key] = field\n }\n }\n\n if (!options.extendSchema) return newSchema\n\n const clonedSchema = {\n ...newSchema,\n ...options.extendSchema,\n } as Schema\n\n return clonedSchema\n })(),\n })\n}\n\nexport default clone\n","import {\n getSchemaFromAnyOrionForm,\n getSchemaModelName,\n isSchemaLike,\n Schema,\n SchemaMetaFieldTypeSingle,\n SchemaNode,\n SchemaWithMetadata,\n} from '@orion-js/schema'\n\nexport function processModelSchemaKey(schemaNode: SchemaNode): SchemaNode {\n if (!schemaNode) return null\n\n if (Array.isArray(schemaNode.type)) {\n const processedItem = processModelSchemaKey({\n ...schemaNode,\n type: schemaNode.type[0],\n })\n\n const type = processedItem.type as SchemaMetaFieldTypeSingle\n\n return {\n ...processedItem,\n type: [type],\n }\n }\n\n if (isSchemaLike(schemaNode.type)) {\n return {\n ...schemaNode,\n type: modelToSchema({\n modelSchema: getSchemaFromAnyOrionForm(schemaNode.type) as Schema,\n modelName: getSchemaModelName(schemaNode.type),\n }),\n }\n }\n\n return schemaNode\n}\n\ninterface ModelToSchemaOptions {\n modelSchema: Schema\n modelName?: string\n cleanOptions?: any\n validateOptions?: any\n}\n\nexport function modelToSchema(options: ModelToSchemaOptions): Schema {\n const compiledSchema: SchemaWithMetadata = {}\n\n if (options.modelName) {\n compiledSchema.__modelName = options.modelName\n }\n\n if (options.cleanOptions) {\n compiledSchema.__clean = options.cleanOptions\n }\n\n if (options.validateOptions) {\n compiledSchema.__validate = options.validateOptions\n }\n\n for (const key in options.modelSchema) {\n if (key.startsWith('__')) {\n compiledSchema[key] = options.modelSchema[key]\n continue\n }\n compiledSchema[key] = processModelSchemaKey(options.modelSchema[key])\n }\n\n return compiledSchema as Schema\n}\n"],"mappings":"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","names":["import_schema","createModel","deepClone"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/createModel/index.ts","../src/createModel/clone.ts","../src/createModel/modelToSchema.ts"],"sourcesContent":["import createModel from './createModel'\nimport {modelToSchema} from './createModel/modelToSchema'\n\nexport {createModel, modelToSchema}\n\nexport * from './types'\n","import {CloneOptions, Model, CreateModelOptions, ModelResolversMap} from '../types'\nimport {validate, clean, Schema} from '@orion-js/schema'\nimport clone from './clone'\nimport {modelToSchema} from './modelToSchema'\n\nexport default function createModel<TSchema extends Schema>(\n modelOptions: CreateModelOptions<TSchema>,\n): Model<TSchema> {\n const name = modelOptions.name\n\n let resolvedResolvers: ModelResolversMap\n const getResolvers = () => {\n if (!modelOptions.resolvers) return {}\n if (!resolvedResolvers) {\n resolvedResolvers = modelOptions.resolvers\n }\n return resolvedResolvers\n }\n\n let resolvedSchema: Schema\n const getSchema = () => {\n if (!modelOptions.schema) return {}\n if (!resolvedSchema) {\n console.log('getting schema', getResolvers())\n resolvedSchema = modelToSchema({\n modelSchema: modelOptions.schema,\n modelName: model.name,\n cleanOptions: modelOptions.clean,\n validateOptions: modelOptions.validate,\n resolvers: getResolvers(),\n })\n }\n return resolvedSchema\n }\n\n const model: Model<TSchema> = {\n __isModel: true,\n __modelName: name,\n name,\n getSchema,\n getResolvers,\n validate: async doc => {\n const schema = getSchema() as any\n return await validate(schema, doc)\n },\n clean: async doc => {\n const schema = getSchema() as any\n return await clean(schema, doc)\n },\n cleanAndValidate: async doc => {\n const schema = getSchema() as any\n const cleaned = (await clean(schema, doc)) as any\n await validate(schema, cleaned)\n return cleaned\n },\n clone: (cloneOptions: CloneOptions) => {\n return clone(\n {\n createModel,\n getSchema,\n getResolvers,\n modelOptions,\n },\n cloneOptions,\n )\n },\n type: null,\n }\n\n return model\n}\n","import {CreateModel, CloneOptions, CreateModelOptions, ModelResolversMap} from '../types'\nimport {clone as deepClone} from '@orion-js/helpers'\nimport {Schema} from '@orion-js/schema'\n\ninterface CloneInfo {\n createModel: CreateModel\n getSchema: () => Schema\n getResolvers: () => ModelResolversMap\n modelOptions: CreateModelOptions\n}\n\nconst clone = (cloneInfo: CloneInfo, options: CloneOptions) => {\n const {createModel, getSchema, getResolvers, modelOptions} = cloneInfo\n return createModel({\n name: options.name,\n clean: modelOptions.clean,\n validate: modelOptions.validate,\n resolvers: (() => {\n if (!options.extendResolvers) return getResolvers()\n\n return {\n ...getResolvers(),\n ...options.extendResolvers,\n } as ModelResolversMap\n })(),\n schema: (() => {\n const oldSchema = deepClone(getSchema())\n const newSchema = {}\n\n const keys = Object.keys(oldSchema)\n .filter(key => {\n if (!options.omitFields) return true\n return !options.omitFields.includes(key)\n })\n .filter(key => {\n if (!options.pickFields) return true\n return options.pickFields.includes(key)\n })\n\n for (const key of keys) {\n const field = oldSchema[key]\n if (options.mapFields) {\n newSchema[key] = options.mapFields(field, key)\n } else {\n newSchema[key] = field\n }\n }\n\n if (!options.extendSchema) return newSchema\n\n const clonedSchema = {\n ...newSchema,\n ...options.extendSchema,\n } as Schema\n\n return clonedSchema\n })(),\n })\n}\n\nexport default clone\n","import {\n getSchemaFromAnyOrionForm,\n getSchemaModelName,\n isSchemaLike,\n Schema,\n SchemaMetaFieldTypeSingle,\n SchemaNode,\n SchemaWithMetadata,\n} from '@orion-js/schema'\nimport {ModelResolversMap} from '../types'\n\nexport function processModelSchemaKey(schemaNode: SchemaNode): SchemaNode {\n if (!schemaNode) return null\n\n if (Array.isArray(schemaNode.type)) {\n const processedItem = processModelSchemaKey({\n ...schemaNode,\n type: schemaNode.type[0],\n })\n\n const type = processedItem.type as SchemaMetaFieldTypeSingle\n\n return {\n ...processedItem,\n type: [type],\n }\n }\n\n if (isSchemaLike(schemaNode.type)) {\n return {\n ...schemaNode,\n type: modelToSchema({\n modelSchema: getSchemaFromAnyOrionForm(schemaNode.type) as Schema,\n modelName: getSchemaModelName(schemaNode.type),\n }),\n }\n }\n\n return schemaNode\n}\n\ninterface ModelToSchemaOptions {\n modelSchema: Schema\n modelName?: string\n cleanOptions?: any\n validateOptions?: any\n resolvers?: ModelResolversMap\n}\n\nexport function modelToSchema(options: ModelToSchemaOptions): Schema {\n const compiledSchema: SchemaWithMetadata = {}\n\n if (options.modelName) {\n compiledSchema.__modelName = options.modelName\n }\n\n if (options.cleanOptions) {\n compiledSchema.__clean = options.cleanOptions\n }\n\n if (options.validateOptions) {\n compiledSchema.__validate = options.validateOptions\n }\n\n if (options.resolvers) {\n compiledSchema.__resolvers = options.resolvers\n }\n\n for (const key in options.modelSchema) {\n if (key.startsWith('__')) {\n compiledSchema[key] = options.modelSchema[key]\n continue\n }\n compiledSchema[key] = processModelSchemaKey(options.modelSchema[key])\n }\n\n return compiledSchema as Schema\n}\n"],"mappings":"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","names":["import_schema","createModel","deepClone"]}
package/dist/index.d.cts CHANGED
@@ -93,6 +93,7 @@ interface ModelToSchemaOptions {
93
93
  modelName?: string;
94
94
  cleanOptions?: any;
95
95
  validateOptions?: any;
96
+ resolvers?: ModelResolversMap;
96
97
  }
97
98
  declare function modelToSchema(options: ModelToSchemaOptions): Schema;
98
99
 
package/dist/index.d.ts CHANGED
@@ -93,6 +93,7 @@ interface ModelToSchemaOptions {
93
93
  modelName?: string;
94
94
  cleanOptions?: any;
95
95
  validateOptions?: any;
96
+ resolvers?: ModelResolversMap;
96
97
  }
97
98
  declare function modelToSchema(options: ModelToSchemaOptions): Schema;
98
99
 
package/dist/index.js CHANGED
@@ -86,6 +86,9 @@ function modelToSchema(options) {
86
86
  if (options.validateOptions) {
87
87
  compiledSchema.__validate = options.validateOptions;
88
88
  }
89
+ if (options.resolvers) {
90
+ compiledSchema.__resolvers = options.resolvers;
91
+ }
89
92
  for (const key in options.modelSchema) {
90
93
  if (key.startsWith("__")) {
91
94
  compiledSchema[key] = options.modelSchema[key];
@@ -99,27 +102,29 @@ function modelToSchema(options) {
99
102
  // src/createModel/index.ts
100
103
  function createModel(modelOptions) {
101
104
  const name = modelOptions.name;
105
+ let resolvedResolvers;
106
+ const getResolvers = () => {
107
+ if (!modelOptions.resolvers) return {};
108
+ if (!resolvedResolvers) {
109
+ resolvedResolvers = modelOptions.resolvers;
110
+ }
111
+ return resolvedResolvers;
112
+ };
102
113
  let resolvedSchema;
103
114
  const getSchema = () => {
104
115
  if (!modelOptions.schema) return {};
105
116
  if (!resolvedSchema) {
117
+ console.log("getting schema", getResolvers());
106
118
  resolvedSchema = modelToSchema({
107
119
  modelSchema: modelOptions.schema,
108
120
  modelName: model.name,
109
121
  cleanOptions: modelOptions.clean,
110
- validateOptions: modelOptions.validate
122
+ validateOptions: modelOptions.validate,
123
+ resolvers: getResolvers()
111
124
  });
112
125
  }
113
126
  return resolvedSchema;
114
127
  };
115
- let resolvedResolvers;
116
- const getResolvers = () => {
117
- if (!modelOptions.resolvers) return {};
118
- if (!resolvedResolvers) {
119
- resolvedResolvers = modelOptions.resolvers;
120
- }
121
- return resolvedResolvers;
122
- };
123
128
  const model = {
124
129
  __isModel: true,
125
130
  __modelName: name,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/createModel/index.ts","../src/createModel/clone.ts","../src/createModel/modelToSchema.ts"],"sourcesContent":["import {CloneOptions, Model, CreateModelOptions, ModelResolversMap} from '../types'\nimport {validate, clean, Schema} from '@orion-js/schema'\nimport clone from './clone'\nimport {modelToSchema} from './modelToSchema'\n\nexport default function createModel<TSchema extends Schema>(\n modelOptions: CreateModelOptions<TSchema>,\n): Model<TSchema> {\n const name = modelOptions.name\n\n let resolvedSchema: Schema\n const getSchema = () => {\n if (!modelOptions.schema) return {}\n if (!resolvedSchema) {\n resolvedSchema = modelToSchema({\n modelSchema: modelOptions.schema,\n modelName: model.name,\n cleanOptions: modelOptions.clean,\n validateOptions: modelOptions.validate,\n })\n }\n return resolvedSchema\n }\n\n let resolvedResolvers: ModelResolversMap\n const getResolvers = () => {\n if (!modelOptions.resolvers) return {}\n if (!resolvedResolvers) {\n resolvedResolvers = modelOptions.resolvers\n }\n return resolvedResolvers\n }\n\n const model: Model<TSchema> = {\n __isModel: true,\n __modelName: name,\n name,\n getSchema,\n getResolvers,\n validate: async doc => {\n const schema = getSchema() as any\n return await validate(schema, doc)\n },\n clean: async doc => {\n const schema = getSchema() as any\n return await clean(schema, doc)\n },\n cleanAndValidate: async doc => {\n const schema = getSchema() as any\n const cleaned = (await clean(schema, doc)) as any\n await validate(schema, cleaned)\n return cleaned\n },\n clone: (cloneOptions: CloneOptions) => {\n return clone(\n {\n createModel,\n getSchema,\n getResolvers,\n modelOptions,\n },\n cloneOptions,\n )\n },\n type: null,\n }\n\n return model\n}\n","import {CreateModel, CloneOptions, CreateModelOptions, ModelResolversMap} from '../types'\nimport {clone as deepClone} from '@orion-js/helpers'\nimport {Schema} from '@orion-js/schema'\n\ninterface CloneInfo {\n createModel: CreateModel\n getSchema: () => Schema\n getResolvers: () => ModelResolversMap\n modelOptions: CreateModelOptions\n}\n\nconst clone = (cloneInfo: CloneInfo, options: CloneOptions) => {\n const {createModel, getSchema, getResolvers, modelOptions} = cloneInfo\n return createModel({\n name: options.name,\n clean: modelOptions.clean,\n validate: modelOptions.validate,\n resolvers: (() => {\n if (!options.extendResolvers) return getResolvers()\n\n return {\n ...getResolvers(),\n ...options.extendResolvers,\n } as ModelResolversMap\n })(),\n schema: (() => {\n const oldSchema = deepClone(getSchema())\n const newSchema = {}\n\n const keys = Object.keys(oldSchema)\n .filter(key => {\n if (!options.omitFields) return true\n return !options.omitFields.includes(key)\n })\n .filter(key => {\n if (!options.pickFields) return true\n return options.pickFields.includes(key)\n })\n\n for (const key of keys) {\n const field = oldSchema[key]\n if (options.mapFields) {\n newSchema[key] = options.mapFields(field, key)\n } else {\n newSchema[key] = field\n }\n }\n\n if (!options.extendSchema) return newSchema\n\n const clonedSchema = {\n ...newSchema,\n ...options.extendSchema,\n } as Schema\n\n return clonedSchema\n })(),\n })\n}\n\nexport default clone\n","import {\n getSchemaFromAnyOrionForm,\n getSchemaModelName,\n isSchemaLike,\n Schema,\n SchemaMetaFieldTypeSingle,\n SchemaNode,\n SchemaWithMetadata,\n} from '@orion-js/schema'\n\nexport function processModelSchemaKey(schemaNode: SchemaNode): SchemaNode {\n if (!schemaNode) return null\n\n if (Array.isArray(schemaNode.type)) {\n const processedItem = processModelSchemaKey({\n ...schemaNode,\n type: schemaNode.type[0],\n })\n\n const type = processedItem.type as SchemaMetaFieldTypeSingle\n\n return {\n ...processedItem,\n type: [type],\n }\n }\n\n if (isSchemaLike(schemaNode.type)) {\n return {\n ...schemaNode,\n type: modelToSchema({\n modelSchema: getSchemaFromAnyOrionForm(schemaNode.type) as Schema,\n modelName: getSchemaModelName(schemaNode.type),\n }),\n }\n }\n\n return schemaNode\n}\n\ninterface ModelToSchemaOptions {\n modelSchema: Schema\n modelName?: string\n cleanOptions?: any\n validateOptions?: any\n}\n\nexport function modelToSchema(options: ModelToSchemaOptions): Schema {\n const compiledSchema: SchemaWithMetadata = {}\n\n if (options.modelName) {\n compiledSchema.__modelName = options.modelName\n }\n\n if (options.cleanOptions) {\n compiledSchema.__clean = options.cleanOptions\n }\n\n if (options.validateOptions) {\n compiledSchema.__validate = options.validateOptions\n }\n\n for (const key in options.modelSchema) {\n if (key.startsWith('__')) {\n compiledSchema[key] = options.modelSchema[key]\n continue\n }\n compiledSchema[key] = processModelSchemaKey(options.modelSchema[key])\n }\n\n return compiledSchema as Schema\n}\n"],"mappings":"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","names":["createModel"]}
1
+ {"version":3,"sources":["../src/createModel/index.ts","../src/createModel/clone.ts","../src/createModel/modelToSchema.ts"],"sourcesContent":["import {CloneOptions, Model, CreateModelOptions, ModelResolversMap} from '../types'\nimport {validate, clean, Schema} from '@orion-js/schema'\nimport clone from './clone'\nimport {modelToSchema} from './modelToSchema'\n\nexport default function createModel<TSchema extends Schema>(\n modelOptions: CreateModelOptions<TSchema>,\n): Model<TSchema> {\n const name = modelOptions.name\n\n let resolvedResolvers: ModelResolversMap\n const getResolvers = () => {\n if (!modelOptions.resolvers) return {}\n if (!resolvedResolvers) {\n resolvedResolvers = modelOptions.resolvers\n }\n return resolvedResolvers\n }\n\n let resolvedSchema: Schema\n const getSchema = () => {\n if (!modelOptions.schema) return {}\n if (!resolvedSchema) {\n console.log('getting schema', getResolvers())\n resolvedSchema = modelToSchema({\n modelSchema: modelOptions.schema,\n modelName: model.name,\n cleanOptions: modelOptions.clean,\n validateOptions: modelOptions.validate,\n resolvers: getResolvers(),\n })\n }\n return resolvedSchema\n }\n\n const model: Model<TSchema> = {\n __isModel: true,\n __modelName: name,\n name,\n getSchema,\n getResolvers,\n validate: async doc => {\n const schema = getSchema() as any\n return await validate(schema, doc)\n },\n clean: async doc => {\n const schema = getSchema() as any\n return await clean(schema, doc)\n },\n cleanAndValidate: async doc => {\n const schema = getSchema() as any\n const cleaned = (await clean(schema, doc)) as any\n await validate(schema, cleaned)\n return cleaned\n },\n clone: (cloneOptions: CloneOptions) => {\n return clone(\n {\n createModel,\n getSchema,\n getResolvers,\n modelOptions,\n },\n cloneOptions,\n )\n },\n type: null,\n }\n\n return model\n}\n","import {CreateModel, CloneOptions, CreateModelOptions, ModelResolversMap} from '../types'\nimport {clone as deepClone} from '@orion-js/helpers'\nimport {Schema} from '@orion-js/schema'\n\ninterface CloneInfo {\n createModel: CreateModel\n getSchema: () => Schema\n getResolvers: () => ModelResolversMap\n modelOptions: CreateModelOptions\n}\n\nconst clone = (cloneInfo: CloneInfo, options: CloneOptions) => {\n const {createModel, getSchema, getResolvers, modelOptions} = cloneInfo\n return createModel({\n name: options.name,\n clean: modelOptions.clean,\n validate: modelOptions.validate,\n resolvers: (() => {\n if (!options.extendResolvers) return getResolvers()\n\n return {\n ...getResolvers(),\n ...options.extendResolvers,\n } as ModelResolversMap\n })(),\n schema: (() => {\n const oldSchema = deepClone(getSchema())\n const newSchema = {}\n\n const keys = Object.keys(oldSchema)\n .filter(key => {\n if (!options.omitFields) return true\n return !options.omitFields.includes(key)\n })\n .filter(key => {\n if (!options.pickFields) return true\n return options.pickFields.includes(key)\n })\n\n for (const key of keys) {\n const field = oldSchema[key]\n if (options.mapFields) {\n newSchema[key] = options.mapFields(field, key)\n } else {\n newSchema[key] = field\n }\n }\n\n if (!options.extendSchema) return newSchema\n\n const clonedSchema = {\n ...newSchema,\n ...options.extendSchema,\n } as Schema\n\n return clonedSchema\n })(),\n })\n}\n\nexport default clone\n","import {\n getSchemaFromAnyOrionForm,\n getSchemaModelName,\n isSchemaLike,\n Schema,\n SchemaMetaFieldTypeSingle,\n SchemaNode,\n SchemaWithMetadata,\n} from '@orion-js/schema'\nimport {ModelResolversMap} from '../types'\n\nexport function processModelSchemaKey(schemaNode: SchemaNode): SchemaNode {\n if (!schemaNode) return null\n\n if (Array.isArray(schemaNode.type)) {\n const processedItem = processModelSchemaKey({\n ...schemaNode,\n type: schemaNode.type[0],\n })\n\n const type = processedItem.type as SchemaMetaFieldTypeSingle\n\n return {\n ...processedItem,\n type: [type],\n }\n }\n\n if (isSchemaLike(schemaNode.type)) {\n return {\n ...schemaNode,\n type: modelToSchema({\n modelSchema: getSchemaFromAnyOrionForm(schemaNode.type) as Schema,\n modelName: getSchemaModelName(schemaNode.type),\n }),\n }\n }\n\n return schemaNode\n}\n\ninterface ModelToSchemaOptions {\n modelSchema: Schema\n modelName?: string\n cleanOptions?: any\n validateOptions?: any\n resolvers?: ModelResolversMap\n}\n\nexport function modelToSchema(options: ModelToSchemaOptions): Schema {\n const compiledSchema: SchemaWithMetadata = {}\n\n if (options.modelName) {\n compiledSchema.__modelName = options.modelName\n }\n\n if (options.cleanOptions) {\n compiledSchema.__clean = options.cleanOptions\n }\n\n if (options.validateOptions) {\n compiledSchema.__validate = options.validateOptions\n }\n\n if (options.resolvers) {\n compiledSchema.__resolvers = options.resolvers\n }\n\n for (const key in options.modelSchema) {\n if (key.startsWith('__')) {\n compiledSchema[key] = options.modelSchema[key]\n continue\n }\n compiledSchema[key] = processModelSchemaKey(options.modelSchema[key])\n }\n\n return compiledSchema as Schema\n}\n"],"mappings":"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","names":["createModel"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orion-js/models",
3
- "version": "4.0.4",
3
+ "version": "4.0.5",
4
4
  "main": "./dist/index.cjs",
5
5
  "types": "./dist/index.d.ts",
6
6
  "files": [
@@ -9,9 +9,9 @@
9
9
  "author": "nicolaslopezj",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
- "@orion-js/helpers": "4.0.0",
13
- "@orion-js/resolvers": "4.0.3",
14
- "@orion-js/schema": "4.0.3"
12
+ "@orion-js/helpers": "4.0.1",
13
+ "@orion-js/resolvers": "4.0.4",
14
+ "@orion-js/schema": "4.0.4"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@types/node": "^18.0.0",