stampit API
Search…
Introduction
Essentials
What is a Stamp
Installation
Specification
FAQ
API
Quick start
Basics
Methods
Properties
Deep properties
Initializers
Static properties
Static deep properties
Configuration
Deep configuration
Composers
Property descriptors
Static property descriptors
Name
Ecosystem
Ecosystem Overview
@stamp/collision
@stamp/required
@stamp/privatize
@stamp/named (DEPRECATED)
@stamp/instanceof
Powered By
GitBook
Properties
You can add properties to the objects created from your stamps. These are default properties of your objects.
const
HasLog
=
stampit
({
props
:
{
log
:
require
(
'bunyan'
).
createLogger
({
name
:
'my logger'
})
}
})
const
loggerObject
=
HasLog
()
loggerObject
.
log
.
debug
(
'I can log'
)
If you compose the stamp above with any other stamp, then object instances created from it will also have the
.log
property.
const
RequestHandler
=
stampit
(
HasLog
)
// composing with HasLog
.
methods
({
handle
(
req
,
res
,
next
)
{
this
.
log
.
info
({
originalUrl
:
req
.
originalUrl
},
'handling request'
)
// using the .log
res
.
sendStatus
(
200
)
}
})
const
handler
=
RequestHandler
()
handler
.
log
.
debug
(
'Created a handler'
)
Descriptor merging algorithm
The properties are copied
by assignment
. In other words -
by reference
using
Object.assign
.
HasLog
().
log
===
RequestHandler
().
log
In case of conflicts the last composed property wins.
Other ways to add properties
Exactly the same stamp can be created in few ways. Here they all are.
const
myLogger
=
require
(
'bunyan'
).
createLogger
({
name
:
'my logger'
})
const
HasLog
=
stampit
({
props
:
{
log
:
myLogger
}
})
const
HasLog
=
stampit
({
properties
:
{
log
:
myLogger
}
})
const
HasLog
=
stampit
.
props
({
log
:
myLogger
})
const
HasLog
=
stampit
.
properties
({
log
:
myLogger
})
const
HasLog
=
stampit
().
props
({
log
:
myLogger
})
const
HasLog
=
stampit
().
properties
({
log
:
myLogger
})
API - Previous
Methods
Next - API
Deep properties
Last modified
4yr ago
Copy link
Outline
Descriptor merging algorithm
Other ways to add properties