@rvoh/dream 0.40.0 → 0.40.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.
- package/dist/cjs/src/Dream.js +45 -41
- package/dist/esm/src/Dream.js +45 -41
- package/dist/types/src/Dream.d.ts +2 -2
- package/docs/classes/Benchmark.html +2 -2
- package/docs/classes/CalendarDate.html +2 -2
- package/docs/classes/CreateOrFindByFailedToCreateAndFind.html +3 -3
- package/docs/classes/Decorators.html +19 -19
- package/docs/classes/Dream.html +127 -127
- package/docs/classes/DreamApp.html +4 -4
- package/docs/classes/DreamBin.html +2 -2
- package/docs/classes/DreamCLI.html +4 -4
- package/docs/classes/DreamImporter.html +2 -2
- package/docs/classes/DreamLogos.html +2 -2
- package/docs/classes/DreamMigrationHelpers.html +7 -7
- package/docs/classes/DreamSerializer.html +2 -2
- package/docs/classes/DreamTransaction.html +2 -2
- package/docs/classes/Encrypt.html +2 -2
- package/docs/classes/Env.html +2 -2
- package/docs/classes/GlobalNameNotSet.html +3 -3
- package/docs/classes/NonLoadedAssociation.html +3 -3
- package/docs/classes/Query.html +50 -50
- package/docs/classes/Range.html +2 -2
- package/docs/classes/RecordNotFound.html +3 -3
- package/docs/classes/ValidationError.html +3 -3
- package/docs/functions/Attribute.html +1 -1
- package/docs/functions/RendersMany.html +1 -1
- package/docs/functions/RendersOne.html +1 -1
- package/docs/functions/ReplicaSafe.html +1 -1
- package/docs/functions/STI.html +1 -1
- package/docs/functions/SoftDelete.html +1 -1
- package/docs/functions/camelize.html +1 -1
- package/docs/functions/capitalize.html +1 -1
- package/docs/functions/closeAllDbConnections.html +1 -1
- package/docs/functions/compact.html +1 -1
- package/docs/functions/dreamDbConnections.html +1 -1
- package/docs/functions/dreamPath.html +1 -1
- package/docs/functions/generateDream.html +1 -1
- package/docs/functions/globalClassNameFromFullyQualifiedModelName.html +1 -1
- package/docs/functions/hyphenize.html +1 -1
- package/docs/functions/inferSerializerFromDreamClassOrViewModelClass.html +1 -1
- package/docs/functions/inferSerializerFromDreamOrViewModel.html +1 -1
- package/docs/functions/isEmpty.html +1 -1
- package/docs/functions/loadRepl.html +1 -1
- package/docs/functions/lookupClassByGlobalName.html +1 -1
- package/docs/functions/pascalize.html +1 -1
- package/docs/functions/pgErrorType.html +1 -1
- package/docs/functions/range-1.html +1 -1
- package/docs/functions/relativeDreamPath.html +1 -1
- package/docs/functions/round.html +1 -1
- package/docs/functions/serializerNameFromFullyQualifiedModelName.html +1 -1
- package/docs/functions/sharedPathPrefix.html +1 -1
- package/docs/functions/snakeify.html +1 -1
- package/docs/functions/sort.html +1 -1
- package/docs/functions/sortBy.html +1 -1
- package/docs/functions/standardizeFullyQualifiedModelName.html +1 -1
- package/docs/functions/uncapitalize.html +1 -1
- package/docs/functions/uniq.html +1 -1
- package/docs/functions/untypedDb.html +1 -1
- package/docs/functions/validateColumn.html +1 -1
- package/docs/functions/validateTable.html +1 -1
- package/docs/interfaces/AttributeStatement.html +2 -2
- package/docs/interfaces/DecoratorContext.html +2 -2
- package/docs/interfaces/DreamAppInitOptions.html +2 -2
- package/docs/interfaces/DreamAppOpts.html +2 -2
- package/docs/interfaces/DreamSerializerAssociationStatement.html +2 -2
- package/docs/interfaces/EncryptOptions.html +2 -2
- package/docs/interfaces/OpenapiSchemaProperties.html +1 -1
- package/docs/interfaces/OpenapiSchemaPropertiesShorthand.html +1 -1
- package/docs/interfaces/OpenapiTypeFieldObject.html +1 -1
- package/docs/types/Camelized.html +1 -1
- package/docs/types/CommonOpenapiSchemaObjectFields.html +1 -1
- package/docs/types/DateTime.html +1 -1
- package/docs/types/DbConnectionType.html +1 -1
- package/docs/types/DreamAssociationMetadata.html +1 -1
- package/docs/types/DreamAttributes.html +1 -1
- package/docs/types/DreamClassColumn.html +1 -1
- package/docs/types/DreamColumn.html +1 -1
- package/docs/types/DreamColumnNames.html +1 -1
- package/docs/types/DreamLogLevel.html +1 -1
- package/docs/types/DreamLogger.html +1 -1
- package/docs/types/DreamOrViewModelSerializerKey.html +1 -1
- package/docs/types/DreamParamSafeAttributes.html +1 -1
- package/docs/types/DreamParamSafeColumnNames.html +1 -1
- package/docs/types/DreamSerializerKey.html +1 -1
- package/docs/types/DreamSerializers.html +1 -1
- package/docs/types/DreamTableSchema.html +1 -1
- package/docs/types/DreamVirtualColumns.html +1 -1
- package/docs/types/EncryptAlgorithm.html +1 -1
- package/docs/types/Hyphenized.html +1 -1
- package/docs/types/IdType.html +1 -1
- package/docs/types/OpenapiAllTypes.html +1 -1
- package/docs/types/OpenapiFormats.html +1 -1
- package/docs/types/OpenapiNumberFormats.html +1 -1
- package/docs/types/OpenapiPrimitiveTypes.html +1 -1
- package/docs/types/OpenapiSchemaArray.html +1 -1
- package/docs/types/OpenapiSchemaArrayShorthand.html +1 -1
- package/docs/types/OpenapiSchemaBase.html +1 -1
- package/docs/types/OpenapiSchemaBody.html +1 -1
- package/docs/types/OpenapiSchemaBodyShorthand.html +1 -1
- package/docs/types/OpenapiSchemaCommonFields.html +1 -1
- package/docs/types/OpenapiSchemaExpressionAllOf.html +1 -1
- package/docs/types/OpenapiSchemaExpressionAnyOf.html +1 -1
- package/docs/types/OpenapiSchemaExpressionOneOf.html +1 -1
- package/docs/types/OpenapiSchemaExpressionRef.html +1 -1
- package/docs/types/OpenapiSchemaExpressionRefSchemaShorthand.html +1 -1
- package/docs/types/OpenapiSchemaInteger.html +1 -1
- package/docs/types/OpenapiSchemaNull.html +1 -1
- package/docs/types/OpenapiSchemaNumber.html +1 -1
- package/docs/types/OpenapiSchemaObject.html +1 -1
- package/docs/types/OpenapiSchemaObjectAllOf.html +1 -1
- package/docs/types/OpenapiSchemaObjectAllOfShorthand.html +1 -1
- package/docs/types/OpenapiSchemaObjectAnyOf.html +1 -1
- package/docs/types/OpenapiSchemaObjectAnyOfShorthand.html +1 -1
- package/docs/types/OpenapiSchemaObjectBase.html +1 -1
- package/docs/types/OpenapiSchemaObjectBaseShorthand.html +1 -1
- package/docs/types/OpenapiSchemaObjectOneOf.html +1 -1
- package/docs/types/OpenapiSchemaObjectOneOfShorthand.html +1 -1
- package/docs/types/OpenapiSchemaObjectShorthand.html +1 -1
- package/docs/types/OpenapiSchemaPrimitiveGeneric.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionAllOf.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionOneOf.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionSerializableRef.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionSerializerRef.html +1 -1
- package/docs/types/OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
- package/docs/types/OpenapiSchemaString.html +1 -1
- package/docs/types/OpenapiShorthandAllTypes.html +1 -1
- package/docs/types/OpenapiShorthandPrimitiveTypes.html +1 -1
- package/docs/types/OpenapiTypeField.html +1 -1
- package/docs/types/Pascalized.html +1 -1
- package/docs/types/PrimaryKeyType.html +1 -1
- package/docs/types/RoundingPrecision.html +1 -1
- package/docs/types/SerializableClassOrSerializerCallback.html +1 -1
- package/docs/types/SerializableDreamClassOrViewModelClass.html +1 -1
- package/docs/types/SerializableDreamOrViewModel.html +1 -1
- package/docs/types/SerializableTypes.html +1 -1
- package/docs/types/Snakeified.html +1 -1
- package/docs/types/Timestamp.html +1 -1
- package/docs/types/UpdateableAssociationProperties.html +1 -1
- package/docs/types/UpdateableProperties.html +1 -1
- package/docs/types/ValidationType.html +1 -1
- package/docs/types/ViewModelSerializerKey.html +1 -1
- package/docs/types/WhereStatementForDream.html +1 -1
- package/docs/types/WhereStatementForDreamClass.html +1 -1
- package/docs/variables/DateTime-1.html +1 -1
- package/docs/variables/DreamConst.html +1 -1
- package/docs/variables/TRIGRAM_OPERATORS.html +1 -1
- package/docs/variables/openapiPrimitiveTypes-1.html +1 -1
- package/docs/variables/openapiShorthandPrimitiveTypes-1.html +1 -1
- package/docs/variables/ops.html +1 -1
- package/docs/variables/primaryKeyTypes.html +1 -1
- package/package.json +1 -1
package/dist/cjs/src/Dream.js
CHANGED
|
@@ -1885,12 +1885,25 @@ class Dream {
|
|
|
1885
1885
|
const returnValues = {};
|
|
1886
1886
|
const setAttributeOnDreamInstance = (attr, value) => {
|
|
1887
1887
|
if (!dreamInstance)
|
|
1888
|
-
return;
|
|
1889
|
-
if (
|
|
1888
|
+
return value;
|
|
1889
|
+
if (!dreamInstance.columns().has(attr)) {
|
|
1890
|
+
// not a column. set via the setter and return the getter value
|
|
1891
|
+
;
|
|
1892
|
+
dreamInstance[attr] = value;
|
|
1893
|
+
return dreamInstance[attr];
|
|
1894
|
+
//
|
|
1895
|
+
}
|
|
1896
|
+
else if (bypassUserDefinedSetters && !(0, isJsonColumn_js_1.default)(this, attr)) {
|
|
1897
|
+
// bypass user defined setters, and this field is not json, so set
|
|
1898
|
+
// the attribute directly and return the attribute
|
|
1890
1899
|
dreamInstance.setAttribute(attr, value);
|
|
1900
|
+
return dreamInstance.getAttribute(attr);
|
|
1891
1901
|
}
|
|
1892
1902
|
else {
|
|
1903
|
+
// don't bypass user defined setters, or this field is json, so set
|
|
1904
|
+
// the attribute directly and return the attribute
|
|
1893
1905
|
dreamInstance.assignAttribute(attr, value);
|
|
1906
|
+
return dreamInstance.getAttribute(attr);
|
|
1894
1907
|
}
|
|
1895
1908
|
};
|
|
1896
1909
|
Object.keys(attributes).forEach(attr => {
|
|
@@ -1921,8 +1934,7 @@ class Dream {
|
|
|
1921
1934
|
}
|
|
1922
1935
|
}
|
|
1923
1936
|
else {
|
|
1924
|
-
returnValues[attr] = attributes[attr];
|
|
1925
|
-
setAttributeOnDreamInstance(attr, returnValues[attr]);
|
|
1937
|
+
returnValues[attr] = setAttributeOnDreamInstance(attr, attributes[attr]);
|
|
1926
1938
|
}
|
|
1927
1939
|
});
|
|
1928
1940
|
return returnValues;
|
|
@@ -1940,16 +1952,19 @@ class Dream {
|
|
|
1940
1952
|
columns.forEach(column => {
|
|
1941
1953
|
// this ensures that the currentAttributes object will contain keys
|
|
1942
1954
|
// for each of the properties
|
|
1943
|
-
if (this.
|
|
1944
|
-
this.
|
|
1955
|
+
if (this.getAttribute(column) === undefined)
|
|
1956
|
+
this.setAttribute(column, undefined);
|
|
1945
1957
|
if (!Object.getOwnPropertyDescriptor(dreamPrototype, column)?.set) {
|
|
1946
1958
|
if ((0, isJsonColumn_js_1.default)(this.constructor, column)) {
|
|
1947
1959
|
// handle JSON columns
|
|
1948
1960
|
Object.defineProperty(dreamPrototype, column, {
|
|
1949
1961
|
get() {
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1962
|
+
const val = this.getAttribute(column);
|
|
1963
|
+
if (val === null)
|
|
1964
|
+
return null;
|
|
1965
|
+
if (val === undefined)
|
|
1966
|
+
return undefined;
|
|
1967
|
+
return JSON.parse(val);
|
|
1953
1968
|
},
|
|
1954
1969
|
set(val) {
|
|
1955
1970
|
/**
|
|
@@ -1967,7 +1982,13 @@ class Dream {
|
|
|
1967
1982
|
*/
|
|
1968
1983
|
if (this.columnSetterGuardActivated)
|
|
1969
1984
|
return;
|
|
1970
|
-
this.
|
|
1985
|
+
this.setAttribute(column, val === null
|
|
1986
|
+
? null
|
|
1987
|
+
: val === undefined
|
|
1988
|
+
? undefined
|
|
1989
|
+
: (0, typechecks_js_1.isString)(val)
|
|
1990
|
+
? val
|
|
1991
|
+
: JSON.stringify(val));
|
|
1971
1992
|
},
|
|
1972
1993
|
configurable: true,
|
|
1973
1994
|
});
|
|
@@ -1976,7 +1997,7 @@ class Dream {
|
|
|
1976
1997
|
// handle all other columns
|
|
1977
1998
|
Object.defineProperty(dreamPrototype, column, {
|
|
1978
1999
|
get() {
|
|
1979
|
-
return this.
|
|
2000
|
+
return this.getAttribute(column);
|
|
1980
2001
|
},
|
|
1981
2002
|
set(val) {
|
|
1982
2003
|
/**
|
|
@@ -1994,7 +2015,7 @@ class Dream {
|
|
|
1994
2015
|
*/
|
|
1995
2016
|
if (this.columnSetterGuardActivated)
|
|
1996
2017
|
return;
|
|
1997
|
-
this.
|
|
2018
|
+
this.setAttribute(column, val);
|
|
1998
2019
|
},
|
|
1999
2020
|
configurable: true,
|
|
2000
2021
|
});
|
|
@@ -2093,8 +2114,8 @@ class Dream {
|
|
|
2093
2114
|
* ```
|
|
2094
2115
|
*/
|
|
2095
2116
|
assignAttribute(attr, val) {
|
|
2096
|
-
|
|
2097
|
-
|
|
2117
|
+
;
|
|
2118
|
+
this[attr] = val;
|
|
2098
2119
|
}
|
|
2099
2120
|
/**
|
|
2100
2121
|
* Changes the attribute value for a single attribute internally,
|
|
@@ -2106,19 +2127,9 @@ class Dream {
|
|
|
2106
2127
|
* user.setAttribute('email', 'sally@gmail.com')
|
|
2107
2128
|
* ```
|
|
2108
2129
|
*/
|
|
2109
|
-
setAttribute(
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
if (columns.has(attr)) {
|
|
2113
|
-
self.currentAttributes[attr] = (0, isJsonColumn_js_1.default)(this.constructor, attr)
|
|
2114
|
-
? (0, typechecks_js_1.isString)(val)
|
|
2115
|
-
? val
|
|
2116
|
-
: JSON.stringify(val)
|
|
2117
|
-
: val;
|
|
2118
|
-
}
|
|
2119
|
-
else {
|
|
2120
|
-
self.currentAttributes[attr] = val;
|
|
2121
|
-
}
|
|
2130
|
+
setAttribute(column, val) {
|
|
2131
|
+
;
|
|
2132
|
+
this.currentAttributes[column] = val;
|
|
2122
2133
|
}
|
|
2123
2134
|
/**
|
|
2124
2135
|
* Returns the value for a columnName provided,
|
|
@@ -2129,15 +2140,8 @@ class Dream {
|
|
|
2129
2140
|
* user.getAttribute('email') // 'how@yadoin'
|
|
2130
2141
|
* ```
|
|
2131
2142
|
*/
|
|
2132
|
-
getAttribute(
|
|
2133
|
-
|
|
2134
|
-
const self = this;
|
|
2135
|
-
if (columns.has(columnName)) {
|
|
2136
|
-
return self.currentAttributes[columnName];
|
|
2137
|
-
}
|
|
2138
|
-
else {
|
|
2139
|
-
return self[columnName];
|
|
2140
|
-
}
|
|
2143
|
+
getAttribute(column) {
|
|
2144
|
+
return this.currentAttributes[column];
|
|
2141
2145
|
}
|
|
2142
2146
|
/**
|
|
2143
2147
|
* Returns an object containing all the columns
|
|
@@ -2242,7 +2246,7 @@ class Dream {
|
|
|
2242
2246
|
const obj = {};
|
|
2243
2247
|
this.constructor.columns().forEach(column => {
|
|
2244
2248
|
const was = this.previousValueForAttribute(column);
|
|
2245
|
-
const now = this
|
|
2249
|
+
const now = this.getAttribute(column);
|
|
2246
2250
|
if ((0, notEqual_js_1.default)(was, now))
|
|
2247
2251
|
obj[column] = { was, now };
|
|
2248
2252
|
});
|
|
@@ -2278,7 +2282,7 @@ class Dream {
|
|
|
2278
2282
|
* @returns Returns the previous value for an attribute
|
|
2279
2283
|
*/
|
|
2280
2284
|
previousValueForAttribute(columnName) {
|
|
2281
|
-
if ((0, notEqual_js_1.default)(this.frozenAttributes[columnName], this
|
|
2285
|
+
if ((0, notEqual_js_1.default)(this.frozenAttributes[columnName], this.getAttribute(columnName)))
|
|
2282
2286
|
return this.frozenAttributes[columnName];
|
|
2283
2287
|
return this.attributesFromBeforeLastSave[columnName];
|
|
2284
2288
|
}
|
|
@@ -2292,8 +2296,8 @@ class Dream {
|
|
|
2292
2296
|
*/
|
|
2293
2297
|
savedChangeToAttribute(columnName) {
|
|
2294
2298
|
const changes = this.changes();
|
|
2295
|
-
const now = changes?.[columnName]?.now;
|
|
2296
2299
|
const was = changes?.[columnName]?.was;
|
|
2300
|
+
const now = changes?.[columnName]?.now;
|
|
2297
2301
|
return this.isPersisted && (0, notEqual_js_1.default)(now, was);
|
|
2298
2302
|
}
|
|
2299
2303
|
/**
|
|
@@ -2346,7 +2350,7 @@ class Dream {
|
|
|
2346
2350
|
this.columns().forEach(column => {
|
|
2347
2351
|
// TODO: clean up types
|
|
2348
2352
|
if (this.attributeIsDirty(column))
|
|
2349
|
-
obj[column] = this.
|
|
2353
|
+
obj[column] = this.getAttribute(column);
|
|
2350
2354
|
});
|
|
2351
2355
|
return obj;
|
|
2352
2356
|
}
|
|
@@ -2357,7 +2361,7 @@ class Dream {
|
|
|
2357
2361
|
*/
|
|
2358
2362
|
attributeIsDirty(attribute) {
|
|
2359
2363
|
const frozenValue = this.frozenAttributes[attribute];
|
|
2360
|
-
const currentValue = this.
|
|
2364
|
+
const currentValue = this.getAttribute(attribute);
|
|
2361
2365
|
if (this.isNewRecord)
|
|
2362
2366
|
return true;
|
|
2363
2367
|
if (frozenValue instanceof DateTime_js_1.DateTime) {
|
package/dist/esm/src/Dream.js
CHANGED
|
@@ -1883,12 +1883,25 @@ export default class Dream {
|
|
|
1883
1883
|
const returnValues = {};
|
|
1884
1884
|
const setAttributeOnDreamInstance = (attr, value) => {
|
|
1885
1885
|
if (!dreamInstance)
|
|
1886
|
-
return;
|
|
1887
|
-
if (
|
|
1886
|
+
return value;
|
|
1887
|
+
if (!dreamInstance.columns().has(attr)) {
|
|
1888
|
+
// not a column. set via the setter and return the getter value
|
|
1889
|
+
;
|
|
1890
|
+
dreamInstance[attr] = value;
|
|
1891
|
+
return dreamInstance[attr];
|
|
1892
|
+
//
|
|
1893
|
+
}
|
|
1894
|
+
else if (bypassUserDefinedSetters && !isJsonColumn(this, attr)) {
|
|
1895
|
+
// bypass user defined setters, and this field is not json, so set
|
|
1896
|
+
// the attribute directly and return the attribute
|
|
1888
1897
|
dreamInstance.setAttribute(attr, value);
|
|
1898
|
+
return dreamInstance.getAttribute(attr);
|
|
1889
1899
|
}
|
|
1890
1900
|
else {
|
|
1901
|
+
// don't bypass user defined setters, or this field is json, so set
|
|
1902
|
+
// the attribute directly and return the attribute
|
|
1891
1903
|
dreamInstance.assignAttribute(attr, value);
|
|
1904
|
+
return dreamInstance.getAttribute(attr);
|
|
1892
1905
|
}
|
|
1893
1906
|
};
|
|
1894
1907
|
Object.keys(attributes).forEach(attr => {
|
|
@@ -1919,8 +1932,7 @@ export default class Dream {
|
|
|
1919
1932
|
}
|
|
1920
1933
|
}
|
|
1921
1934
|
else {
|
|
1922
|
-
returnValues[attr] = attributes[attr];
|
|
1923
|
-
setAttributeOnDreamInstance(attr, returnValues[attr]);
|
|
1935
|
+
returnValues[attr] = setAttributeOnDreamInstance(attr, attributes[attr]);
|
|
1924
1936
|
}
|
|
1925
1937
|
});
|
|
1926
1938
|
return returnValues;
|
|
@@ -1938,16 +1950,19 @@ export default class Dream {
|
|
|
1938
1950
|
columns.forEach(column => {
|
|
1939
1951
|
// this ensures that the currentAttributes object will contain keys
|
|
1940
1952
|
// for each of the properties
|
|
1941
|
-
if (this.
|
|
1942
|
-
this.
|
|
1953
|
+
if (this.getAttribute(column) === undefined)
|
|
1954
|
+
this.setAttribute(column, undefined);
|
|
1943
1955
|
if (!Object.getOwnPropertyDescriptor(dreamPrototype, column)?.set) {
|
|
1944
1956
|
if (isJsonColumn(this.constructor, column)) {
|
|
1945
1957
|
// handle JSON columns
|
|
1946
1958
|
Object.defineProperty(dreamPrototype, column, {
|
|
1947
1959
|
get() {
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1960
|
+
const val = this.getAttribute(column);
|
|
1961
|
+
if (val === null)
|
|
1962
|
+
return null;
|
|
1963
|
+
if (val === undefined)
|
|
1964
|
+
return undefined;
|
|
1965
|
+
return JSON.parse(val);
|
|
1951
1966
|
},
|
|
1952
1967
|
set(val) {
|
|
1953
1968
|
/**
|
|
@@ -1965,7 +1980,13 @@ export default class Dream {
|
|
|
1965
1980
|
*/
|
|
1966
1981
|
if (this.columnSetterGuardActivated)
|
|
1967
1982
|
return;
|
|
1968
|
-
this.
|
|
1983
|
+
this.setAttribute(column, val === null
|
|
1984
|
+
? null
|
|
1985
|
+
: val === undefined
|
|
1986
|
+
? undefined
|
|
1987
|
+
: isString(val)
|
|
1988
|
+
? val
|
|
1989
|
+
: JSON.stringify(val));
|
|
1969
1990
|
},
|
|
1970
1991
|
configurable: true,
|
|
1971
1992
|
});
|
|
@@ -1974,7 +1995,7 @@ export default class Dream {
|
|
|
1974
1995
|
// handle all other columns
|
|
1975
1996
|
Object.defineProperty(dreamPrototype, column, {
|
|
1976
1997
|
get() {
|
|
1977
|
-
return this.
|
|
1998
|
+
return this.getAttribute(column);
|
|
1978
1999
|
},
|
|
1979
2000
|
set(val) {
|
|
1980
2001
|
/**
|
|
@@ -1992,7 +2013,7 @@ export default class Dream {
|
|
|
1992
2013
|
*/
|
|
1993
2014
|
if (this.columnSetterGuardActivated)
|
|
1994
2015
|
return;
|
|
1995
|
-
this.
|
|
2016
|
+
this.setAttribute(column, val);
|
|
1996
2017
|
},
|
|
1997
2018
|
configurable: true,
|
|
1998
2019
|
});
|
|
@@ -2091,8 +2112,8 @@ export default class Dream {
|
|
|
2091
2112
|
* ```
|
|
2092
2113
|
*/
|
|
2093
2114
|
assignAttribute(attr, val) {
|
|
2094
|
-
|
|
2095
|
-
|
|
2115
|
+
;
|
|
2116
|
+
this[attr] = val;
|
|
2096
2117
|
}
|
|
2097
2118
|
/**
|
|
2098
2119
|
* Changes the attribute value for a single attribute internally,
|
|
@@ -2104,19 +2125,9 @@ export default class Dream {
|
|
|
2104
2125
|
* user.setAttribute('email', 'sally@gmail.com')
|
|
2105
2126
|
* ```
|
|
2106
2127
|
*/
|
|
2107
|
-
setAttribute(
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
if (columns.has(attr)) {
|
|
2111
|
-
self.currentAttributes[attr] = isJsonColumn(this.constructor, attr)
|
|
2112
|
-
? isString(val)
|
|
2113
|
-
? val
|
|
2114
|
-
: JSON.stringify(val)
|
|
2115
|
-
: val;
|
|
2116
|
-
}
|
|
2117
|
-
else {
|
|
2118
|
-
self.currentAttributes[attr] = val;
|
|
2119
|
-
}
|
|
2128
|
+
setAttribute(column, val) {
|
|
2129
|
+
;
|
|
2130
|
+
this.currentAttributes[column] = val;
|
|
2120
2131
|
}
|
|
2121
2132
|
/**
|
|
2122
2133
|
* Returns the value for a columnName provided,
|
|
@@ -2127,15 +2138,8 @@ export default class Dream {
|
|
|
2127
2138
|
* user.getAttribute('email') // 'how@yadoin'
|
|
2128
2139
|
* ```
|
|
2129
2140
|
*/
|
|
2130
|
-
getAttribute(
|
|
2131
|
-
|
|
2132
|
-
const self = this;
|
|
2133
|
-
if (columns.has(columnName)) {
|
|
2134
|
-
return self.currentAttributes[columnName];
|
|
2135
|
-
}
|
|
2136
|
-
else {
|
|
2137
|
-
return self[columnName];
|
|
2138
|
-
}
|
|
2141
|
+
getAttribute(column) {
|
|
2142
|
+
return this.currentAttributes[column];
|
|
2139
2143
|
}
|
|
2140
2144
|
/**
|
|
2141
2145
|
* Returns an object containing all the columns
|
|
@@ -2240,7 +2244,7 @@ export default class Dream {
|
|
|
2240
2244
|
const obj = {};
|
|
2241
2245
|
this.constructor.columns().forEach(column => {
|
|
2242
2246
|
const was = this.previousValueForAttribute(column);
|
|
2243
|
-
const now = this
|
|
2247
|
+
const now = this.getAttribute(column);
|
|
2244
2248
|
if (notEqual(was, now))
|
|
2245
2249
|
obj[column] = { was, now };
|
|
2246
2250
|
});
|
|
@@ -2276,7 +2280,7 @@ export default class Dream {
|
|
|
2276
2280
|
* @returns Returns the previous value for an attribute
|
|
2277
2281
|
*/
|
|
2278
2282
|
previousValueForAttribute(columnName) {
|
|
2279
|
-
if (notEqual(this.frozenAttributes[columnName], this
|
|
2283
|
+
if (notEqual(this.frozenAttributes[columnName], this.getAttribute(columnName)))
|
|
2280
2284
|
return this.frozenAttributes[columnName];
|
|
2281
2285
|
return this.attributesFromBeforeLastSave[columnName];
|
|
2282
2286
|
}
|
|
@@ -2290,8 +2294,8 @@ export default class Dream {
|
|
|
2290
2294
|
*/
|
|
2291
2295
|
savedChangeToAttribute(columnName) {
|
|
2292
2296
|
const changes = this.changes();
|
|
2293
|
-
const now = changes?.[columnName]?.now;
|
|
2294
2297
|
const was = changes?.[columnName]?.was;
|
|
2298
|
+
const now = changes?.[columnName]?.now;
|
|
2295
2299
|
return this.isPersisted && notEqual(now, was);
|
|
2296
2300
|
}
|
|
2297
2301
|
/**
|
|
@@ -2344,7 +2348,7 @@ export default class Dream {
|
|
|
2344
2348
|
this.columns().forEach(column => {
|
|
2345
2349
|
// TODO: clean up types
|
|
2346
2350
|
if (this.attributeIsDirty(column))
|
|
2347
|
-
obj[column] = this.
|
|
2351
|
+
obj[column] = this.getAttribute(column);
|
|
2348
2352
|
});
|
|
2349
2353
|
return obj;
|
|
2350
2354
|
}
|
|
@@ -2355,7 +2359,7 @@ export default class Dream {
|
|
|
2355
2359
|
*/
|
|
2356
2360
|
attributeIsDirty(attribute) {
|
|
2357
2361
|
const frozenValue = this.frozenAttributes[attribute];
|
|
2358
|
-
const currentValue = this.
|
|
2362
|
+
const currentValue = this.getAttribute(attribute);
|
|
2359
2363
|
if (this.isNewRecord)
|
|
2360
2364
|
return true;
|
|
2361
2365
|
if (frozenValue instanceof DateTime) {
|
|
@@ -1627,7 +1627,7 @@ export default class Dream {
|
|
|
1627
1627
|
* user.setAttribute('email', 'sally@gmail.com')
|
|
1628
1628
|
* ```
|
|
1629
1629
|
*/
|
|
1630
|
-
setAttribute<I extends Dream, Key extends AttributeKeys<I>>(this: I,
|
|
1630
|
+
setAttribute<I extends Dream, Key extends AttributeKeys<I>>(this: I, column: Key & string, val: any): void;
|
|
1631
1631
|
/**
|
|
1632
1632
|
* Returns the value for a columnName provided,
|
|
1633
1633
|
* bypassing the getters.
|
|
@@ -1637,7 +1637,7 @@ export default class Dream {
|
|
|
1637
1637
|
* user.getAttribute('email') // 'how@yadoin'
|
|
1638
1638
|
* ```
|
|
1639
1639
|
*/
|
|
1640
|
-
getAttribute<I extends Dream, Key extends AttributeKeys<I>>(this: I,
|
|
1640
|
+
getAttribute<I extends Dream, Key extends AttributeKeys<I>>(this: I, column: Key & string): DreamAttributes<I>[Key];
|
|
1641
1641
|
/**
|
|
1642
1642
|
* Returns an object containing all the columns
|
|
1643
1643
|
* on this dream class, as well as their values,
|
|
@@ -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/
|
|
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/3dd6e09372f033328519df23f18b03062bc4f5d0/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"> = 'log'</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/
|
|
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"> = 'log'</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/3dd6e09372f033328519df23f18b03062bc4f5d0/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/3dd6e09372f033328519df23f18b03062bc4f5d0/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>
|