Module: features/feature
Enumerations
Type aliases
CoercableComponent
Ƭ CoercableComponent: string
| DefineComponent
| JSXFunction
Any value that can be coerced into (or is) a vue component
Defined in
profectus/src/features/feature.ts:24
GenericComponent
Ƭ GenericComponent: DefineComponent
<any
, any
, any
>
A type that refers to any vue component
Defined in
profectus/src/features/feature.ts:34
JSXFunction
Ƭ JSXFunction: () => JSX.Element
& { [DoNotCache]
: true
}
A type referring to a function that returns JSX and is marked that it shouldn't be wrapped in a ComputedRef
see
jsx
Defined in
profectus/src/features/feature.ts:20
OptionsFunc
Ƭ OptionsFunc<T
, S
, R
>: () => T
& ThisType
<S
> & Partial
<R
>
Type parameters
Name | Type |
---|---|
T | T |
S | T |
R | Record <string , unknown > |
Type declaration
▸ (): T
& ThisType
<S
> & Partial
<R
>
Utility function for a function that returns an object of a given type, with "this" bound to what the type will eventually be processed into. Intended for making lazily evaluated objects.
Returns
T
& ThisType
<S
> & Partial
<R
>
Defined in
profectus/src/features/feature.ts:44
Replace
Ƭ Replace<T
, S
>: S
& Omit
<T
, keyof S
>
Utility type that is S, with any properties from T that aren't already present in S
Type parameters
Name |
---|
T |
S |
Defined in
profectus/src/features/feature.ts:37
StyleValue
Ƭ StyleValue: string
| CSSProperties
| (string
| CSSProperties
)[]
Any value that can be passed into an HTML element's style attribute. Note that Profectus uses its own StyleValue and CSSProperties that are extended, in order to have additional properties added to them, such as variable CSS variables.
Defined in
profectus/src/features/feature.ts:30
Variables
Component
• Const
Component: typeof Component
A symbol to use as a key for a vue component a feature can be rendered with
see
VueFeature
Defined in
profectus/src/features/feature.ts:9
GatherProps
• Const
GatherProps: typeof GatherProps
A symbol to use as a key for a prop gathering function that a feature can use to send to its component
see
VueFeature
Defined in
profectus/src/features/feature.ts:14
Functions
excludeFeatures
▸ excludeFeatures(obj
, ...types
): unknown
[]
Traverses an object and returns all features that are not any of the given types. Features are any object with a "type" property that has a symbol value.
Parameters
Name | Type | Description |
---|---|---|
obj | Record <string , unknown > | The object to traverse |
...types | symbol [] | The feature types that will be skipped over |
Returns
unknown
[]
Defined in
profectus/src/features/feature.ts:122
findFeatures
▸ findFeatures(obj
, ...types
): unknown
[]
Traverses an object and returns all features of the given type(s)
Parameters
Name | Type | Description |
---|---|---|
obj | Record <string , unknown > | The object to traverse |
...types | symbol [] | The feature types that will be searched for |
Returns
unknown
[]
Defined in
profectus/src/features/feature.ts:97
getUniqueID
▸ getUniqueID(prefix?
): string
Gets a unique ID to give to each feature, used for any sort of system that needs to identify elements in the DOM rather than references to the feature itself. (For example, branches) IDs are guaranteed unique, but NOT persistent - they likely will change between updates.
Parameters
Name | Type | Default value | Description |
---|---|---|---|
prefix | string | "feature-" | A string to prepend to the id to make it more readable in the inspector tools |
Returns
string
Defined in
profectus/src/features/feature.ts:53
jsx
▸ jsx(func
): JSXFunction
Takes a function and marks it as JSX so it won't get auto-wrapped into a ComputedRef. The function may also return empty string as empty JSX tags cause issues.
Parameters
Name | Type |
---|---|
func | () => "" | Element |
Returns
Defined in
profectus/src/features/feature.ts:71
setDefault
▸ setDefault<T
, K
>(object
, key
, value
): asserts object
is Exclude
<T
, K
> & Required
<Pick
<T
, K
>>
Utility function to set a property on an object if and only if it doesn't already exist
Type parameters
Name | Type |
---|---|
T | T |
K | extends string | number | symbol |
Parameters
Name | Type |
---|---|
object | T |
key | K |
value | T [K ] |
Returns
asserts object
is Exclude
<T
, K
> & Required
<Pick
<T
, K
>>
Defined in
profectus/src/features/feature.ts:82
showIf
▸ showIf(condition
, otherwise?
): Visibility
Utility function to convert a boolean value into a Visbility value
Parameters
Name | Type | Default value |
---|---|---|
condition | boolean | undefined |
otherwise | Visibility | Visibility.None |