@akanjs/server 0.0.99 → 0.0.100

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.
@@ -0,0 +1,73 @@
1
+ import { lowerlize } from "@akanjs/common";
2
+ import { isServiceEnabled } from "@akanjs/service";
3
+ import {
4
+ deserializeArg,
5
+ getArgMetas,
6
+ getGqlMetas,
7
+ getSigMeta
8
+ } from "@akanjs/signal";
9
+ import { Process, Processor } from "@nestjs/bull";
10
+ import { Inject } from "@nestjs/common";
11
+ const convertProcessFunction = (gqlMeta, argMetas, internalArgMetas, fn) => {
12
+ return async function(job, done) {
13
+ const args = [];
14
+ argMetas.forEach((argMeta) => {
15
+ if (argMeta.type === "Msg")
16
+ args[argMeta.idx] = deserializeArg(argMeta, job.data[argMeta.idx]);
17
+ else
18
+ throw new Error(`Invalid ArgMeta Type ${argMeta.type}`);
19
+ });
20
+ internalArgMetas.forEach((internalArgMeta) => {
21
+ if (internalArgMeta.type === "Job")
22
+ args[internalArgMeta.idx] = job;
23
+ else
24
+ throw new Error(`Invalid InternalArgMeta Type ${internalArgMeta.type}`);
25
+ });
26
+ this.logger?.log(`Process-${gqlMeta.key} started`);
27
+ const result = await fn.apply(this, args);
28
+ this.logger?.log(`Process-${gqlMeta.key} finished`);
29
+ done(null, result);
30
+ };
31
+ };
32
+ const processorOf = (sigRef, allSrvs) => {
33
+ const sigMeta = getSigMeta(sigRef);
34
+ const serverMode = process.env.SERVER_MODE ?? "federation";
35
+ const gqlMetas = getGqlMetas(sigRef).filter((gqlMeta) => gqlMeta.type === "Process").filter(
36
+ (gqlMeta) => gqlMeta.signalOption.serverType === "all" || serverMode === "all" || gqlMeta.signalOption.serverType === serverMode
37
+ );
38
+ class QueueProcessor {
39
+ }
40
+ Object.keys(allSrvs).forEach((srv) => {
41
+ if (!isServiceEnabled(allSrvs[srv]))
42
+ return;
43
+ Inject(allSrvs[srv])(QueueProcessor.prototype, lowerlize(srv));
44
+ });
45
+ for (const gqlMeta of gqlMetas) {
46
+ const [argMetas, internalArgMetas] = getArgMetas(sigRef, gqlMeta.key);
47
+ const descriptor = { ...Object.getOwnPropertyDescriptor(sigRef.prototype, gqlMeta.key) ?? {} };
48
+ descriptor.value = convertProcessFunction(
49
+ gqlMeta,
50
+ argMetas,
51
+ internalArgMetas,
52
+ descriptor.value
53
+ );
54
+ Object.defineProperty(QueueProcessor.prototype, gqlMeta.key, descriptor);
55
+ Process(gqlMeta.key)(QueueProcessor.prototype, gqlMeta.key, descriptor);
56
+ }
57
+ Processor(sigMeta.refName)(QueueProcessor);
58
+ return QueueProcessor;
59
+ };
60
+ const queueOf = (sigRef, queue) => {
61
+ const sigMeta = getSigMeta(sigRef);
62
+ const gqlMetas = getGqlMetas(sigRef).filter((gqlMeta) => gqlMeta.type === "Process");
63
+ for (const gqlMeta of gqlMetas) {
64
+ if (queue[gqlMeta.key])
65
+ throw new Error(`Queue already has ${gqlMeta.key} in ${sigMeta.refName}`);
66
+ queue[gqlMeta.key] = (...args) => queue.add(gqlMeta.key, args);
67
+ }
68
+ return queue;
69
+ };
70
+ export {
71
+ processorOf,
72
+ queueOf
73
+ };
package/src/resolver.js CHANGED
@@ -1,61 +1,87 @@
1
- import { arraiedModel, Float, getNonArrayModel, ID, Int, JSON, Upload } from "@akanjs/base";
2
- import { capitalize, lowerlize } from "@akanjs/common";
3
- import { getClassMeta, getFieldMetas } from "@akanjs/constant";
4
- import { Access, Account, guards, Me, Req, Res, Self, UserIp } from "@akanjs/nest";
5
- import { isServiceEnabled } from "@akanjs/service";
6
- import {
7
- copySignal,
8
- getArgMetas,
9
- getGqlMetas,
10
- getResolveFieldMetas,
11
- getSigMeta
12
- } from "@akanjs/signal";
13
- import { Inject, UseGuards } from "@nestjs/common";
14
- import * as Nest from "@nestjs/graphql";
15
- import GraphQLJson from "graphql-type-json";
16
- import { GraphQLUpload } from "graphql-upload";
17
- import { generateGql, generateGqlInput } from "./gql";
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var resolver_exports = {};
29
+ __export(resolver_exports, {
30
+ resolverOf: () => resolverOf
31
+ });
32
+ module.exports = __toCommonJS(resolver_exports);
33
+ var import_base = require("@akanjs/base");
34
+ var import_common = require("@akanjs/common");
35
+ var import_constant = require("@akanjs/constant");
36
+ var import_nest = require("@akanjs/nest");
37
+ var import_service = require("@akanjs/service");
38
+ var import_signal = require("@akanjs/signal");
39
+ var import_common2 = require("@nestjs/common");
40
+ var Nest = __toESM(require("@nestjs/graphql"));
41
+ var import_graphql_type_json = __toESM(require("graphql-type-json"));
42
+ var import_graphql_upload = require("graphql-upload");
43
+ var import_gql = require("./gql");
18
44
  const scalarNestReturnMap = /* @__PURE__ */ new Map([
19
- [Upload, GraphQLUpload],
20
- [ID, Nest.ID],
21
- [Int, Nest.Int],
22
- [Float, Nest.Float],
23
- [JSON, GraphQLJson],
45
+ [import_base.Upload, import_graphql_upload.GraphQLUpload],
46
+ [import_base.ID, Nest.ID],
47
+ [import_base.Int, Nest.Int],
48
+ [import_base.Float, Nest.Float],
49
+ [import_base.JSON, import_graphql_type_json.default],
24
50
  [Boolean, Boolean],
25
51
  [Date, Date],
26
52
  [String, String],
27
- [Map, GraphQLJson]
53
+ [Map, import_graphql_type_json.default]
28
54
  ]);
29
55
  const getNestReturn = (returns, type = "object") => {
30
- const [model, arrDepth] = getNonArrayModel(returns());
31
- const modelRef = scalarNestReturnMap.get(model) ?? (type === "object" ? generateGql(model) : generateGqlInput(model));
32
- return () => arraiedModel(modelRef, arrDepth);
56
+ const [model, arrDepth] = (0, import_base.getNonArrayModel)(returns());
57
+ const modelRef = scalarNestReturnMap.get(model) ?? (type === "object" ? (0, import_gql.generateGql)(model) : (0, import_gql.generateGqlInput)(model));
58
+ return () => (0, import_base.arraiedModel)(modelRef, arrDepth);
33
59
  };
34
60
  const internalArgMap = {
35
61
  Parent: Nest.Parent,
36
- Account,
37
- UserIp,
38
- Access,
39
- Self,
40
- Me,
41
- Req,
42
- Res
62
+ Account: import_nest.Account,
63
+ UserIp: import_nest.UserIp,
64
+ Access: import_nest.Access,
65
+ Self: import_nest.Self,
66
+ Me: import_nest.Me,
67
+ Req: import_nest.Req,
68
+ Res: import_nest.Res
43
69
  };
44
70
  const resolverOf = (sigRef, allSrvs) => {
45
- const Rsv = copySignal(sigRef);
46
- const sigMeta = getSigMeta(Rsv);
47
- const gqlMetas = getGqlMetas(Rsv);
71
+ const Rsv = (0, import_signal.copySignal)(sigRef);
72
+ const sigMeta = (0, import_signal.getSigMeta)(Rsv);
73
+ const gqlMetas = (0, import_signal.getGqlMetas)(Rsv);
48
74
  Object.keys(allSrvs).forEach((srv) => {
49
- if (!isServiceEnabled(allSrvs[srv]))
75
+ if (!(0, import_service.isServiceEnabled)(allSrvs[srv]))
50
76
  return;
51
- Inject(allSrvs[srv])(Rsv.prototype, lowerlize(srv));
77
+ (0, import_common2.Inject)(allSrvs[srv])(Rsv.prototype, (0, import_common.lowerlize)(srv));
52
78
  });
53
79
  for (const gqlMeta of gqlMetas) {
54
80
  if (gqlMeta.guards.some((guard) => guard === "None") || gqlMeta.signalOption.onlyFor === "restapi" || !["Query", "Mutation"].includes(gqlMeta.type))
55
81
  continue;
56
82
  else if (gqlMeta.signalOption.sso)
57
83
  continue;
58
- const [argMetas, internalArgMetas] = getArgMetas(Rsv, gqlMeta.key);
84
+ const [argMetas, internalArgMetas] = (0, import_signal.getArgMetas)(Rsv, gqlMeta.key);
59
85
  const descriptor = Object.getOwnPropertyDescriptor(Rsv.prototype, gqlMeta.key) ?? {};
60
86
  for (const argMeta of argMetas) {
61
87
  Nest.Args({
@@ -68,27 +94,27 @@ const resolverOf = (sigRef, allSrvs) => {
68
94
  const decorate = internalArgMap[internalArgMeta.type];
69
95
  decorate(internalArgMeta.option ?? {})(Rsv.prototype, gqlMeta.key, internalArgMeta.idx);
70
96
  }
71
- UseGuards(...gqlMeta.guards.map((guard) => guards[guard]))(Rsv.prototype, gqlMeta.key, descriptor);
97
+ (0, import_common2.UseGuards)(...gqlMeta.guards.map((guard) => import_nest.guards[guard]))(Rsv.prototype, gqlMeta.key, descriptor);
72
98
  if (gqlMeta.type === "Query")
73
99
  Nest.Query(getNestReturn(gqlMeta.returns), gqlMeta.signalOption)(Rsv.prototype, gqlMeta.key, descriptor);
74
100
  else if (gqlMeta.type === "Mutation")
75
101
  Nest.Mutation(getNestReturn(gqlMeta.returns), gqlMeta.signalOption)(Rsv.prototype, gqlMeta.key, descriptor);
76
102
  }
77
- const resolveFieldMetas = getResolveFieldMetas(Rsv);
103
+ const resolveFieldMetas = (0, import_signal.getResolveFieldMetas)(Rsv);
78
104
  if (sigMeta.returns) {
79
105
  const modelRef = sigMeta.returns();
80
- const fieldMetas = getFieldMetas(modelRef);
106
+ const fieldMetas = (0, import_constant.getFieldMetas)(modelRef);
81
107
  fieldMetas.filter((fieldMeta) => fieldMeta.isClass && !fieldMeta.isScalar).forEach((fieldMeta) => {
82
- const classMeta = getClassMeta(fieldMeta.modelRef);
83
- const modelName = lowerlize(classMeta.type === "light" ? classMeta.refName.slice(5) : classMeta.refName);
84
- const className = capitalize(modelName);
108
+ const classMeta = (0, import_constant.getClassMeta)(fieldMeta.modelRef);
109
+ const modelName = (0, import_common.lowerlize)(classMeta.type === "light" ? classMeta.refName.slice(5) : classMeta.refName);
110
+ const className = (0, import_common.capitalize)(modelName);
85
111
  const serviceName = `${modelName}Service`;
86
112
  Rsv.prototype[fieldMeta.key] = async function(parent) {
87
113
  const service = this[serviceName];
88
114
  return fieldMeta.arrDepth ? await service[`load${className}Many`](parent[fieldMeta.key]) : await service[`load${className}`](parent[fieldMeta.key]);
89
115
  };
90
116
  Nest.Parent()(Rsv.prototype, fieldMeta.key, 0);
91
- Nest.ResolveField(getNestReturn(() => arraiedModel(fieldMeta.modelRef, fieldMeta.arrDepth)))(
117
+ Nest.ResolveField(getNestReturn(() => (0, import_base.arraiedModel)(fieldMeta.modelRef, fieldMeta.arrDepth)))(
92
118
  Rsv.prototype,
93
119
  fieldMeta.key,
94
120
  Object.getOwnPropertyDescriptor(Rsv.prototype, fieldMeta.key) ?? {}
@@ -96,7 +122,7 @@ const resolverOf = (sigRef, allSrvs) => {
96
122
  });
97
123
  }
98
124
  for (const resolveFieldMeta of resolveFieldMetas) {
99
- const [, internalArgMetas] = getArgMetas(Rsv, resolveFieldMeta.key);
125
+ const [, internalArgMetas] = (0, import_signal.getArgMetas)(Rsv, resolveFieldMeta.key);
100
126
  for (const internalArgMeta of internalArgMetas) {
101
127
  const decorate = internalArgMap[internalArgMeta.type];
102
128
  decorate(internalArgMeta.option ?? {})(Rsv.prototype, resolveFieldMeta.key, internalArgMeta.idx);
@@ -113,6 +139,7 @@ const resolverOf = (sigRef, allSrvs) => {
113
139
  Nest.Resolver()(Rsv);
114
140
  return Rsv;
115
141
  };
116
- export {
142
+ // Annotate the CommonJS export names for ESM import in node:
143
+ 0 && (module.exports = {
117
144
  resolverOf
118
- };
145
+ });
@@ -0,0 +1,118 @@
1
+ import { arraiedModel, Float, getNonArrayModel, ID, Int, JSON, Upload } from "@akanjs/base";
2
+ import { capitalize, lowerlize } from "@akanjs/common";
3
+ import { getClassMeta, getFieldMetas } from "@akanjs/constant";
4
+ import { Access, Account, guards, Me, Req, Res, Self, UserIp } from "@akanjs/nest";
5
+ import { isServiceEnabled } from "@akanjs/service";
6
+ import {
7
+ copySignal,
8
+ getArgMetas,
9
+ getGqlMetas,
10
+ getResolveFieldMetas,
11
+ getSigMeta
12
+ } from "@akanjs/signal";
13
+ import { Inject, UseGuards } from "@nestjs/common";
14
+ import * as Nest from "@nestjs/graphql";
15
+ import GraphQLJson from "graphql-type-json";
16
+ import { GraphQLUpload } from "graphql-upload";
17
+ import { generateGql, generateGqlInput } from "./gql";
18
+ const scalarNestReturnMap = /* @__PURE__ */ new Map([
19
+ [Upload, GraphQLUpload],
20
+ [ID, Nest.ID],
21
+ [Int, Nest.Int],
22
+ [Float, Nest.Float],
23
+ [JSON, GraphQLJson],
24
+ [Boolean, Boolean],
25
+ [Date, Date],
26
+ [String, String],
27
+ [Map, GraphQLJson]
28
+ ]);
29
+ const getNestReturn = (returns, type = "object") => {
30
+ const [model, arrDepth] = getNonArrayModel(returns());
31
+ const modelRef = scalarNestReturnMap.get(model) ?? (type === "object" ? generateGql(model) : generateGqlInput(model));
32
+ return () => arraiedModel(modelRef, arrDepth);
33
+ };
34
+ const internalArgMap = {
35
+ Parent: Nest.Parent,
36
+ Account,
37
+ UserIp,
38
+ Access,
39
+ Self,
40
+ Me,
41
+ Req,
42
+ Res
43
+ };
44
+ const resolverOf = (sigRef, allSrvs) => {
45
+ const Rsv = copySignal(sigRef);
46
+ const sigMeta = getSigMeta(Rsv);
47
+ const gqlMetas = getGqlMetas(Rsv);
48
+ Object.keys(allSrvs).forEach((srv) => {
49
+ if (!isServiceEnabled(allSrvs[srv]))
50
+ return;
51
+ Inject(allSrvs[srv])(Rsv.prototype, lowerlize(srv));
52
+ });
53
+ for (const gqlMeta of gqlMetas) {
54
+ if (gqlMeta.guards.some((guard) => guard === "None") || gqlMeta.signalOption.onlyFor === "restapi" || !["Query", "Mutation"].includes(gqlMeta.type))
55
+ continue;
56
+ else if (gqlMeta.signalOption.sso)
57
+ continue;
58
+ const [argMetas, internalArgMetas] = getArgMetas(Rsv, gqlMeta.key);
59
+ const descriptor = Object.getOwnPropertyDescriptor(Rsv.prototype, gqlMeta.key) ?? {};
60
+ for (const argMeta of argMetas) {
61
+ Nest.Args({
62
+ name: argMeta.name,
63
+ type: getNestReturn(argMeta.returns, "input"),
64
+ ...argMeta.argsOption
65
+ })(Rsv.prototype, gqlMeta.key, argMeta.idx);
66
+ }
67
+ for (const internalArgMeta of internalArgMetas) {
68
+ const decorate = internalArgMap[internalArgMeta.type];
69
+ decorate(internalArgMeta.option ?? {})(Rsv.prototype, gqlMeta.key, internalArgMeta.idx);
70
+ }
71
+ UseGuards(...gqlMeta.guards.map((guard) => guards[guard]))(Rsv.prototype, gqlMeta.key, descriptor);
72
+ if (gqlMeta.type === "Query")
73
+ Nest.Query(getNestReturn(gqlMeta.returns), gqlMeta.signalOption)(Rsv.prototype, gqlMeta.key, descriptor);
74
+ else if (gqlMeta.type === "Mutation")
75
+ Nest.Mutation(getNestReturn(gqlMeta.returns), gqlMeta.signalOption)(Rsv.prototype, gqlMeta.key, descriptor);
76
+ }
77
+ const resolveFieldMetas = getResolveFieldMetas(Rsv);
78
+ if (sigMeta.returns) {
79
+ const modelRef = sigMeta.returns();
80
+ const fieldMetas = getFieldMetas(modelRef);
81
+ fieldMetas.filter((fieldMeta) => fieldMeta.isClass && !fieldMeta.isScalar).forEach((fieldMeta) => {
82
+ const classMeta = getClassMeta(fieldMeta.modelRef);
83
+ const modelName = lowerlize(classMeta.type === "light" ? classMeta.refName.slice(5) : classMeta.refName);
84
+ const className = capitalize(modelName);
85
+ const serviceName = `${modelName}Service`;
86
+ Rsv.prototype[fieldMeta.key] = async function(parent) {
87
+ const service = this[serviceName];
88
+ return fieldMeta.arrDepth ? await service[`load${className}Many`](parent[fieldMeta.key]) : await service[`load${className}`](parent[fieldMeta.key]);
89
+ };
90
+ Nest.Parent()(Rsv.prototype, fieldMeta.key, 0);
91
+ Nest.ResolveField(getNestReturn(() => arraiedModel(fieldMeta.modelRef, fieldMeta.arrDepth)))(
92
+ Rsv.prototype,
93
+ fieldMeta.key,
94
+ Object.getOwnPropertyDescriptor(Rsv.prototype, fieldMeta.key) ?? {}
95
+ );
96
+ });
97
+ }
98
+ for (const resolveFieldMeta of resolveFieldMetas) {
99
+ const [, internalArgMetas] = getArgMetas(Rsv, resolveFieldMeta.key);
100
+ for (const internalArgMeta of internalArgMetas) {
101
+ const decorate = internalArgMap[internalArgMeta.type];
102
+ decorate(internalArgMeta.option ?? {})(Rsv.prototype, resolveFieldMeta.key, internalArgMeta.idx);
103
+ }
104
+ Nest.ResolveField(getNestReturn(resolveFieldMeta.returns))(
105
+ Rsv.prototype,
106
+ resolveFieldMeta.key,
107
+ Object.getOwnPropertyDescriptor(Rsv.prototype, resolveFieldMeta.key) ?? {}
108
+ );
109
+ }
110
+ if (sigMeta.returns)
111
+ Nest.Resolver(getNestReturn(sigMeta.returns))(Rsv);
112
+ else
113
+ Nest.Resolver()(Rsv);
114
+ return Rsv;
115
+ };
116
+ export {
117
+ resolverOf
118
+ };
package/src/schema.js CHANGED
@@ -1,19 +1,42 @@
1
- import { arraiedModel, dayjs, Enum, Float, ID, Int, JSON } from "@akanjs/base";
2
- import { isDayjs } from "@akanjs/common";
3
- import { getClassMeta, getFieldMetas, getFullModelRef, getInputModelRef } from "@akanjs/constant";
4
- import { getDefaultSchemaOptions, ObjectId } from "@akanjs/document";
5
- import { makeDefault } from "@akanjs/signal";
6
- import { Schema, Types } from "mongoose";
7
- import { applyNestField } from ".";
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var schema_exports = {};
19
+ __export(schema_exports, {
20
+ addSchema: () => addSchema,
21
+ schemaOf: () => schemaOf
22
+ });
23
+ module.exports = __toCommonJS(schema_exports);
24
+ var import_base = require("@akanjs/base");
25
+ var import_common = require("@akanjs/common");
26
+ var import_constant = require("@akanjs/constant");
27
+ var import_document = require("@akanjs/document");
28
+ var import_signal = require("@akanjs/signal");
29
+ var import_mongoose = require("mongoose");
30
+ var import__ = require(".");
8
31
  class ScalarSchemaStorage {
9
32
  }
10
33
  class SchemaStorage {
11
34
  }
12
35
  const scalarMongoTypeMap = /* @__PURE__ */ new Map([
13
- [ID, ObjectId],
14
- [Int, Number],
15
- [Float, Number],
16
- [JSON, Schema.Types.Mixed],
36
+ [import_base.ID, import_document.ObjectId],
37
+ [import_base.Int, Number],
38
+ [import_base.Float, Number],
39
+ [import_base.JSON, import_mongoose.Schema.Types.Mixed],
17
40
  [Map, Map],
18
41
  [String, String],
19
42
  [Boolean, Boolean],
@@ -22,13 +45,13 @@ const scalarMongoTypeMap = /* @__PURE__ */ new Map([
22
45
  const applyMongoProp = (schemaProps, fieldMeta) => {
23
46
  if (["id", "createdAt", "updatedAt"].includes(fieldMeta.key) || fieldMeta.fieldType === "resolve")
24
47
  return;
25
- const type = fieldMeta.isClass ? fieldMeta.isScalar ? createSchema(fieldMeta.modelRef) : ObjectId : scalarMongoTypeMap.get(fieldMeta.modelRef) ?? fieldMeta.modelRef;
48
+ const type = fieldMeta.isClass ? fieldMeta.isScalar ? createSchema(fieldMeta.modelRef) : import_document.ObjectId : scalarMongoTypeMap.get(fieldMeta.modelRef) ?? fieldMeta.modelRef;
26
49
  let prop = {};
27
50
  if (fieldMeta.optArrDepth) {
28
51
  prop.type = type;
29
52
  prop.required = true;
30
53
  if (fieldMeta.isClass && !fieldMeta.refPath)
31
- prop.ref = getClassMeta(fieldMeta.modelRef).refName;
54
+ prop.ref = (0, import_constant.getClassMeta)(fieldMeta.modelRef).refName;
32
55
  if (fieldMeta.refPath)
33
56
  prop.refPath = fieldMeta.refPath;
34
57
  if (typeof fieldMeta.min === "number")
@@ -43,20 +66,20 @@ const applyMongoProp = (schemaProps, fieldMeta) => {
43
66
  prop.maxlength = fieldMeta.maxlength;
44
67
  if (fieldMeta.validate) {
45
68
  prop.validate = function(value) {
46
- return fieldMeta.validate?.(fieldMeta.name === "Date" && !!value ? dayjs() : value, this) ?? true;
69
+ return fieldMeta.validate?.(fieldMeta.name === "Date" && !!value ? (0, import_base.dayjs)() : value, this) ?? true;
47
70
  };
48
71
  }
49
- prop = { type: arraiedModel(prop, fieldMeta.optArrDepth), default: [], required: true };
72
+ prop = { type: (0, import_base.arraiedModel)(prop, fieldMeta.optArrDepth), default: [], required: true };
50
73
  if (fieldMeta.modelRef.prototype === Date.prototype) {
51
- prop.get = (dates) => dates.map((date) => dayjs(date));
74
+ prop.get = (dates) => dates.map((date) => (0, import_base.dayjs)(date));
52
75
  prop.set = (days) => days.map((day) => day.toDate());
53
76
  }
54
- if (fieldMeta.isClass && !fieldMeta.isScalar || fieldMeta.modelRef.prototype === ID.prototype) {
77
+ if (fieldMeta.isClass && !fieldMeta.isScalar || fieldMeta.modelRef.prototype === import_base.ID.prototype) {
55
78
  prop.get = (ids) => ids.map((id) => id.toString());
56
- prop.set = (ids) => ids.map((id) => new Types.ObjectId(id));
79
+ prop.set = (ids) => ids.map((id) => new import_mongoose.Types.ObjectId(id));
57
80
  }
58
81
  } else {
59
- prop.type = arraiedModel(type, fieldMeta.arrDepth);
82
+ prop.type = (0, import_base.arraiedModel)(type, fieldMeta.arrDepth);
60
83
  prop.required = !fieldMeta.nullable;
61
84
  if (fieldMeta.isMap) {
62
85
  prop.of = scalarMongoTypeMap.get(fieldMeta.of) ?? createSchema(fieldMeta.of);
@@ -67,15 +90,15 @@ const applyMongoProp = (schemaProps, fieldMeta) => {
67
90
  if (typeof fieldMeta.default === "function")
68
91
  prop.default = function() {
69
92
  const def = fieldMeta.default(this);
70
- return isDayjs(def) ? def.toDate() : def;
93
+ return (0, import_common.isDayjs)(def) ? def.toDate() : def;
71
94
  };
72
95
  else
73
- prop.default = isDayjs(fieldMeta.default) ? fieldMeta.default.toDate() : fieldMeta.default instanceof Enum ? [...fieldMeta.default.values] : fieldMeta.default;
96
+ prop.default = (0, import_common.isDayjs)(fieldMeta.default) ? fieldMeta.default.toDate() : fieldMeta.default instanceof import_base.Enum ? [...fieldMeta.default.values] : fieldMeta.default;
74
97
  }
75
98
  if (typeof fieldMeta.immutable !== "undefined")
76
99
  prop.immutable = fieldMeta.immutable;
77
100
  if (fieldMeta.isClass && !fieldMeta.refPath)
78
- prop.ref = getClassMeta(fieldMeta.modelRef).refName;
101
+ prop.ref = (0, import_constant.getClassMeta)(fieldMeta.modelRef).refName;
79
102
  if (fieldMeta.refPath)
80
103
  prop.refPath = fieldMeta.refPath;
81
104
  if (typeof fieldMeta.min === "number")
@@ -95,60 +118,60 @@ const applyMongoProp = (schemaProps, fieldMeta) => {
95
118
  prop.set = (v) => v === null ? void 0 : v;
96
119
  }
97
120
  if (fieldMeta.modelRef.prototype === Date.prototype) {
98
- prop.get = (date) => date ? dayjs(date) : void 0;
99
- prop.set = (day) => day ? dayjs(day).toDate() : void 0;
121
+ prop.get = (date) => date ? (0, import_base.dayjs)(date) : void 0;
122
+ prop.set = (day) => day ? (0, import_base.dayjs)(day).toDate() : void 0;
100
123
  }
101
- if (fieldMeta.isClass && !fieldMeta.isScalar || fieldMeta.modelRef.prototype === ID.prototype) {
124
+ if (fieldMeta.isClass && !fieldMeta.isScalar || fieldMeta.modelRef.prototype === import_base.ID.prototype) {
102
125
  prop.get = (id) => id ? id.toString() : void 0;
103
- prop.set = (id) => id ? new Types.ObjectId(id) : void 0;
126
+ prop.set = (id) => id ? new import_mongoose.Types.ObjectId(id) : void 0;
104
127
  }
105
128
  if (fieldMeta.isClass && fieldMeta.isScalar && fieldMeta.default === null && !fieldMeta.nullable) {
106
- prop.default = makeDefault(fieldMeta.modelRef);
129
+ prop.default = (0, import_signal.makeDefault)(fieldMeta.modelRef);
107
130
  }
108
131
  if (fieldMeta.validate) {
109
132
  prop.validate = function(value) {
110
- return fieldMeta.validate?.(fieldMeta.name === "Date" && !!value ? dayjs() : value, this) ?? true;
133
+ return fieldMeta.validate?.(fieldMeta.name === "Date" && !!value ? (0, import_base.dayjs)() : value, this) ?? true;
111
134
  };
112
135
  }
113
136
  }
114
137
  schemaProps[fieldMeta.key] = prop;
115
138
  };
116
139
  const createSchema = (modelRef) => {
117
- const classMeta = getClassMeta(modelRef);
140
+ const classMeta = (0, import_constant.getClassMeta)(modelRef);
118
141
  const schemaMeta = Reflect.getMetadata(classMeta.refName, ScalarSchemaStorage.prototype);
119
142
  if (schemaMeta)
120
143
  return schemaMeta;
121
- const fieldMetas = getFieldMetas(modelRef);
144
+ const fieldMetas = (0, import_constant.getFieldMetas)(modelRef);
122
145
  const schemaProps = {};
123
146
  fieldMetas.forEach((fieldMeta) => {
124
147
  applyMongoProp(schemaProps, fieldMeta);
125
148
  });
126
- const schema = new Schema(schemaProps);
149
+ const schema = new import_mongoose.Schema(schemaProps);
127
150
  Reflect.defineMetadata(classMeta.refName, schema, ScalarSchemaStorage.prototype);
128
151
  return schema;
129
152
  };
130
153
  const schemaOf = (modelRef, docRef, middleware) => {
131
- const classMeta = getClassMeta(docRef);
154
+ const classMeta = (0, import_constant.getClassMeta)(docRef);
132
155
  const schemaMeta = Reflect.getMetadata(classMeta.refName, SchemaStorage.prototype);
133
156
  if (schemaMeta)
134
157
  return schemaMeta;
135
- const fieldMetas = getFieldMetas(docRef);
158
+ const fieldMetas = (0, import_constant.getFieldMetas)(docRef);
136
159
  const schemaProps = {
137
160
  createdAt: {
138
161
  type: Date,
139
- get: (date) => date ? dayjs(date) : date,
140
- set: (day) => day ? dayjs(day).toDate() : day
162
+ get: (date) => date ? (0, import_base.dayjs)(date) : date,
163
+ set: (day) => day ? (0, import_base.dayjs)(day).toDate() : day
141
164
  },
142
165
  updatedAt: {
143
166
  type: Date,
144
- get: (date) => date ? dayjs(date) : date,
145
- set: (day) => day ? dayjs(day).toDate() : day
167
+ get: (date) => date ? (0, import_base.dayjs)(date) : date,
168
+ set: (day) => day ? (0, import_base.dayjs)(day).toDate() : day
146
169
  }
147
170
  };
148
171
  fieldMetas.forEach((fieldMeta) => {
149
172
  applyMongoProp(schemaProps, fieldMeta);
150
173
  });
151
- const schema = new Schema(schemaProps, getDefaultSchemaOptions());
174
+ const schema = new import_mongoose.Schema(schemaProps, (0, import_document.getDefaultSchemaOptions)());
152
175
  schema.methods.refresh = async function() {
153
176
  Object.assign(this, await this.constructor.findById(this._id));
154
177
  return this;
@@ -173,36 +196,36 @@ const schemaOf = (modelRef, docRef, middleware) => {
173
196
  return schema;
174
197
  };
175
198
  const addSchema = (modelRef, docRef, inputRef, middleware) => {
176
- const originDocClassMeta = getClassMeta(docRef);
177
- const originInputClassMeta = getClassMeta(inputRef);
178
- const originDoc = getFullModelRef(originDocClassMeta.refName);
179
- const originInput = getInputModelRef(originInputClassMeta.refName);
180
- const classMeta = getClassMeta(docRef);
199
+ const originDocClassMeta = (0, import_constant.getClassMeta)(docRef);
200
+ const originInputClassMeta = (0, import_constant.getClassMeta)(inputRef);
201
+ const originDoc = (0, import_constant.getFullModelRef)(originDocClassMeta.refName);
202
+ const originInput = (0, import_constant.getInputModelRef)(originInputClassMeta.refName);
203
+ const classMeta = (0, import_constant.getClassMeta)(docRef);
181
204
  const modelSchema = Reflect.getMetadata(classMeta.refName, SchemaStorage.prototype);
182
205
  if (!modelSchema)
183
206
  throw new Error(`Schema of ${classMeta.refName} not found`);
184
- const fieldMetas = getFieldMetas(docRef);
207
+ const fieldMetas = (0, import_constant.getFieldMetas)(docRef);
185
208
  const schemaProps = {
186
209
  createdAt: {
187
210
  type: Date,
188
- get: (date) => date ? dayjs(date) : date,
189
- set: (day) => day ? dayjs(day).toDate() : day
211
+ get: (date) => date ? (0, import_base.dayjs)(date) : date,
212
+ set: (day) => day ? (0, import_base.dayjs)(day).toDate() : day
190
213
  },
191
214
  updatedAt: {
192
215
  type: Date,
193
- get: (date) => date ? dayjs(date) : date,
194
- set: (day) => day ? dayjs(day).toDate() : day
216
+ get: (date) => date ? (0, import_base.dayjs)(date) : date,
217
+ set: (day) => day ? (0, import_base.dayjs)(day).toDate() : day
195
218
  }
196
219
  };
197
220
  fieldMetas.forEach((fieldMeta) => {
198
221
  applyMongoProp(schemaProps, fieldMeta);
199
- applyNestField(originDoc, fieldMeta);
222
+ (0, import__.applyNestField)(originDoc, fieldMeta);
200
223
  });
201
- const inputFieldMetas = getFieldMetas(inputRef);
224
+ const inputFieldMetas = (0, import_constant.getFieldMetas)(inputRef);
202
225
  inputFieldMetas.forEach((fieldMeta) => {
203
- applyNestField(originInput, fieldMeta, "input");
226
+ (0, import__.applyNestField)(originInput, fieldMeta, "input");
204
227
  });
205
- const schema = new Schema(schemaProps, getDefaultSchemaOptions());
228
+ const schema = new import_mongoose.Schema(schemaProps, (0, import_document.getDefaultSchemaOptions)());
206
229
  modelSchema.add(schema);
207
230
  Object.getOwnPropertyNames(docRef.prototype).forEach((name) => {
208
231
  if (name === "constructor")
@@ -213,7 +236,8 @@ const addSchema = (modelRef, docRef, inputRef, middleware) => {
213
236
  onSchema?.(modelSchema);
214
237
  return modelSchema;
215
238
  };
216
- export {
239
+ // Annotate the CommonJS export names for ESM import in node:
240
+ 0 && (module.exports = {
217
241
  addSchema,
218
242
  schemaOf
219
- };
243
+ });