@akanjs/signal 0.0.97 → 0.0.99

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/src/gql.js CHANGED
@@ -1,46 +1,30 @@
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 gql_exports = {};
19
- __export(gql_exports, {
20
- CrystalizeStorage: () => CrystalizeStorage,
21
- DefaultStorage: () => DefaultStorage,
22
- FragmentStorage: () => FragmentStorage,
23
- GqlStorage: () => GqlStorage,
24
- PurifyStorage: () => PurifyStorage,
25
- deserializeArg: () => deserializeArg,
26
- fetchOf: () => fetchOf,
27
- getGqlOnStorage: () => getGqlOnStorage,
28
- getGqlStr: () => getGqlStr,
29
- gqlOf: () => gqlOf,
30
- makeCrystalize: () => makeCrystalize,
31
- makeDefault: () => makeDefault,
32
- makeFetch: () => makeFetch,
33
- makeFragment: () => makeFragment,
34
- makePurify: () => makePurify,
35
- scalarUtilOf: () => scalarUtilOf,
36
- serializeArg: () => serializeArg
37
- });
38
- module.exports = __toCommonJS(gql_exports);
39
- var import_base = require("@akanjs/base");
40
- var import_common = require("@akanjs/common");
41
- var import_constant = require("@akanjs/constant");
42
- var import__ = require(".");
43
- var import_signalDecorators = require("./signalDecorators");
1
+ import {
2
+ applyFnToArrayObjects,
3
+ DataList,
4
+ dayjs,
5
+ Enum,
6
+ Float,
7
+ getNonArrayModel,
8
+ ID,
9
+ Int,
10
+ isGqlScalar,
11
+ JSON as GqlJSON,
12
+ scalarDefaultMap
13
+ } from "@akanjs/base";
14
+ import { capitalize, Logger, lowerlize } from "@akanjs/common";
15
+ import {
16
+ getClassMeta,
17
+ getFieldMetaMap,
18
+ getFieldMetas,
19
+ getGqlTypeStr,
20
+ getLightModelRef
21
+ } from "@akanjs/constant";
22
+ import { client, immerify } from ".";
23
+ import {
24
+ getArgMetas,
25
+ getGqlMetas,
26
+ getSigMeta
27
+ } from "./signalDecorators";
44
28
  function graphql(literals, ...args) {
45
29
  if (typeof literals === "string")
46
30
  literals = [literals];
@@ -65,12 +49,12 @@ class DefaultStorage {
65
49
  class CrystalizeStorage {
66
50
  }
67
51
  const scalarUtilOf = (name, target) => {
68
- const refName = (0, import_constant.getClassMeta)(target).refName;
69
- const [fieldName, className] = [(0, import_common.lowerlize)(refName), (0, import_common.capitalize)(refName)];
52
+ const refName = getClassMeta(target).refName;
53
+ const [fieldName, className] = [lowerlize(refName), capitalize(refName)];
70
54
  const graphQL = {
71
55
  refName,
72
56
  [className]: target,
73
- [`default${className}`]: (0, import__.immerify)(target, Object.assign(new target(), makeDefault(target))),
57
+ [`default${className}`]: immerify(target, Object.assign(new target(), makeDefault(target))),
74
58
  [`purify${className}`]: makePurify(target),
75
59
  [`crystalize${className}`]: makeCrystalize(target),
76
60
  [`${fieldName}Fragment`]: makeFragment(target)
@@ -88,8 +72,8 @@ const setGqlOnStorage = (refName, modelGql) => {
88
72
  };
89
73
  const gqlOf = (constant, sigRef, option = {}) => {
90
74
  const refName = constant.refName;
91
- const [fieldName, className] = [(0, import_common.lowerlize)(refName), (0, import_common.capitalize)(refName)];
92
- const sigMeta = (0, import_signalDecorators.getSigMeta)(sigRef);
75
+ const [fieldName, className] = [lowerlize(refName), capitalize(refName)];
76
+ const sigMeta = getSigMeta(sigRef);
93
77
  const names = {
94
78
  refName,
95
79
  model: fieldName,
@@ -136,7 +120,7 @@ const gqlOf = (constant, sigRef, option = {}) => {
136
120
  [names.crystalizeModel]: makeCrystalize(constant.Full, option),
137
121
  [names.lightCrystalizeModel]: makeCrystalize(constant.Light, option),
138
122
  [names.crystalizeModelInsight]: makeCrystalize(constant.Insight, option),
139
- [names.defaultModel]: (0, import__.immerify)(
123
+ [names.defaultModel]: immerify(
140
124
  constant.Full,
141
125
  Object.assign(new constant.Full(), makeDefault(constant.Full, option))
142
126
  ),
@@ -145,7 +129,7 @@ const gqlOf = (constant, sigRef, option = {}) => {
145
129
  makeDefault(constant.Insight, option)
146
130
  )
147
131
  };
148
- const gql = Object.assign(option.overwrite ?? { client: import__.client }, fetchOf(sigRef));
132
+ const gql = Object.assign(option.overwrite ?? { client }, fetchOf(sigRef));
149
133
  const util = {
150
134
  [names.addModelFiles]: async (files, id, option2) => {
151
135
  const fileGql = getGqlOnStorage("file");
@@ -253,7 +237,7 @@ const gqlOf = (constant, sigRef, option = {}) => {
253
237
  const modelInit = await getInitFn(...args);
254
238
  const modelObjList = modelInit[names.modelObjList];
255
239
  const modelObjInsight = modelInit[names.modelObjInsight];
256
- const modelList = new import_base.DataList(
240
+ const modelList = new DataList(
257
241
  modelObjList.map((modelObj) => base[names.lightCrystalizeModel](modelObj))
258
242
  );
259
243
  const modelInsight = base[names.crystalizeModelInsight](modelObjInsight);
@@ -289,13 +273,13 @@ const setPredefinedDefault = (refName, defaultData) => {
289
273
  Reflect.defineMetadata(refName, defaultData, DefaultStorage.prototype);
290
274
  };
291
275
  const makeDefault = (target, option = {}) => {
292
- const classMeta = (0, import_constant.getClassMeta)(target);
276
+ const classMeta = getClassMeta(target);
293
277
  const predefinedDefault = getPredefinedDefault(classMeta.refName);
294
278
  if (predefinedDefault && !option.overwrite)
295
279
  return predefinedDefault;
296
280
  if (option.isChild && classMeta.type !== "scalar")
297
281
  return null;
298
- const metadatas = (0, import_constant.getFieldMetas)(target);
282
+ const metadatas = getFieldMetas(target);
299
283
  const result = {};
300
284
  for (const metadata of metadatas) {
301
285
  if (metadata.fieldType === "hidden")
@@ -303,7 +287,7 @@ const makeDefault = (target, option = {}) => {
303
287
  else if (metadata.default) {
304
288
  if (typeof metadata.default === "function")
305
289
  result[metadata.key] = metadata.default();
306
- else if (metadata.default instanceof import_base.Enum)
290
+ else if (metadata.default instanceof Enum)
307
291
  result[metadata.key] = [...metadata.default.values];
308
292
  else
309
293
  result[metadata.key] = metadata.default;
@@ -314,7 +298,7 @@ const makeDefault = (target, option = {}) => {
314
298
  else if (metadata.isClass)
315
299
  result[metadata.key] = metadata.isScalar ? makeDefault(metadata.modelRef) : null;
316
300
  else
317
- result[metadata.key] = import_base.scalarDefaultMap.get(metadata.modelRef);
301
+ result[metadata.key] = scalarDefaultMap.get(metadata.modelRef);
318
302
  }
319
303
  setPredefinedDefault(classMeta.refName, result);
320
304
  return result;
@@ -370,16 +354,16 @@ const mutate = async (fetchClient, mutation, variables = {}, option = {}) => {
370
354
  return data;
371
355
  };
372
356
  const scalarPurifyMap = /* @__PURE__ */ new Map([
373
- [Date, (value) => (0, import_base.dayjs)(value).toDate()],
357
+ [Date, (value) => dayjs(value).toDate()],
374
358
  [String, (value) => value],
375
- [import_base.ID, (value) => value],
359
+ [ID, (value) => value],
376
360
  [Boolean, (value) => value],
377
- [import_base.Int, (value) => value],
378
- [import_base.Float, (value) => value],
379
- [import_base.JSON, (value) => value]
361
+ [Int, (value) => value],
362
+ [Float, (value) => value],
363
+ [GqlJSON, (value) => value]
380
364
  ]);
381
365
  const getPurifyFn = (modelRef) => {
382
- const [valueRef] = (0, import_base.getNonArrayModel)(modelRef);
366
+ const [valueRef] = getNonArrayModel(modelRef);
383
367
  return scalarPurifyMap.get(valueRef) ?? ((value) => value);
384
368
  };
385
369
  const purify = (metadata, value, self) => {
@@ -399,12 +383,12 @@ const purify = (metadata, value, self) => {
399
383
  if (metadata.isMap && metadata.of) {
400
384
  const purifyFn2 = getPurifyFn(metadata.of);
401
385
  return Object.fromEntries(
402
- [...value.entries()].map(([key, val]) => [key, (0, import_base.applyFnToArrayObjects)(val, purifyFn2)])
386
+ [...value.entries()].map(([key, val]) => [key, applyFnToArrayObjects(val, purifyFn2)])
403
387
  );
404
388
  }
405
389
  if (metadata.isClass)
406
390
  return makePurify(metadata.modelRef)(value, true);
407
- if (metadata.name === "Date" && (0, import_base.dayjs)(value).isBefore((0, import_base.dayjs)(/* @__PURE__ */ new Date("0000"))))
391
+ if (metadata.name === "Date" && dayjs(value).isBefore(dayjs(/* @__PURE__ */ new Date("0000"))))
408
392
  throw new Error(`Invalid Date Value (Default) in ${metadata.key} for value ${value}`);
409
393
  if (["String", "ID"].includes(metadata.name) && (value === "" || !value))
410
394
  throw new Error(`Invalid String Value (Default) in ${metadata.key} for value ${value}`);
@@ -423,11 +407,11 @@ const setPredefinedPurifyFn = (refName, purify2) => {
423
407
  Reflect.defineMetadata(refName, purify2, PurifyStorage.prototype);
424
408
  };
425
409
  const makePurify = (target, option = {}) => {
426
- const classMeta = (0, import_constant.getClassMeta)(target);
410
+ const classMeta = getClassMeta(target);
427
411
  const purifyFn = getPredefinedPurifyFn(classMeta.refName);
428
412
  if (purifyFn && !option.overwrite)
429
413
  return purifyFn;
430
- const metadatas = (0, import_constant.getFieldMetas)(target);
414
+ const metadatas = getFieldMetas(target);
431
415
  const fn = (self, isChild) => {
432
416
  try {
433
417
  if (isChild && classMeta.type !== "scalar") {
@@ -445,7 +429,7 @@ const makePurify = (target, option = {}) => {
445
429
  } catch (err) {
446
430
  if (isChild)
447
431
  throw new Error(err);
448
- import_common.Logger.debug(err);
432
+ Logger.debug(err);
449
433
  return null;
450
434
  }
451
435
  };
@@ -453,13 +437,13 @@ const makePurify = (target, option = {}) => {
453
437
  return fn;
454
438
  };
455
439
  const scalarCrystalizeMap = /* @__PURE__ */ new Map([
456
- [Date, (value) => (0, import_base.dayjs)(value)],
440
+ [Date, (value) => dayjs(value)],
457
441
  [String, (value) => value],
458
- [import_base.ID, (value) => value],
442
+ [ID, (value) => value],
459
443
  [Boolean, (value) => value],
460
- [import_base.Int, (value) => value],
461
- [import_base.Float, (value) => value],
462
- [import_base.JSON, (value) => value]
444
+ [Int, (value) => value],
445
+ [Float, (value) => value],
446
+ [GqlJSON, (value) => value]
463
447
  ]);
464
448
  const crystalize = (metadata, value) => {
465
449
  if (value === void 0 || value === null)
@@ -467,16 +451,16 @@ const crystalize = (metadata, value) => {
467
451
  if (metadata.isArray && Array.isArray(value))
468
452
  return value.map((v) => crystalize({ ...metadata, isArray: false }, v));
469
453
  if (metadata.isMap) {
470
- const [valueRef] = (0, import_base.getNonArrayModel)(metadata.of);
454
+ const [valueRef] = getNonArrayModel(metadata.of);
471
455
  const crystalizeValue = scalarCrystalizeMap.get(valueRef) ?? ((value2) => value2);
472
456
  return new Map(
473
- Object.entries(value).map(([key, val]) => [key, (0, import_base.applyFnToArrayObjects)(val, crystalizeValue)])
457
+ Object.entries(value).map(([key, val]) => [key, applyFnToArrayObjects(val, crystalizeValue)])
474
458
  );
475
459
  }
476
460
  if (metadata.isClass)
477
461
  return makeCrystalize(metadata.modelRef)(value, true);
478
462
  if (metadata.name === "Date")
479
- return (0, import_base.dayjs)(value);
463
+ return dayjs(value);
480
464
  return (scalarCrystalizeMap.get(metadata.modelRef) ?? ((value2) => value2))(value);
481
465
  };
482
466
  const getPredefinedCrystalizeFn = (refName) => {
@@ -487,11 +471,11 @@ const setPredefinedCrystalizeFn = (refName, crystalize2) => {
487
471
  Reflect.defineMetadata(refName, crystalize2, CrystalizeStorage.prototype);
488
472
  };
489
473
  const makeCrystalize = (target, option = {}) => {
490
- const classMeta = (0, import_constant.getClassMeta)(target);
474
+ const classMeta = getClassMeta(target);
491
475
  const crystalizeFn = getPredefinedCrystalizeFn(classMeta.refName);
492
476
  if (crystalizeFn && !option.overwrite && !option.partial?.length)
493
477
  return crystalizeFn;
494
- const fieldMetaMap = (0, import_constant.getFieldMetaMap)(target);
478
+ const fieldMetaMap = getFieldMetaMap(target);
495
479
  const fieldKeys = option.partial?.length ? classMeta.type === "scalar" ? option.partial : ["id", ...option.partial, "updatedAt"] : [...fieldMetaMap.keys()];
496
480
  const metadatas = fieldKeys.map((key) => fieldMetaMap.get(key));
497
481
  const fn = (self, isChild) => {
@@ -514,16 +498,16 @@ const makeCrystalize = (target, option = {}) => {
514
498
  return fn;
515
499
  };
516
500
  const fragmentize = (target, fragMap = /* @__PURE__ */ new Map(), partial) => {
517
- const classMeta = (0, import_constant.getClassMeta)(target);
518
- const metadatas = (0, import_constant.getFieldMetas)(target);
501
+ const classMeta = getClassMeta(target);
502
+ const metadatas = getFieldMetas(target);
519
503
  const selectKeys = partial ? ["id", ...partial, "updatedAt"] : metadatas.map((metadata) => metadata.key);
520
504
  const selectKeySet = new Set(selectKeys);
521
- const fragment = `fragment ${(0, import_common.lowerlize)(classMeta.refName)}Fragment on ${(0, import_common.capitalize)(
505
+ const fragment = `fragment ${lowerlize(classMeta.refName)}Fragment on ${capitalize(
522
506
  classMeta.type === "light" ? classMeta.refName.slice(5) : classMeta.refName
523
507
  )} {
524
508
  ` + metadatas.filter((metadata) => metadata.fieldType !== "hidden" && selectKeySet.has(metadata.key)).map((metadata) => {
525
509
  return metadata.isClass ? ` ${metadata.key} {
526
- ...${(0, import_common.lowerlize)(metadata.name)}Fragment
510
+ ...${lowerlize(metadata.name)}Fragment
527
511
  }` : ` ${metadata.key}`;
528
512
  }).join(`
529
513
  `) + `
@@ -540,7 +524,7 @@ const setPredefinedFragment = (refName, fragment) => {
540
524
  Reflect.defineMetadata(refName, fragment, FragmentStorage.prototype);
541
525
  };
542
526
  const makeFragment = (target, option = {}) => {
543
- const classMeta = (0, import_constant.getClassMeta)(target);
527
+ const classMeta = getClassMeta(target);
544
528
  const fragment = getPredefinedFragment(classMeta.refName);
545
529
  if (fragment && !option.overwrite && !option.excludeSelf && !option.partial?.length)
546
530
  return fragment;
@@ -553,25 +537,25 @@ const makeFragment = (target, option = {}) => {
553
537
  return gqlStr;
554
538
  };
555
539
  const getGqlStr = (modelRef, gqlMeta, argMetas, returnRef, partial) => {
556
- const isScalar = (0, import_base.isGqlScalar)(modelRef);
540
+ const isScalar = isGqlScalar(modelRef);
557
541
  const argStr = makeArgStr(argMetas);
558
542
  const argAssignStr = makeArgAssignStr(argMetas);
559
543
  const returnStr = makeReturnStr(returnRef, partial);
560
544
  const gqlStr = `${isScalar ? "" : makeFragment(returnRef, { excludeSelf: !!partial?.length, partial })}
561
- ${(0, import_common.lowerlize)(gqlMeta.type) + " " + gqlMeta.key + argStr}{
545
+ ${lowerlize(gqlMeta.type) + " " + gqlMeta.key + argStr}{
562
546
  ${gqlMeta.key}${argAssignStr}${returnStr}
563
547
  }
564
548
  `;
565
549
  return gqlStr;
566
550
  };
567
551
  const scalarSerializeMap = /* @__PURE__ */ new Map([
568
- [Date, (value) => (0, import_base.dayjs)(value).toDate()],
552
+ [Date, (value) => dayjs(value).toDate()],
569
553
  [String, (value) => value],
570
- [import_base.ID, (value) => value],
554
+ [ID, (value) => value],
571
555
  [Boolean, (value) => value],
572
- [import_base.Int, (value) => value],
573
- [import_base.Float, (value) => value],
574
- [import_base.JSON, (value) => value]
556
+ [Int, (value) => value],
557
+ [Float, (value) => value],
558
+ [GqlJSON, (value) => value]
575
559
  ]);
576
560
  const getSerializeFn = (inputRef) => {
577
561
  const serializeFn = scalarSerializeMap.get(inputRef);
@@ -584,28 +568,28 @@ const serializeInput = (value, inputRef, arrDepth) => {
584
568
  if (arrDepth && Array.isArray(value))
585
569
  return value.map((v) => serializeInput(v, inputRef, arrDepth - 1));
586
570
  else if (inputRef.prototype === Map.prototype) {
587
- const [valueRef] = (0, import_base.getNonArrayModel)(inputRef);
571
+ const [valueRef] = getNonArrayModel(inputRef);
588
572
  const serializeFn = getSerializeFn(valueRef);
589
573
  return Object.fromEntries(
590
- [...value.entries()].map(([key, val]) => [key, (0, import_base.applyFnToArrayObjects)(val, serializeFn)])
574
+ [...value.entries()].map(([key, val]) => [key, applyFnToArrayObjects(val, serializeFn)])
591
575
  );
592
- } else if ((0, import_base.isGqlScalar)(inputRef)) {
576
+ } else if (isGqlScalar(inputRef)) {
593
577
  const serializeFn = getSerializeFn(inputRef);
594
578
  return serializeFn(value);
595
579
  }
596
- const classMeta = (0, import_constant.getClassMeta)(inputRef);
580
+ const classMeta = getClassMeta(inputRef);
597
581
  if (classMeta.type !== "scalar")
598
582
  return value;
599
583
  else
600
584
  return Object.fromEntries(
601
- (0, import_constant.getFieldMetas)(inputRef).map((fieldMeta) => [
585
+ getFieldMetas(inputRef).map((fieldMeta) => [
602
586
  fieldMeta.key,
603
587
  serializeInput(value[fieldMeta.key], fieldMeta.modelRef, fieldMeta.arrDepth)
604
588
  ])
605
589
  );
606
590
  };
607
591
  const serializeArg = (argMeta, value) => {
608
- const [returnRef, arrDepth] = (0, import_base.getNonArrayModel)(argMeta.returns());
592
+ const [returnRef, arrDepth] = getNonArrayModel(argMeta.returns());
609
593
  if (argMeta.argsOption.nullable && (value === null || value === void 0))
610
594
  return null;
611
595
  else if (!argMeta.argsOption.nullable && (value === null || value === void 0))
@@ -613,13 +597,13 @@ const serializeArg = (argMeta, value) => {
613
597
  return serializeInput(value, returnRef, arrDepth);
614
598
  };
615
599
  const scalarDeserializeMap = /* @__PURE__ */ new Map([
616
- [Date, (value) => (0, import_base.dayjs)(value)],
600
+ [Date, (value) => dayjs(value)],
617
601
  [String, (value) => value],
618
- [import_base.ID, (value) => value],
602
+ [ID, (value) => value],
619
603
  [Boolean, (value) => value],
620
- [import_base.Int, (value) => value],
621
- [import_base.Float, (value) => value],
622
- [import_base.JSON, (value) => value]
604
+ [Int, (value) => value],
605
+ [Float, (value) => value],
606
+ [GqlJSON, (value) => value]
623
607
  ]);
624
608
  const getDeserializeFn = (inputRef) => {
625
609
  const deserializeFn = scalarDeserializeMap.get(inputRef);
@@ -631,28 +615,28 @@ const deserializeInput = (value, inputRef, arrDepth) => {
631
615
  if (arrDepth && Array.isArray(value))
632
616
  return value.map((v) => deserializeInput(v, inputRef, arrDepth - 1));
633
617
  else if (inputRef.prototype === Map.prototype) {
634
- const [valueRef] = (0, import_base.getNonArrayModel)(inputRef);
618
+ const [valueRef] = getNonArrayModel(inputRef);
635
619
  const deserializeFn = getDeserializeFn(valueRef);
636
620
  return Object.fromEntries(
637
- [...value.entries()].map(([key, val]) => [key, (0, import_base.applyFnToArrayObjects)(val, deserializeFn)])
621
+ [...value.entries()].map(([key, val]) => [key, applyFnToArrayObjects(val, deserializeFn)])
638
622
  );
639
- } else if ((0, import_base.isGqlScalar)(inputRef)) {
623
+ } else if (isGqlScalar(inputRef)) {
640
624
  const deserializeFn = getDeserializeFn(inputRef);
641
625
  return deserializeFn(value);
642
626
  }
643
- const classMeta = (0, import_constant.getClassMeta)(inputRef);
627
+ const classMeta = getClassMeta(inputRef);
644
628
  if (classMeta.type !== "scalar")
645
629
  return value;
646
630
  else
647
631
  return Object.fromEntries(
648
- (0, import_constant.getFieldMetas)(inputRef).map((fieldMeta) => [
632
+ getFieldMetas(inputRef).map((fieldMeta) => [
649
633
  fieldMeta.key,
650
634
  deserializeInput(value[fieldMeta.key], fieldMeta.modelRef, fieldMeta.arrDepth)
651
635
  ])
652
636
  );
653
637
  };
654
638
  const deserializeArg = (argMeta, value) => {
655
- const [returnRef, arrDepth] = (0, import_base.getNonArrayModel)(argMeta.returns());
639
+ const [returnRef, arrDepth] = getNonArrayModel(argMeta.returns());
656
640
  if (argMeta.argsOption.nullable && (value === null || value === void 0))
657
641
  return null;
658
642
  else if (!argMeta.argsOption.nullable && (value === null || value === void 0))
@@ -661,16 +645,16 @@ const deserializeArg = (argMeta, value) => {
661
645
  };
662
646
  const fetchOf = (sigRef) => {
663
647
  const gqls = {};
664
- const gqlMetas = (0, import_signalDecorators.getGqlMetas)(sigRef);
648
+ const gqlMetas = getGqlMetas(sigRef);
665
649
  gqlMetas.filter((gqlMeta) => !gqlMeta.signalOption.default).forEach((gqlMeta) => {
666
650
  if (gqlMeta.type === "Message") {
667
- const [returnRef, arrDepth] = (0, import_base.getNonArrayModel)(gqlMeta.returns());
668
- const [argMetas] = (0, import_signalDecorators.getArgMetas)(sigRef, gqlMeta.signalOption.name ?? gqlMeta.key);
669
- const isScalar = (0, import_base.isGqlScalar)(returnRef);
651
+ const [returnRef, arrDepth] = getNonArrayModel(gqlMeta.returns());
652
+ const [argMetas] = getArgMetas(sigRef, gqlMeta.signalOption.name ?? gqlMeta.key);
653
+ const isScalar = isGqlScalar(returnRef);
670
654
  const emitEvent = function(...args) {
671
655
  const fetchPolicy = args[argMetas.length] ?? { crystalize: true };
672
656
  if (!this.client.io && !fetchPolicy.url) {
673
- import_common.Logger.warn(`${gqlMeta.key} emit suppressed - socket is not connected`);
657
+ Logger.warn(`${gqlMeta.key} emit suppressed - socket is not connected`);
674
658
  return;
675
659
  }
676
660
  const message = Object.fromEntries(
@@ -682,13 +666,13 @@ const fetchOf = (sigRef) => {
682
666
  const uri = fetchPolicy.url ?? "udpout:localhost:4000";
683
667
  const [host, port] = uri.split(":").slice(1);
684
668
  this.client.udp.send(JSON.stringify(message), parseInt(port), host);
685
- import_common.Logger.debug(`udp emit: ${gqlMeta.key}: ${(0, import_base.dayjs)().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
669
+ Logger.debug(`udp emit: ${gqlMeta.key}: ${dayjs().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
686
670
  return;
687
671
  } else {
688
672
  const io = this.client.getIo(fetchPolicy.url);
689
673
  void this.client.waitUntilWebSocketConnected(fetchPolicy.url).then(() => {
690
674
  io.emit(gqlMeta.key, message);
691
- import_common.Logger.debug(`socket emit: ${gqlMeta.key}: ${(0, import_base.dayjs)().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
675
+ Logger.debug(`socket emit: ${gqlMeta.key}: ${dayjs().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
692
676
  });
693
677
  }
694
678
  };
@@ -696,7 +680,7 @@ const fetchOf = (sigRef) => {
696
680
  const crystalize2 = (data) => {
697
681
  if (isScalar) {
698
682
  if (returnRef.prototype === Date.prototype)
699
- return (0, import_base.dayjs)(data);
683
+ return dayjs(data);
700
684
  else
701
685
  return data;
702
686
  } else if (Array.isArray(data))
@@ -705,32 +689,32 @@ const fetchOf = (sigRef) => {
705
689
  return makeCrystalize(returnRef)(data);
706
690
  };
707
691
  const handle = (data) => {
708
- import_common.Logger.debug(`socket listened: ${gqlMeta.key}: ${(0, import_base.dayjs)().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
692
+ Logger.debug(`socket listened: ${gqlMeta.key}: ${dayjs().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
709
693
  handleEvent(crystalize2(data));
710
694
  };
711
695
  const io = this.client.getIo(fetchPolicy.url);
712
696
  this.client.waitUntilWebSocketConnected(fetchPolicy.url).then(() => {
713
697
  io.removeListener(gqlMeta.key, handle);
714
698
  io.on(gqlMeta.key, handle);
715
- import_common.Logger.debug(`socket listen start: ${gqlMeta.key}: ${(0, import_base.dayjs)().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
699
+ Logger.debug(`socket listen start: ${gqlMeta.key}: ${dayjs().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
716
700
  });
717
701
  return async () => {
718
702
  await this.client.waitUntilWebSocketConnected(fetchPolicy.url);
719
- import_common.Logger.debug(`socket listen end: ${gqlMeta.key}: ${(0, import_base.dayjs)().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
703
+ Logger.debug(`socket listen end: ${gqlMeta.key}: ${dayjs().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
720
704
  io.removeListener(gqlMeta.key, handle);
721
705
  };
722
706
  };
723
707
  gqls[gqlMeta.key] = emitEvent;
724
- gqls[`listen${(0, import_common.capitalize)(gqlMeta.key)}`] = listenEvent;
708
+ gqls[`listen${capitalize(gqlMeta.key)}`] = listenEvent;
725
709
  } else if (gqlMeta.type === "Pubsub") {
726
- const [returnRef] = (0, import_base.getNonArrayModel)(gqlMeta.returns());
727
- const [argMetas] = (0, import_signalDecorators.getArgMetas)(sigRef, gqlMeta.signalOption.name ?? gqlMeta.key);
728
- const isScalar = (0, import_base.isGqlScalar)(returnRef);
710
+ const [returnRef] = getNonArrayModel(gqlMeta.returns());
711
+ const [argMetas] = getArgMetas(sigRef, gqlMeta.signalOption.name ?? gqlMeta.key);
712
+ const isScalar = isGqlScalar(returnRef);
729
713
  const makeRoomId = (gqlKey, argValues) => `${gqlKey}-${argValues.join("-")}`;
730
714
  const crystalize2 = (data) => {
731
715
  if (isScalar) {
732
716
  if (returnRef.prototype === Date.prototype)
733
- return (0, import_base.dayjs)(data);
717
+ return dayjs(data);
734
718
  else
735
719
  return data;
736
720
  } else if (Array.isArray(data))
@@ -755,26 +739,26 @@ const fetchOf = (sigRef) => {
755
739
  );
756
740
  const io = this.client.getIo(fetchPolicy.url);
757
741
  void this.client.waitUntilWebSocketConnected(fetchPolicy.url).then(() => {
758
- import_common.Logger.debug(`socket subscribe start: ${gqlMeta.key}: ${(0, import_base.dayjs)().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
742
+ Logger.debug(`socket subscribe start: ${gqlMeta.key}: ${dayjs().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
759
743
  io.subscribe({ key: gqlMeta.key, roomId, message, handleEvent });
760
744
  });
761
745
  return async () => {
762
746
  //! 앱에서 다른 앱 넘어갈 때 언마운트 되버리면서 subscribe가 끊기는 일이 있음.
763
747
  await this.client.waitUntilWebSocketConnected(fetchPolicy.url);
764
- import_common.Logger.debug(`socket unsubscribe: ${gqlMeta.key}: ${(0, import_base.dayjs)().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
748
+ Logger.debug(`socket unsubscribe: ${gqlMeta.key}: ${dayjs().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
765
749
  io.unsubscribe(roomId, handleEvent);
766
750
  };
767
751
  };
768
- gqls[`subscribe${(0, import_common.capitalize)(gqlMeta.key)}`] = subscribeEvent;
752
+ gqls[`subscribe${capitalize(gqlMeta.key)}`] = subscribeEvent;
769
753
  } else if (gqlMeta.type === "Query" || gqlMeta.type === "Mutation") {
770
754
  const name = gqlMeta.signalOption.name ?? gqlMeta.key;
771
755
  const makeReq = ({ resolve }) => async function(...args) {
772
- import_common.Logger.debug(`fetch: ${gqlMeta.key} start: ${(0, import_base.dayjs)().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
756
+ Logger.debug(`fetch: ${gqlMeta.key} start: ${dayjs().format("YYYY-MM-DD HH:mm:ss.SSS")}`);
773
757
  const now = Date.now();
774
- const [argMetas] = (0, import_signalDecorators.getArgMetas)(sigRef, gqlMeta.signalOption.name ?? gqlMeta.key);
775
- const [modelRef, arrDepth] = (0, import_base.getNonArrayModel)(gqlMeta.returns());
776
- const isScalar = (0, import_base.isGqlScalar)(modelRef);
777
- const returnRef = isScalar || !arrDepth ? modelRef : (0, import_constant.getLightModelRef)(modelRef);
758
+ const [argMetas] = getArgMetas(sigRef, gqlMeta.signalOption.name ?? gqlMeta.key);
759
+ const [modelRef, arrDepth] = getNonArrayModel(gqlMeta.returns());
760
+ const isScalar = isGqlScalar(modelRef);
761
+ const returnRef = isScalar || !arrDepth ? modelRef : getLightModelRef(modelRef);
778
762
  const fetchPolicy = args[argMetas.length] ?? { crystalize: true };
779
763
  const partial = fetchPolicy.partial ?? gqlMeta.signalOption.partial;
780
764
  const crystalize2 = (data) => {
@@ -782,7 +766,7 @@ const fetchOf = (sigRef) => {
782
766
  return data;
783
767
  if (isScalar) {
784
768
  if (returnRef.prototype === Date.prototype)
785
- return (0, import_base.dayjs)(data);
769
+ return dayjs(data);
786
770
  else
787
771
  return data;
788
772
  } else if (Array.isArray(data))
@@ -800,12 +784,12 @@ const fetchOf = (sigRef) => {
800
784
  fetchPolicy
801
785
  ))[name];
802
786
  const data = resolve ? crystalize2(res) : res;
803
- import_common.Logger.debug(
804
- `fetch: ${gqlMeta.key} end: ${(0, import_base.dayjs)().format("YYYY-MM-DD HH:mm:ss.SSS")} ${Date.now() - now}ms`
787
+ Logger.debug(
788
+ `fetch: ${gqlMeta.key} end: ${dayjs().format("YYYY-MM-DD HH:mm:ss.SSS")} ${Date.now() - now}ms`
805
789
  );
806
790
  return data;
807
791
  } catch (e) {
808
- import_common.Logger.error(`fetch: ${gqlMeta.key} error: ${e}`);
792
+ Logger.error(`fetch: ${gqlMeta.key} error: ${e}`);
809
793
  throw e;
810
794
  }
811
795
  };
@@ -820,9 +804,9 @@ const makeFetch = (fetch1, fetch2, fetch3, fetch4, fetch5, fetch6, fetch7, fetch
820
804
  };
821
805
  const makeArgStr = (argMetas) => {
822
806
  return argMetas.length ? `(${argMetas.map((argMeta) => {
823
- const [argRef, arrDepth] = (0, import_base.getNonArrayModel)(argMeta.returns());
824
- const argRefType = (0, import_base.isGqlScalar)(argRef) ? "gqlScalar" : (0, import_constant.getClassMeta)(argRef).type === "scalar" ? "scalar" : "model";
825
- const gqlTypeStr = "[".repeat(arrDepth) + ((0, import_constant.getGqlTypeStr)(argRef) + (argRefType === "scalar" ? "Input" : "")) + "!]".repeat(arrDepth);
807
+ const [argRef, arrDepth] = getNonArrayModel(argMeta.returns());
808
+ const argRefType = isGqlScalar(argRef) ? "gqlScalar" : getClassMeta(argRef).type === "scalar" ? "scalar" : "model";
809
+ const gqlTypeStr = "[".repeat(arrDepth) + (getGqlTypeStr(argRef) + (argRefType === "scalar" ? "Input" : "")) + "!]".repeat(arrDepth);
826
810
  return `$${argMeta.name}: ` + gqlTypeStr + (argMeta.argsOption.nullable ? "" : "!");
827
811
  }).join(", ")})` : "";
828
812
  };
@@ -830,21 +814,40 @@ const makeArgAssignStr = (argMetas) => {
830
814
  return argMetas.length ? `(${argMetas.map((argMeta) => `${argMeta.name}: $${argMeta.name}`).join(", ")})` : "";
831
815
  };
832
816
  const makeReturnStr = (returnRef, partial) => {
833
- const isScalar = (0, import_base.isGqlScalar)(returnRef);
817
+ const isScalar = isGqlScalar(returnRef);
834
818
  if (isScalar)
835
819
  return "";
836
- const classMeta = (0, import_constant.getClassMeta)(returnRef);
820
+ const classMeta = getClassMeta(returnRef);
837
821
  if (!partial?.length)
838
822
  return ` {
839
- ...${(0, import_common.lowerlize)(classMeta.refName)}Fragment
823
+ ...${lowerlize(classMeta.refName)}Fragment
840
824
  }`;
841
825
  const targetKeys = classMeta.type === "scalar" ? partial : [.../* @__PURE__ */ new Set(["id", ...partial, "updatedAt"])];
842
- const fieldMetaMap = (0, import_constant.getFieldMetaMap)(returnRef);
826
+ const fieldMetaMap = getFieldMetaMap(returnRef);
843
827
  return ` {
844
828
  ${targetKeys.map((key) => fieldMetaMap.get(key)).filter((metadata) => metadata && metadata.fieldType !== "hidden").map(
845
829
  (fieldMeta) => fieldMeta.isClass ? ` ${fieldMeta.key} {
846
- ...${(0, import_common.lowerlize)(fieldMeta.name)}Fragment
830
+ ...${lowerlize(fieldMeta.name)}Fragment
847
831
  }` : ` ${fieldMeta.key}`
848
832
  ).join("\n")}
849
833
  }`;
850
834
  };
835
+ export {
836
+ CrystalizeStorage,
837
+ DefaultStorage,
838
+ FragmentStorage,
839
+ GqlStorage,
840
+ PurifyStorage,
841
+ deserializeArg,
842
+ fetchOf,
843
+ getGqlOnStorage,
844
+ getGqlStr,
845
+ gqlOf,
846
+ makeCrystalize,
847
+ makeDefault,
848
+ makeFetch,
849
+ makeFragment,
850
+ makePurify,
851
+ scalarUtilOf,
852
+ serializeArg
853
+ };
@@ -0,0 +1,35 @@
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 immerify_exports = {};
19
+ __export(immerify_exports, {
20
+ immerify: () => immerify
21
+ });
22
+ module.exports = __toCommonJS(immerify_exports);
23
+ var import_constant = require("@akanjs/constant");
24
+ var import_immer = require("immer");
25
+ const immerify = (modelRef, objOrArr) => {
26
+ if (Array.isArray(objOrArr))
27
+ return objOrArr.map((val) => immerify(modelRef, val));
28
+ const fieldMetas = (0, import_constant.getFieldMetas)(modelRef);
29
+ const immeredObj = Object.assign({}, objOrArr, { [import_immer.immerable]: true });
30
+ fieldMetas.forEach((fieldMeta) => {
31
+ if (fieldMeta.isScalar && fieldMeta.isClass && !!objOrArr[fieldMeta.key])
32
+ immeredObj[fieldMeta.key] = immerify(fieldMeta.modelRef, objOrArr[fieldMeta.key]);
33
+ });
34
+ return immeredObj;
35
+ };