@rvoh/dream 1.4.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/dist/cjs/src/dream-app/index.js +17 -6
  3. package/dist/cjs/src/helpers/cli/addImportSuffix.js +17 -0
  4. package/dist/cjs/src/helpers/path/relativeDreamPath.js +4 -3
  5. package/dist/esm/src/dream-app/index.js +16 -5
  6. package/dist/esm/src/helpers/cli/addImportSuffix.js +14 -0
  7. package/dist/esm/src/helpers/path/relativeDreamPath.js +4 -3
  8. package/dist/types/src/dream-app/index.d.ts +6 -2
  9. package/dist/types/src/helpers/cli/addImportSuffix.d.ts +1 -0
  10. package/docs/assets/search.js +1 -1
  11. package/docs/classes/Benchmark.html +2 -2
  12. package/docs/classes/CalendarDate.html +2 -2
  13. package/docs/classes/CheckConstraintViolation.html +3 -3
  14. package/docs/classes/CliFileWriter.html +2 -2
  15. package/docs/classes/CreateOrFindByFailedToCreateAndFind.html +3 -3
  16. package/docs/classes/DataTypeColumnTypeMismatch.html +3 -3
  17. package/docs/classes/Decorators.html +19 -19
  18. package/docs/classes/Dream.html +113 -113
  19. package/docs/classes/DreamApp.html +5 -4
  20. package/docs/classes/DreamBin.html +2 -2
  21. package/docs/classes/DreamCLI.html +4 -4
  22. package/docs/classes/DreamImporter.html +2 -2
  23. package/docs/classes/DreamLogos.html +2 -2
  24. package/docs/classes/DreamMigrationHelpers.html +7 -7
  25. package/docs/classes/DreamSerializerBuilder.html +8 -8
  26. package/docs/classes/DreamTransaction.html +2 -2
  27. package/docs/classes/Encrypt.html +2 -2
  28. package/docs/classes/Env.html +2 -2
  29. package/docs/classes/GlobalNameNotSet.html +3 -3
  30. package/docs/classes/NonLoadedAssociation.html +3 -3
  31. package/docs/classes/NotNullViolation.html +3 -3
  32. package/docs/classes/ObjectSerializerBuilder.html +8 -8
  33. package/docs/classes/Query.html +60 -60
  34. package/docs/classes/Range.html +2 -2
  35. package/docs/classes/RecordNotFound.html +3 -3
  36. package/docs/classes/ValidationError.html +3 -3
  37. package/docs/functions/DreamSerializer.html +1 -1
  38. package/docs/functions/ObjectSerializer.html +1 -1
  39. package/docs/functions/ReplicaSafe.html +1 -1
  40. package/docs/functions/STI.html +1 -1
  41. package/docs/functions/SoftDelete.html +1 -1
  42. package/docs/functions/camelize.html +1 -1
  43. package/docs/functions/capitalize.html +1 -1
  44. package/docs/functions/cloneDeepSafe.html +1 -1
  45. package/docs/functions/closeAllDbConnections.html +1 -1
  46. package/docs/functions/compact.html +1 -1
  47. package/docs/functions/dreamDbConnections.html +1 -1
  48. package/docs/functions/dreamPath.html +1 -1
  49. package/docs/functions/expandStiClasses.html +1 -1
  50. package/docs/functions/generateDream.html +1 -1
  51. package/docs/functions/globalClassNameFromFullyQualifiedModelName.html +1 -1
  52. package/docs/functions/groupBy.html +1 -1
  53. package/docs/functions/hyphenize.html +1 -1
  54. package/docs/functions/inferSerializerFromDreamOrViewModel.html +1 -1
  55. package/docs/functions/inferSerializersFromDreamClassOrViewModelClass.html +1 -1
  56. package/docs/functions/intersection.html +1 -1
  57. package/docs/functions/isDreamSerializer.html +1 -1
  58. package/docs/functions/isEmpty.html +1 -1
  59. package/docs/functions/loadRepl.html +1 -1
  60. package/docs/functions/lookupClassByGlobalName.html +1 -1
  61. package/docs/functions/normalizeUnicode.html +1 -1
  62. package/docs/functions/pascalize.html +1 -1
  63. package/docs/functions/pgErrorType.html +1 -1
  64. package/docs/functions/range-1.html +1 -1
  65. package/docs/functions/relativeDreamPath.html +1 -1
  66. package/docs/functions/round.html +1 -1
  67. package/docs/functions/serializerNameFromFullyQualifiedModelName.html +1 -1
  68. package/docs/functions/sharedPathPrefix.html +1 -1
  69. package/docs/functions/snakeify.html +1 -1
  70. package/docs/functions/sort.html +1 -1
  71. package/docs/functions/sortBy.html +1 -1
  72. package/docs/functions/sortObjectByKey.html +1 -1
  73. package/docs/functions/sortObjectByValue.html +1 -1
  74. package/docs/functions/standardizeFullyQualifiedModelName.html +1 -1
  75. package/docs/functions/uncapitalize.html +1 -1
  76. package/docs/functions/uniq.html +1 -1
  77. package/docs/functions/untypedDb.html +1 -1
  78. package/docs/functions/validateColumn.html +1 -1
  79. package/docs/functions/validateTable.html +1 -1
  80. package/docs/interfaces/BelongsToStatement.html +2 -2
  81. package/docs/interfaces/DecoratorContext.html +2 -2
  82. package/docs/interfaces/DreamAppInitOptions.html +2 -2
  83. package/docs/interfaces/DreamAppOpts.html +2 -2
  84. package/docs/interfaces/EncryptOptions.html +2 -2
  85. package/docs/interfaces/InternalAnyTypedSerializerRendersMany.html +2 -2
  86. package/docs/interfaces/InternalAnyTypedSerializerRendersOne.html +2 -2
  87. package/docs/interfaces/OpenapiDescription.html +2 -2
  88. package/docs/interfaces/OpenapiSchemaProperties.html +1 -1
  89. package/docs/interfaces/OpenapiSchemaPropertiesShorthand.html +1 -1
  90. package/docs/interfaces/OpenapiTypeFieldObject.html +1 -1
  91. package/docs/interfaces/SerializerRendererOpts.html +2 -2
  92. package/docs/types/Camelized.html +1 -1
  93. package/docs/types/CommonOpenapiSchemaObjectFields.html +1 -1
  94. package/docs/types/DateTime.html +1 -1
  95. package/docs/types/DbConnectionType.html +1 -1
  96. package/docs/types/DbTypes.html +1 -1
  97. package/docs/types/DreamAppAllowedPackageManagersEnum.html +1 -1
  98. package/docs/types/DreamAssociationMetadata.html +1 -1
  99. package/docs/types/DreamAttributes.html +1 -1
  100. package/docs/types/DreamClassAssociationAndStatement.html +1 -1
  101. package/docs/types/DreamClassColumn.html +1 -1
  102. package/docs/types/DreamColumn.html +1 -1
  103. package/docs/types/DreamColumnNames.html +1 -1
  104. package/docs/types/DreamLogLevel.html +1 -1
  105. package/docs/types/DreamLogger.html +1 -1
  106. package/docs/types/DreamModelSerializerType.html +1 -1
  107. package/docs/types/DreamOrViewModelClassSerializerKey.html +1 -1
  108. package/docs/types/DreamOrViewModelSerializerKey.html +1 -1
  109. package/docs/types/DreamParamSafeAttributes.html +1 -1
  110. package/docs/types/DreamParamSafeColumnNames.html +1 -1
  111. package/docs/types/DreamSerializable.html +1 -1
  112. package/docs/types/DreamSerializableArray.html +1 -1
  113. package/docs/types/DreamSerializerKey.html +1 -1
  114. package/docs/types/DreamSerializers.html +1 -1
  115. package/docs/types/DreamVirtualColumns.html +1 -1
  116. package/docs/types/EncryptAlgorithm.html +1 -1
  117. package/docs/types/HasManyStatement.html +1 -1
  118. package/docs/types/HasOneStatement.html +1 -1
  119. package/docs/types/Hyphenized.html +1 -1
  120. package/docs/types/OpenapiAllTypes.html +1 -1
  121. package/docs/types/OpenapiFormats.html +1 -1
  122. package/docs/types/OpenapiNumberFormats.html +1 -1
  123. package/docs/types/OpenapiPrimitiveBaseTypes.html +1 -1
  124. package/docs/types/OpenapiPrimitiveTypes.html +1 -1
  125. package/docs/types/OpenapiSchemaArray.html +1 -1
  126. package/docs/types/OpenapiSchemaArrayShorthand.html +1 -1
  127. package/docs/types/OpenapiSchemaBase.html +1 -1
  128. package/docs/types/OpenapiSchemaBody.html +1 -1
  129. package/docs/types/OpenapiSchemaBodyShorthand.html +1 -1
  130. package/docs/types/OpenapiSchemaCommonFields.html +1 -1
  131. package/docs/types/OpenapiSchemaExpressionAllOf.html +1 -1
  132. package/docs/types/OpenapiSchemaExpressionAnyOf.html +1 -1
  133. package/docs/types/OpenapiSchemaExpressionOneOf.html +1 -1
  134. package/docs/types/OpenapiSchemaExpressionRef.html +1 -1
  135. package/docs/types/OpenapiSchemaExpressionRefSchemaShorthand.html +1 -1
  136. package/docs/types/OpenapiSchemaInteger.html +1 -1
  137. package/docs/types/OpenapiSchemaNull.html +1 -1
  138. package/docs/types/OpenapiSchemaNumber.html +1 -1
  139. package/docs/types/OpenapiSchemaObject.html +1 -1
  140. package/docs/types/OpenapiSchemaObjectAllOf.html +1 -1
  141. package/docs/types/OpenapiSchemaObjectAllOfShorthand.html +1 -1
  142. package/docs/types/OpenapiSchemaObjectAnyOf.html +1 -1
  143. package/docs/types/OpenapiSchemaObjectAnyOfShorthand.html +1 -1
  144. package/docs/types/OpenapiSchemaObjectBase.html +1 -1
  145. package/docs/types/OpenapiSchemaObjectBaseShorthand.html +1 -1
  146. package/docs/types/OpenapiSchemaObjectOneOf.html +1 -1
  147. package/docs/types/OpenapiSchemaObjectOneOfShorthand.html +1 -1
  148. package/docs/types/OpenapiSchemaObjectShorthand.html +1 -1
  149. package/docs/types/OpenapiSchemaPrimitiveGeneric.html +1 -1
  150. package/docs/types/OpenapiSchemaShorthandExpressionAllOf.html +1 -1
  151. package/docs/types/OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
  152. package/docs/types/OpenapiSchemaShorthandExpressionOneOf.html +1 -1
  153. package/docs/types/OpenapiSchemaShorthandExpressionSerializableRef.html +1 -1
  154. package/docs/types/OpenapiSchemaShorthandExpressionSerializerRef.html +1 -1
  155. package/docs/types/OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
  156. package/docs/types/OpenapiSchemaString.html +1 -1
  157. package/docs/types/OpenapiShorthandAllTypes.html +1 -1
  158. package/docs/types/OpenapiShorthandPrimitiveBaseTypes.html +1 -1
  159. package/docs/types/OpenapiShorthandPrimitiveTypes.html +1 -1
  160. package/docs/types/OpenapiTypeField.html +1 -1
  161. package/docs/types/Pascalized.html +1 -1
  162. package/docs/types/RoundingPrecision.html +1 -1
  163. package/docs/types/SerializerCasing.html +1 -1
  164. package/docs/types/SimpleObjectSerializerType.html +1 -1
  165. package/docs/types/Snakeified.html +1 -1
  166. package/docs/types/UpdateableAssociationProperties.html +1 -1
  167. package/docs/types/UpdateableProperties.html +1 -1
  168. package/docs/types/ValidationType.html +1 -1
  169. package/docs/types/ViewModel.html +1 -1
  170. package/docs/types/ViewModelClass.html +1 -1
  171. package/docs/types/WhereStatementForDream.html +1 -1
  172. package/docs/types/WhereStatementForDreamClass.html +1 -1
  173. package/docs/variables/DateTime-1.html +1 -1
  174. package/docs/variables/DreamAppAllowedPackageManagersEnumValues.html +1 -1
  175. package/docs/variables/DreamConst.html +1 -1
  176. package/docs/variables/TRIGRAM_OPERATORS.html +1 -1
  177. package/docs/variables/openapiPrimitiveTypes-1.html +1 -1
  178. package/docs/variables/openapiShorthandPrimitiveTypes-1.html +1 -1
  179. package/docs/variables/ops.html +1 -1
  180. package/docs/variables/primaryKeyTypes.html +1 -1
  181. package/package.json +2 -2
package/CHANGELOG.md ADDED
@@ -0,0 +1,100 @@
1
+ ## 1.4.2
2
+
3
+ - add ability to set custom import extension, which will be used when generating new files for your application
4
+
5
+ ## 1.4.1
6
+
7
+ - cache Dream app earlier in the initialization sequence
8
+
9
+ ## 1.4.0
10
+
11
+ - fix `preloadFor` infinite loop when serializers have circular references
12
+
13
+ - generated STI base serializer updated to only include the single type of the particular STI child in the OpenAPI shape for that child
14
+
15
+ - change `primaryKeyValue` from a getter to a method so it can return the correct type even when `primaryKey` has been overridden on a particular Dream model
16
+
17
+ - remove `IdType`, an unnecessary abstraction that caused type inconsistencies
18
+
19
+ - explicitly handle bigint from the database as string
20
+
21
+ ## 1.3.3
22
+
23
+ - make `referenceTypeString` public
24
+
25
+ ## 1.3.2
26
+
27
+ - restore aliasing in preload/load queries
28
+
29
+ ## 1.3.1
30
+
31
+ - throw NotNullViolation when Postgres throws a not null violation
32
+
33
+ - throw CheckViolation when Postgres throws a check violation
34
+
35
+ ## 1.3.0
36
+
37
+ - sti-child generator includes check constraint instead of not-null since the column should only be not-null for that STI child (or modified by hand to accommodate more than one STI child)
38
+
39
+ - add `Dream#hasAssociation`
40
+
41
+ - fix preloading associations on other side of a polyorphic belongs-to association so that we don't set an association on a dream model that doesn't define that association
42
+
43
+ - fix preloading association on the other side of a polymorphic belongs-to since the same association name may be defined differently on different models. For example, taskable may be a Chore or a Workout, both of which have an `images` association, but `images` goes through ChoreImage on Chore and through WorkoutImage on Workout
44
+
45
+ - fix preloadFor when a rendersOne/Many renders a polymorphic belongs-to (was only preloading serializer associations for one of the polymorphically associated models)
46
+
47
+ - fix preloadFor when an explicit serializer option is provided to a rendersOne/Many
48
+
49
+ ## 1.2.1
50
+
51
+ - Throw DataTypeColumnTypeMismatch when Postgres throws an error attempting to save to a column with a value that can't be cast to the column type.
52
+
53
+ ## 1.2.0
54
+
55
+ - Add Dream.lookup, enabling devs to tap into the IOC provided by dream to dodge circular import issues
56
+
57
+ ## 1.1.2
58
+
59
+ - CliFileWriter does not raise error if the file we are writing is not in the file system yet.
60
+
61
+ ## 1.1.1
62
+
63
+ - Add fs.writeFile options as third argument to CliFileWriter.write, enabling psychic to provide custom flags when writing openapi.json files.
64
+
65
+ ## 1.1.0
66
+
67
+ - Remove support for preloadThroughColumns. They were broken, fixing them would be overly complex, and the same effect can be obtained using flatten on a serializer rendersOne
68
+
69
+ ## 1.0.6
70
+
71
+ - Fix joining after a through a polymorphic BelongsTo
72
+ association.
73
+
74
+ - Improve join implementation
75
+
76
+ - Disable leftJoinPreload preloadThroughColumns since it doesn't actually work on through associations that resolve to a source that doesn't match the association name (and we were unnecessarily including columns in the leftJoinPreload statement even when there was no `preloadThroughColumns`, thereby bloating the queries unnecessarily)
77
+
78
+ ## 1.0.5
79
+
80
+ - Support HasOne/Many through polymorphic BelongsTo (trick is that it uses the associated model from the HasOne/Many to limit the BelongsTo to a single associated class / table)
81
+
82
+ - Fix HasOne/Many through source type
83
+
84
+ - sync process is now fail-safe, leveraging a utility which caches old copies of files before writing to them. If an exception is thrown at any point during the process, dream will revert all files written using the new `CliFileWriter` class
85
+
86
+ ## 1.0.4
87
+
88
+ - properly exclude type from `DreamParamSafeColumnNames`
89
+
90
+ ## 1.0.3
91
+
92
+ - exclude type from `DreamParamSafeColumnNames`
93
+
94
+ ## 1.0.2
95
+
96
+ - stop computing foreign keys in schema builder when building schema for through associations
97
+
98
+ ## 1.0.1
99
+
100
+ - [bug] fix preloading STI model via polymporhic association (polymorphic type was being altered to the STI child rather than left as the STI base)
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DreamAppAllowedPackageManagersEnumValues = void 0;
3
+ exports.GeneratorImportStyles = exports.DreamAppAllowedPackageManagersEnumValues = void 0;
4
4
  // after building for esm, importing pg using the following:
5
5
  //
6
6
  // import * as pg from 'pg'
@@ -43,6 +43,11 @@ class DreamApp {
43
43
  const dreamApp = new DreamApp(opts);
44
44
  await cb(dreamApp);
45
45
  await dreamApp.inflections?.();
46
+ if (!dreamApp.serializers)
47
+ (0, importSerializers_js_1.setCachedSerializers)({});
48
+ (0, cache_js_1.cacheDreamApp)(dreamApp);
49
+ if (!EnvInternal_js_1.default.boolean('BYPASS_DB_CONNECTIONS_DURING_INIT'))
50
+ await this.setDatabaseTypeParsers();
46
51
  await deferCb?.(dreamApp);
47
52
  for (const plugin of dreamApp.plugins) {
48
53
  await plugin(dreamApp);
@@ -50,11 +55,6 @@ class DreamApp {
50
55
  dreamApp.validateAppBuildIntegrity({
51
56
  bypassModelIntegrityCheck: opts.bypassModelIntegrityCheck || false,
52
57
  });
53
- if (!dreamApp.serializers)
54
- (0, importSerializers_js_1.setCachedSerializers)({});
55
- (0, cache_js_1.cacheDreamApp)(dreamApp);
56
- if (!EnvInternal_js_1.default.boolean('BYPASS_DB_CONNECTIONS_DURING_INIT'))
57
- await this.setDatabaseTypeParsers();
58
58
  return dreamApp;
59
59
  }
60
60
  /**
@@ -220,6 +220,10 @@ Try setting it to something valid, like:
220
220
  get packageManager() {
221
221
  return this._packageManager;
222
222
  }
223
+ _importExtension = '.js';
224
+ get importExtension() {
225
+ return this._importExtension;
226
+ }
223
227
  loadedModels = false;
224
228
  constructor(opts) {
225
229
  if (opts?.db)
@@ -297,6 +301,9 @@ Try setting it to something valid, like:
297
301
  case 'primaryKeyType':
298
302
  this._primaryKeyType = options;
299
303
  break;
304
+ case 'importExtension':
305
+ this._importExtension = options;
306
+ break;
300
307
  case 'logger':
301
308
  this._logger = options;
302
309
  break;
@@ -360,3 +367,7 @@ function argToString(arg) {
360
367
  return util.inspect(arg, { depth: 3 });
361
368
  }
362
369
  exports.DreamAppAllowedPackageManagersEnumValues = ['yarn', 'npm', 'pnpm'];
370
+ // GeneratorImportStyles are used by CLI generators to determine how
371
+ // to style import suffixes. When integrating with other apps, this
372
+ // suffix style can change, and may need to be configured.
373
+ exports.GeneratorImportStyles = ['.js', '.ts', 'none'];
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = addImportSuffix;
4
+ const index_js_1 = require("../../dream-app/index.js");
5
+ function addImportSuffix(filepath) {
6
+ return `${filepath.replace(/(\.ts|\.js)$/, '')}${suffix()}`;
7
+ }
8
+ function suffix() {
9
+ switch (index_js_1.default.getOrFail().importExtension) {
10
+ case '.js':
11
+ return '.js';
12
+ case '.ts':
13
+ return '.ts';
14
+ case 'none':
15
+ return '';
16
+ }
17
+ }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = default_1;
4
4
  exports.dreamPathTypeRelativePath = dreamPathTypeRelativePath;
5
+ const addImportSuffix_js_1 = require("../cli/addImportSuffix.js");
5
6
  const pascalize_js_1 = require("../pascalize.js");
6
7
  const standardizeFullyQualifiedModelName_js_1 = require("../standardizeFullyQualifiedModelName.js");
7
8
  const dreamPath_js_1 = require("./dreamPath.js");
@@ -28,11 +29,11 @@ function default_1(originDreamPathType, destinationDreamPathType, fullyQualified
28
29
  case 'db':
29
30
  return destinationPath;
30
31
  case 'factories':
31
- return `${destinationPath}${fullyQualifiedDestinationModelName}Factory.js`;
32
+ return (0, addImportSuffix_js_1.default)(`${destinationPath}${fullyQualifiedDestinationModelName}Factory.js`);
32
33
  case 'serializers':
33
- return `${destinationPath}${fullyQualifiedDestinationModelName}Serializer.js`;
34
+ return (0, addImportSuffix_js_1.default)(`${destinationPath}${fullyQualifiedDestinationModelName}Serializer.js`);
34
35
  default:
35
- return `${destinationPath}${fullyQualifiedDestinationModelName}.js`;
36
+ return (0, addImportSuffix_js_1.default)(`${destinationPath}${fullyQualifiedDestinationModelName}.js`);
36
37
  }
37
38
  }
38
39
  function dreamPathTypeRelativePath(originDreamPathType, destinationDreamPathType) {
@@ -40,6 +40,11 @@ export default class DreamApp {
40
40
  const dreamApp = new DreamApp(opts);
41
41
  await cb(dreamApp);
42
42
  await dreamApp.inflections?.();
43
+ if (!dreamApp.serializers)
44
+ setCachedSerializers({});
45
+ cacheDreamApp(dreamApp);
46
+ if (!EnvInternal.boolean('BYPASS_DB_CONNECTIONS_DURING_INIT'))
47
+ await this.setDatabaseTypeParsers();
43
48
  await deferCb?.(dreamApp);
44
49
  for (const plugin of dreamApp.plugins) {
45
50
  await plugin(dreamApp);
@@ -47,11 +52,6 @@ export default class DreamApp {
47
52
  dreamApp.validateAppBuildIntegrity({
48
53
  bypassModelIntegrityCheck: opts.bypassModelIntegrityCheck || false,
49
54
  });
50
- if (!dreamApp.serializers)
51
- setCachedSerializers({});
52
- cacheDreamApp(dreamApp);
53
- if (!EnvInternal.boolean('BYPASS_DB_CONNECTIONS_DURING_INIT'))
54
- await this.setDatabaseTypeParsers();
55
55
  return dreamApp;
56
56
  }
57
57
  /**
@@ -217,6 +217,10 @@ Try setting it to something valid, like:
217
217
  get packageManager() {
218
218
  return this._packageManager;
219
219
  }
220
+ _importExtension = '.js';
221
+ get importExtension() {
222
+ return this._importExtension;
223
+ }
220
224
  loadedModels = false;
221
225
  constructor(opts) {
222
226
  if (opts?.db)
@@ -294,6 +298,9 @@ Try setting it to something valid, like:
294
298
  case 'primaryKeyType':
295
299
  this._primaryKeyType = options;
296
300
  break;
301
+ case 'importExtension':
302
+ this._importExtension = options;
303
+ break;
297
304
  case 'logger':
298
305
  this._logger = options;
299
306
  break;
@@ -356,3 +363,7 @@ function argToString(arg) {
356
363
  return util.inspect(arg, { depth: 3 });
357
364
  }
358
365
  export const DreamAppAllowedPackageManagersEnumValues = ['yarn', 'npm', 'pnpm'];
366
+ // GeneratorImportStyles are used by CLI generators to determine how
367
+ // to style import suffixes. When integrating with other apps, this
368
+ // suffix style can change, and may need to be configured.
369
+ export const GeneratorImportStyles = ['.js', '.ts', 'none'];
@@ -0,0 +1,14 @@
1
+ import DreamApp from '../../dream-app/index.js';
2
+ export default function addImportSuffix(filepath) {
3
+ return `${filepath.replace(/(\.ts|\.js)$/, '')}${suffix()}`;
4
+ }
5
+ function suffix() {
6
+ switch (DreamApp.getOrFail().importExtension) {
7
+ case '.js':
8
+ return '.js';
9
+ case '.ts':
10
+ return '.ts';
11
+ case 'none':
12
+ return '';
13
+ }
14
+ }
@@ -1,3 +1,4 @@
1
+ import addImportSuffix from '../cli/addImportSuffix.js';
1
2
  import pascalize from '../pascalize.js';
2
3
  import standardizeFullyQualifiedModelName from '../standardizeFullyQualifiedModelName.js';
3
4
  import dreamPath from './dreamPath.js';
@@ -24,11 +25,11 @@ export default function (originDreamPathType, destinationDreamPathType, fullyQua
24
25
  case 'db':
25
26
  return destinationPath;
26
27
  case 'factories':
27
- return `${destinationPath}${fullyQualifiedDestinationModelName}Factory.js`;
28
+ return addImportSuffix(`${destinationPath}${fullyQualifiedDestinationModelName}Factory.js`);
28
29
  case 'serializers':
29
- return `${destinationPath}${fullyQualifiedDestinationModelName}Serializer.js`;
30
+ return addImportSuffix(`${destinationPath}${fullyQualifiedDestinationModelName}Serializer.js`);
30
31
  default:
31
- return `${destinationPath}${fullyQualifiedDestinationModelName}.js`;
32
+ return addImportSuffix(`${destinationPath}${fullyQualifiedDestinationModelName}.js`);
32
33
  }
33
34
  }
34
35
  export function dreamPathTypeRelativePath(originDreamPathType, destinationDreamPathType) {
@@ -82,6 +82,8 @@ export default class DreamApp {
82
82
  get plugins(): ((app: DreamApp) => void | Promise<void>)[];
83
83
  private _packageManager;
84
84
  get packageManager(): "yarn" | "npm" | "pnpm";
85
+ private _importExtension;
86
+ get importExtension(): ".js" | ".ts" | "none";
85
87
  protected loadedModels: boolean;
86
88
  constructor(opts?: Partial<DreamAppOpts>);
87
89
  get models(): Record<string, typeof Dream>;
@@ -92,7 +94,7 @@ export default class DreamApp {
92
94
  get parallelDatabasesEnabled(): boolean;
93
95
  load<RT extends 'models' | 'serializers'>(resourceType: RT, resourcePath: string, importCb: (path: string) => Promise<any>): Promise<void>;
94
96
  plugin(cb: (app: DreamApp) => void | Promise<void>): void;
95
- set<ApplyOpt extends DreamAppSetOption>(applyOption: ApplyOpt, options: ApplyOpt extends 'db' ? DreamDbCredentialOptions : ApplyOpt extends 'encryption' ? DreamAppEncryptionOptions : ApplyOpt extends 'primaryKeyType' ? (typeof primaryKeyTypes)[number] : ApplyOpt extends 'logger' ? DreamLogger : ApplyOpt extends 'projectRoot' ? string : ApplyOpt extends 'inflections' ? () => void | Promise<void> : ApplyOpt extends 'packageManager' ? DreamAppAllowedPackageManagersEnum : ApplyOpt extends 'paths' ? DreamDirectoryPaths : ApplyOpt extends 'parallelTests' ? number : ApplyOpt extends 'unicodeNormalization' ? UnicodeNormalizationForm : ApplyOpt extends 'paginationPageSize' ? number : never): void;
97
+ set<ApplyOpt extends DreamAppSetOption>(applyOption: ApplyOpt, options: ApplyOpt extends 'db' ? DreamDbCredentialOptions : ApplyOpt extends 'encryption' ? DreamAppEncryptionOptions : ApplyOpt extends 'primaryKeyType' ? (typeof primaryKeyTypes)[number] : ApplyOpt extends 'importExtension' ? GeneratorImportStyle : ApplyOpt extends 'logger' ? DreamLogger : ApplyOpt extends 'projectRoot' ? string : ApplyOpt extends 'inflections' ? () => void | Promise<void> : ApplyOpt extends 'packageManager' ? DreamAppAllowedPackageManagersEnum : ApplyOpt extends 'paths' ? DreamDirectoryPaths : ApplyOpt extends 'parallelTests' ? number : ApplyOpt extends 'unicodeNormalization' ? UnicodeNormalizationForm : ApplyOpt extends 'paginationPageSize' ? number : never): void;
96
98
  on<T extends DreamHookEventType>(hookEventType: T, cb: T extends 'db:log' ? (event: KyselyLogEvent) => void : T extends 'repl:start' ? (context: Context) => void | Promise<void> : never): void;
97
99
  }
98
100
  export type DreamHookEventType = 'db:log' | 'repl:start';
@@ -105,7 +107,7 @@ export interface DreamAppOpts {
105
107
  serializerCasing?: DreamSerializerCasing;
106
108
  parallelTests: number | undefined;
107
109
  }
108
- export type DreamAppSetOption = 'db' | 'encryption' | 'inflections' | 'logger' | 'paths' | 'primaryKeyType' | 'projectRoot' | 'serializerCasing' | 'parallelTests' | 'unicodeNormalization' | 'paginationPageSize' | 'packageManager';
110
+ export type DreamAppSetOption = 'db' | 'encryption' | 'inflections' | 'importExtension' | 'logger' | 'paths' | 'primaryKeyType' | 'projectRoot' | 'serializerCasing' | 'parallelTests' | 'unicodeNormalization' | 'paginationPageSize' | 'packageManager';
109
111
  export interface DreamDirectoryPaths {
110
112
  models?: string;
111
113
  serializers?: string;
@@ -158,4 +160,6 @@ export interface KyselyLogEvent {
158
160
  }
159
161
  export declare const DreamAppAllowedPackageManagersEnumValues: readonly ["yarn", "npm", "pnpm"];
160
162
  export type DreamAppAllowedPackageManagersEnum = (typeof DreamAppAllowedPackageManagersEnumValues)[number];
163
+ export declare const GeneratorImportStyles: readonly [".js", ".ts", "none"];
164
+ export type GeneratorImportStyle = (typeof GeneratorImportStyles)[number];
161
165
  export {};
@@ -0,0 +1 @@
1
+ export default function addImportSuffix(filepath: string): string;
@@ -1 +1 @@
1
- window.searchData = "data:application/octet-stream;base64,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";
1
+ window.searchData = "data:application/octet-stream;base64,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";
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Benchmark | @rvoh/dream</title><meta name="description" content="Documentation for @rvoh/dream"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@rvoh/dream</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">@rvoh/dream</a></li><li><a href="Benchmark.html">Benchmark</a></li></ul><h1>Class Benchmark</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a75b0aeee43a4b39b963226b16db74787950830a/src/helpers/benchmark.ts#L6">src/helpers/benchmark.ts:6</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="Benchmark.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
1
+ <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Benchmark | @rvoh/dream</title><meta name="description" content="Documentation for @rvoh/dream"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@rvoh/dream</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">@rvoh/dream</a></li><li><a href="Benchmark.html">Benchmark</a></li></ul><h1>Class Benchmark</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/8f98e5a11ce0d5195c2c38eeefff613db9648b53/src/helpers/benchmark.ts#L6">src/helpers/benchmark.ts:6</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="Benchmark.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
2
2
  </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Benchmark.html#mark" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>mark</span></a>
3
3
  <a href="Benchmark.html#start" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>start</span></a>
4
- </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Constructors"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Constructors</h2></summary><section><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Benchmark" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Benchmark</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Benchmark.html" class="tsd-signature-type tsd-kind-class">Benchmark</a><a href="#constructor.new_Benchmark" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="Benchmark.html" class="tsd-signature-type tsd-kind-class">Benchmark</a></h4></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Methods</h2></summary><section><section class="tsd-panel tsd-member"><a id="mark" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>mark</span><a href="#mark" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="mark.mark-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">mark</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span>, <span class="tsd-kind-parameter">level</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#mark.mark-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">level</span>: <span class="tsd-signature-type">BenchmarkLogLevel</span><span class="tsd-signature-symbol"> = &#39;log&#39;</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a75b0aeee43a4b39b963226b16db74787950830a/src/helpers/benchmark.ts#L12">src/helpers/benchmark.ts:12</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="start" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>start</span><a href="#start" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="start.start-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">start</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#start.start-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a75b0aeee43a4b39b963226b16db74787950830a/src/helpers/benchmark.ts#L8">src/helpers/benchmark.ts:8</a></li></ul></aside></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="tsd-otp-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="tsd-otp-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#mark" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>mark</span></a><a href="#start" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>start</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>@rvoh/dream</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
4
+ </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Constructors"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Constructors</h2></summary><section><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Benchmark" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Benchmark</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Benchmark.html" class="tsd-signature-type tsd-kind-class">Benchmark</a><a href="#constructor.new_Benchmark" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="Benchmark.html" class="tsd-signature-type tsd-kind-class">Benchmark</a></h4></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Methods</h2></summary><section><section class="tsd-panel tsd-member"><a id="mark" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>mark</span><a href="#mark" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="mark.mark-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">mark</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span>, <span class="tsd-kind-parameter">level</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#mark.mark-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">level</span>: <span class="tsd-signature-type">BenchmarkLogLevel</span><span class="tsd-signature-symbol"> = &#39;log&#39;</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/8f98e5a11ce0d5195c2c38eeefff613db9648b53/src/helpers/benchmark.ts#L12">src/helpers/benchmark.ts:12</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="start" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>start</span><a href="#start" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="start.start-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">start</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#start.start-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/8f98e5a11ce0d5195c2c38eeefff613db9648b53/src/helpers/benchmark.ts#L8">src/helpers/benchmark.ts:8</a></li></ul></aside></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="tsd-otp-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="tsd-otp-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#mark" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>mark</span></a><a href="#start" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>start</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>@rvoh/dream</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>