@orion-js/models 4.0.3 → 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
@@ -76,7 +76,6 @@ var import_schema = require("@orion-js/schema");
76
76
  function processModelSchemaKey(schemaNode) {
77
77
  if (!schemaNode) return null;
78
78
  if (Array.isArray(schemaNode.type)) {
79
- console.log("processing array", schemaNode.type);
80
79
  const processedItem = processModelSchemaKey({
81
80
  ...schemaNode,
82
81
  type: schemaNode.type[0]
@@ -109,6 +108,9 @@ function modelToSchema(options) {
109
108
  if (options.validateOptions) {
110
109
  compiledSchema.__validate = options.validateOptions;
111
110
  }
111
+ if (options.resolvers) {
112
+ compiledSchema.__resolvers = options.resolvers;
113
+ }
112
114
  for (const key in options.modelSchema) {
113
115
  if (key.startsWith("__")) {
114
116
  compiledSchema[key] = options.modelSchema[key];
@@ -122,27 +124,29 @@ function modelToSchema(options) {
122
124
  // src/createModel/index.ts
123
125
  function createModel(modelOptions) {
124
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
+ };
125
135
  let resolvedSchema;
126
136
  const getSchema = () => {
127
137
  if (!modelOptions.schema) return {};
128
138
  if (!resolvedSchema) {
139
+ console.log("getting schema", getResolvers());
129
140
  resolvedSchema = modelToSchema({
130
141
  modelSchema: modelOptions.schema,
131
142
  modelName: model.name,
132
143
  cleanOptions: modelOptions.clean,
133
- validateOptions: modelOptions.validate
144
+ validateOptions: modelOptions.validate,
145
+ resolvers: getResolvers()
134
146
  });
135
147
  }
136
148
  return resolvedSchema;
137
149
  };
138
- let resolvedResolvers;
139
- const getResolvers = () => {
140
- if (!modelOptions.resolvers) return {};
141
- if (!resolvedResolvers) {
142
- resolvedResolvers = modelOptions.resolvers;
143
- }
144
- return resolvedResolvers;
145
- };
146
150
  const model = {
147
151
  __isModel: true,
148
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 console.log('processing array', 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
@@ -54,7 +54,6 @@ import {
54
54
  function processModelSchemaKey(schemaNode) {
55
55
  if (!schemaNode) return null;
56
56
  if (Array.isArray(schemaNode.type)) {
57
- console.log("processing array", schemaNode.type);
58
57
  const processedItem = processModelSchemaKey({
59
58
  ...schemaNode,
60
59
  type: schemaNode.type[0]
@@ -87,6 +86,9 @@ function modelToSchema(options) {
87
86
  if (options.validateOptions) {
88
87
  compiledSchema.__validate = options.validateOptions;
89
88
  }
89
+ if (options.resolvers) {
90
+ compiledSchema.__resolvers = options.resolvers;
91
+ }
90
92
  for (const key in options.modelSchema) {
91
93
  if (key.startsWith("__")) {
92
94
  compiledSchema[key] = options.modelSchema[key];
@@ -100,27 +102,29 @@ function modelToSchema(options) {
100
102
  // src/createModel/index.ts
101
103
  function createModel(modelOptions) {
102
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
+ };
103
113
  let resolvedSchema;
104
114
  const getSchema = () => {
105
115
  if (!modelOptions.schema) return {};
106
116
  if (!resolvedSchema) {
117
+ console.log("getting schema", getResolvers());
107
118
  resolvedSchema = modelToSchema({
108
119
  modelSchema: modelOptions.schema,
109
120
  modelName: model.name,
110
121
  cleanOptions: modelOptions.clean,
111
- validateOptions: modelOptions.validate
122
+ validateOptions: modelOptions.validate,
123
+ resolvers: getResolvers()
112
124
  });
113
125
  }
114
126
  return resolvedSchema;
115
127
  };
116
- let resolvedResolvers;
117
- const getResolvers = () => {
118
- if (!modelOptions.resolvers) return {};
119
- if (!resolvedResolvers) {
120
- resolvedResolvers = modelOptions.resolvers;
121
- }
122
- return resolvedResolvers;
123
- };
124
128
  const model = {
125
129
  __isModel: true,
126
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 console.log('processing array', 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.3",
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",