►
Description
In this session we pair up on finishing up gl-form-fields.
00:00 - Intro
03:15 - Discussing purpose of gl-form-fields
05:50 - Discussing what to do with shared validators and mappers
13:50 - Commenting about appropriate usage
25:15 - Writing a validator factory and tests
46:11 - Discuss persisting extension configuration in VSCode Web IDE
A
Am
I
sharing
my
screen
I'm,
not
sharing
my
screen,
yet
let
me
start
sharing
my
screen.
Yes,
yes,
yes,
yes,
let
me
go
to
okay,
all
right.
Let
me
share
my
screen.
Boom
boom.
All
right,
we're
gonna,
finish,
GL
form
fields
in
15
minutes
go
all
right.
A
Where
is
jail
form
Fields
here
it
is
all
right.
Andrew
was
awesome
last
time
and
really
pushed
this
pretty
far.
Apparently
I
have
pending
comments
on
this
all
right.
We
gotta
just
wrap
this
up.
So
let
me
check
out
this
branch
and
let
me
look
at
the
diff
and
see
where
we're
at
so.
Let
me
get
all
set
up.
B
A
Let's
go
terminal
all
right.
Great
I
am
yes
great
great
I.
Don't
have
any
yeah.
We
it's
time
to
bow
and
row.
Okay,.
A
A
These
black
thoughts
are
so
ominous
these
black
holes
that
that
invade
your
your
Mr
diff,
something
about
code
quality.
The
keyword
export
is
reserved.
Oh
man,
well,
something's,
not
going
correctly.
There.
A
I
have
yes,
so
the
intention
is
that,
let
me
go
back
to
that
comment.
I
was
at
I,
was
here
in
like
validators,
I,
think
or
or
no
I
think
it
was
actually
here
in
the
view
component.
Oh
no,
it
wasn't
in
there.
Where
was
it?
Oh,
it
was
here.
A
B
You
maybe
for
those
of
us
that
are
Ali,
beat
not
clear
about
what
dsmr
does
and
could
you
maybe
summarize?
Yes,
are
these
components
or
are
these
this.
A
Is
a
good
question
yeah,
so
I'm
moving
I
am
moving
quickly
and
Lee.
Andrew
and
I
have
a
whole
lot
of
contacts
with
this
with
this
component.
A
But
what
this
component
effectively
does
is
allows
us
to
in
a
data-driven
style,
declare
what
the
fields
for
a
form
will
be,
including
here's,
the
label
for
the
fields,
the
kind
of
validation
for
that
field,
and
that's
one
of
the
big
things
that
it's
going
to
encapsulate
is
validating
and
consistently
presenting
these
forms,
which
we
don't
do
consistently
really
well.
A
So
it
also
it
supports
like
custom
inputs
and
things
like
that,
so
it's
pretty
pretty
handy,
but
this
interface
is
is
the
bread
and
butter
of
the
components,
geoform
fields,
and
we
provide
fields
to
it
and
we
bind
values
to
it
and
we
could
work
off
the
values
all
together
or
handle
its
submit
listener
when
all
the
validation
is
cleared
and
everything
for
how,
when
we're
ready
to
submit.
A
A
Declare
the
behavior
of
them,
and
so
required,
is
like
a
very
common
validators
was
like
well.
Do
we
really
have
to
recreate
this
for
every
single
thing,
or
can
we
just
provide
this
as
part
of
the
component
Library.
A
A
A
C
I
think
I
think
there's
a
couple
issues
I
think
there's
the
issue
of
discoverability.
C
But,
like
you
said,
we
have
some
some
other
examples
where
we
export
things
in
a
different
entry
point,
so
that
has
less
weight
in
my
mind,
but
I
think
the
secondary
issue
is
now.
We
have
to
come
up
with
a
bunch
of
common
functions
and
validators.
D
Yeah
I
think
there's
there's
two
things.
First,
there's
the
the
lint
rule
that
you're
going
to
create
to
basically
prevent
anyone
using
the
form
tag
or
the
input
tag
in
any
any
view
component
and
and
the
the
warning
that
it
gives
you
is
to
use
GL
form
filter
instead
and
then
it's
yeah
finding
a
way
to
to
encourage
oh
I've
done
this
and
I
think
other
people
are
going
to
want
to
do
this.
So,
let's,
let's
try
and
move
it
into
GitHub,
UI
and
I.
Don't
know
the
the
sort
of
I.
D
D
What
were
you
thinking
to?
Let
you
move,
you
know
to
not
block
you
essentially
but
education's,
a
big
one
right.
We
need
to
make
sure
people
know
about
this
and
find
a
way
to
not
just
tell
everyone
now,
but
somehow
you
know
ensure
that
there's
there's
more
of
a
regular
kind
of
oh,
don't
forget
about
this
or.
B
C
I
think
this
is
where
this
is
where
I
start
to
disagree,
though,
because
I
think
putting
putting
having
a
collection
of
validators
and
mappers
in
gitlab
UI,
because
I
think
that
the
responsibility
of
gitlab
UI
is
to
be
a
UI
component.
Library
and
data
validation
is
not
necessarily
the
name
of
the
game
here.
A
C
D
D
D
D
A
A
My
concern
would
be
if
we
didn't
provide
required.
We
would
then
have
like
two
to
three
different
ways
of
validating
required.
A
A
C
C
Like
comment
like
comment
per
app,
but
maybe
not
in
common
within
an
app
you
know
or
like
greater
than
or
lesser
than
do
we
just
do
we
just
open
up
the
the
like
HTML5
validators
page,
and
we
make
one
for
each
of
those
right
and
Export
all
of
them
right.
A
A
Yeah
yeah
well,
I,
mean
I,
think
I
think
like
if
you
look
at
like
testing
Frameworks
like
there's
a
baked
in
set
of
expectations
that
have
to
come
with
it,
for
it
to
be
useful,
and
so
right
to
me
is
like
yeah
there's,
some
fuzzy
line
that
you
do
kind
of
want
to
draw,
but
I'm
not
to
me,
is
like
oh,
if
there's
less
code
as
long
as
we
just
get
this
in
and
start
playing
with,
it
I
think
it's
going
to
be
helpful,
and
even
if
we
then
are
hard
coding
like
and
a
hard
code
required.
A
D
Good
time
you've
got
the
costume
vote
here.
I
think.
C
A
A
A
Did
I
know
I
know
so,
I
think
this
should
help
add
a
level
of
sanity
to
it,
but
yeah
we
think
required.
I.
Think
it's
good
as
a
base.
Let's
do
it.
A
I
feel
like
mappers
is
helpful
like
so
this
is
inspired
too
from
like
view
the
view
input
event
modifiers,
you
can
map
the
event,
the
event
values
to
various
modifiers
that
are
built
in.
So
maybe
we
need
a
similar
comment
here.
A
A
C
A
All
right
all
right,
I
think
that
was
helpful.
So
then
do
we
still
feel
good
about
like
exporting
it
to
here.
Do
you
think
we
should
export
it
to
like
a
utils
thing,
but
because
we
already
have
a
utils,
maybe
it
should
just
all
be
in
utils.
A
A
A
B
D
D
I
think
we
realized
that,
if
we're
building
the
form
then
there's
no
way
of
of
us
validate,
you
know
the
the
user
using
gel
form
fields
to
generate
the
form
needs
a
way
to
validate
the
form
if,
if
we're
automatically
building
the
form
for
them,
so
we
couldn't
really
do
one
without
the
other.
Is
that
fair
to
say.
C
D
Or
we
did
try
it
right
and
expect,
but
just
exposing
the
model,
but
then
you
had
to
was:
was
it
that
every
time
the
model
changed
any
field
you
had
to
revalidate
every
field,
whereas
asking
the
validators
in
allowed
you
to
to
specifically
list
on
on
each
field.
I
think
that
was
why
you
went
down
that
road
I.
B
I
was
asking
because,
in
my
experience
building
the
form
has
not
been.
B
As
it
has
been
to
validated
and
to
so
I
think
well,
I
used
to
use
a
a
library
called
for
react,
use,
form
and,
and
it's
a
is
a
validator
only
and
I
kind
of
like
it.
The
way
that
is
the
couple
one
from
the
other,
because
sometimes
you
need
to
build
a
very
fine-tuned
kind
of
UI
that
these
phone
Builder
may
not
be
able
to.
A
Yeah,
that's
one
of
the
risks,
I
think
with
the
scope
of
what's
Happening
Here
and
may
not
fit
certain
use.
Cases
which
isn't
great
and
yeah
we
do
want
to
be
able
to
validation
is
a
thing.
We
that's
I,
think
the
key
use
case
that
we
don't
see
happening
consistently
and
takes
like
a
50
line,
form
view
component,
and
it's
now
like
a
200
line.
View
component
and
and
the
main
application
validation,
though,
is
a.
What
were
you
gonna,
say.
B
One
common
things,
for
example,
are
conditional
Fields
things
that
appear
or
disappear
based
on
the
answer
of
a
previous
field.
Are
you
planning
to
do
that.
A
So
we
can
so
like
the
fields
is
all
Fields
is
all
reactive,
so
you
could
based
on
and
that's
a
really
that's
a
really
interesting
question,
but
out
of
the
box,
you
totally
could
do
that
because
my
Fields
could
be
a
computed
based
on
whatever
my
values
are
and
if
something's
checked
is
like
oh
yeah,
here
we
go
is
a
field.
That's
goes
into
this
object,
and
so
it's
interesting
and
it's
doable
I
haven't
seen
how
that
plays
out
so
to
some
extent
we're
this
solves.
A
I'm
not
sure
where
we're
at
there
but
I
think
it's
something
we're
wanting
to
try
out
because
it's
better
than
where
a
lot
of
our
forums
are
currently
at
where
either
we've
implemented,
validation
incorrectly
or
if
you
completely
ignored
it,
because
it's
so
beefy
and
this
is
trying
to
simplify
a
lot
of
those
use
cases.
But
it's
possible.
It
doesn't
handle
the
other
cases,
but
the
fields
is
dynamic.
So
we
can
react
to
State
and
add
and
remove
and
change
fields.
D
So,
just
just
casting
back
as
well,
whilst
I
appreciate
and
agree
that
creating
the
films
isn't
really
a
problem,
it
just
felt
very,
very
wet
is
wet,
acceptable
or
not
dry.
You
know
everywhere.
I
looked
in
a
code
base,
we
had.
Oh,
you
basically
copy
and
paste
right.
You
copy
and
paste
this,
this
five
lines
of
code,
that's
kind
of
like
give
form-filled
Set
input
and
then
for
everyone.
You
change
the
the
description.
You
change,
the
the
V
model
binding
you
change.
It
was
just
a
really
repetitive
pattern.
D
A
Well,
yeah
and
like
like
there's
many
forms
we
create
where
we
don't
do.
This
whole
form
group
thing
where
we
don't
have
labels
that
map
to
each
other
like,
and
this
is
wanting
to
make
all
of
the
form
creation
standard,
because
there's
even
places
where
we
deviate
from
there,
because,
but
you
see
here
that
even
creating
these
form
inputs
require
it's
all
coupled
to
validation.
That's
the
interesting
thing
is
validation
is
a
cross-cutting
concern
with
the
inputs
and
submissions
of
forms,
and
so
even
from
submitting
this
thing
is
yeah.
B
A
Might
not
work
for
all
cases
and
I
think
that's
okay,
I
think
we're
just
gonna
see
how
useful
this
is
in
the
wild.
First.
A
Okay,
so
like
yeah,
what
we're
gonna
say.
A
C
B
A
C
A
Yeah,
do
we
want
to
call
it.
C
A
C
A
A
A
B
A
A
I
think
we
just
need
to
add
test
for
this,
which
is
straightforward
and
then
we're
good
to
go.
A
Obviously
this
is
a
parameterized
test.
I
don't
have
to
think
about
it.
I
know
this
is
parameterized.
This.
A
A
Test
fail
message:
the
tests
failed
all
right.
Okay,
all
right!
This
is
it.
This
is
our
last
little
bit
of
the
timer.
A
C
B
C
A
Yeah:
okay,
input,
output.
C
Do
we
want
some
different
different
types
in
there
to
mix
it
up.
B
A
It
oh
you've
got
to
get
zero.
That's
true!
That's
interesting
that
it
does.
Should
it
zero
count.
Zero
should
probably
be
allowed.
B
C
A
C
C
C
B
A
A
A
D
A
But
but
it
also
doesn't
pass
with
the
numbers
as
well:
yeah
yeah,
I,
think
I.
Think
Ruby
has
a
nice
little
Len
function
that
that's
kind
of
inspired
from
like
sees
Lin,
which
I
think
is
possibly.
C
C
D
A
D
A
Or
this
might
be
getting
back
to
Andrew's
concern
of
like.
Are
we
solving
the
right
problem
here?
A
C
D
A
C
A
B
A
A
C
A
C
Yeah
bring
back
smart
resource.
A
I
know,
but
not
even
that,
but
also
just
like
even
from
the
front
end
of
like
we're
so
used
to
you
know
view
is
a
great
framework,
and
so
we
we
write
view
code
all
the
time
and,
like
view
tells
you,
when
something's
not
correct,
but
I,
don't
think
we
realize
how
much
we
repeat
ourselves,
which
is
like.
Yes,
you
don't
want
to
over
abstract,
but
we
repeat
ourselves
at
scale
at
this
point
like
we
have
every
spot.
You
know
what
I'm
saying
and.
A
B
A
A
A
A
C
You've
you
give
it
a
you,
give
it
a
generator
function
and
it
randomly
generates
input
to.
C
C
A
Yeah
yeah
I
see
what
you're
saying
what
is
this
going
to
be
object?
This
is
Nan
foreign.
A
This
is
an
interesting
point.
Is
there
any
other
cases
here
for
mapping
to
number.
B
A
So
that's
so
seven
there's
two
numbered
sport
spaces
it
doesn't.
This
is
gonna,
be
neon.
Okay,
I
I,
like
the
number
instructor.
C
A
I,
don't
think
it
does
yeah
that
is
interesting.
All
right,
I
think
I
think
we're
good
here,
so
I'm
gonna
I'm
going
to
push
up.
Oh,
let
me
make
another
fix
up,
commit.
A
Oh
my
gosh,
okay,
all
right
and
then
let
me
rebates.
Let
me
squash
all
of
our
fix
UPS
down.
C
I,
don't
think
so!
Well,
you
could
just
hit
squash
on
the
Mr.
C
A
So
I'll
show
you
what
the
task
in
front
of
me
is.
A
Not
a
compliment,
maybe
it's
like
a
you're
gonna,
create
a
board
just
for
you,
because
you
gotta
organize
your
stuff.
I
created
this
board
I'm
just
joking.
Now
we
want
to
enable
the
extension
Marketplace
in
the
vs
code,
web
ID,
vs
code
extensions
are
and
vs
code
configuration
all
of
that
is
stored
in
indexeddb.
A
However,
we
do
this
aggressive
signing
out
whenever
you
sign
out
of
gitlab,
we
do
we
clear
out
all
client
side,
data
and
I
was
very
confused
at
like
how
in
the
world
is
it
doing
this,
but
we
passed
this
header
to
clear
site
data
to
clear
star
everything,
including
session
storage
and
cookies,
and
everything.
The
reason
behind
this
is
this
was
our
very
large
Band-Aid
fix
to.
A
Local
storage
containing
potentially
some
some
sensitive
things,
so
it's
not
like
okay
I
can't
totally
touch
this
because
that's
going
to
introduce
other
issues
but
using
vs
code
extensions,
which
is
really
nice,
isn't
like
this.
Is
it's
a
bit
of
work
to
set
up
your
extensions
and
it's
equivalent
to
data
loss
if
I've
set
these
up
and
configured
them
and
then,
when
I
sign
out
they're
gone,
you
know
what
I'm
saying.
A
A
The
other
idea
is
just
building
our
own,
like
sinker,
for
a
specific
index,
DB
fields
that
we
need,
because
we
that's
also
that's
an
unsolved
problem
for
other
issues
across
the
application
as
well.
So
like
we
have
the
frequently
visited
projects
and
stuff
like
that
that
depend
on
a
level
of
local
storage,
like
our
like
the
banner
and
other
things.
All
this
a
lot
of.
A
A
But
I
don't
know
to
me
I'm
concerned
about
it
because
it's
a
storage,
this
this
brings
the
storage
burden
on
us.
You
know.
C
A
C
A
Right
that
should
be
fine,
and
hopefully
we
can
be
a
little
picky
picky
too,
about
what's
synced
and,
what's
not
so
like,
but
also,
hopefully
too,
is
like
I
I.
One
thing
I
need
to
do
to
investigate
thanks
for
asking
about
it,
because
any
talking
out
helps
I
need
to
investigate
how,
in
the
background
this
setting
Sinker
works.
A
C
A
Yeah,
the
other
like
really
out
there
idea
is.
B
A
A
C
A
D
A
C
This
isn't
gonna
be
we
could
we
could
do
like
a.
We
could
do
something
like
this
is
probably
like
too
technical,
but
we
could
do
something
fun
where
we
like.
You
can
make
a
user
project
that
has
a
bunch
of
settings
and
a
project
and
then
like
merge
them
yeah
somehow,
and
then
we
don't
have
to.
We
don't
have
to
worry
about,
but
then
you
have
to,
but
then
users
have
to
like.
A
So,
like
this
code
already
has
an
idea
of
like
your
user
workspace
settings
and
the
workspace
has
its
own
settings
and,
like
that's,
doable
and
we
do
already
have
you
know
some
special
handling
of.
A
C
B
B
A
Yeah,
so
that's
that
was
the
problem
and
I
was
I.
Think
I
was
just
wanting
to
talk
it
out
and
see
what
seemed
like
viable
options.
I
need
to
look
into
the
vs
code,
settings
sync
and
see
how
that,
if,
if
that
is
a
viable
option,.
A
Like
yeah,
let's
make
sure
we
clean
those
up,
so
that's
why
a
lot
of
me
was
leaning
originally
towards
doing
something
custom
because
it
was
like
I.
I
only
want
to
save
this
bit.
I,
don't
really
care
about
saving
all
the
data
that
vs
code
tracks,
but
I
think
that
I
gotta
look
up
what
the
settings
sync
does
and
I
think
it
I
think
it's
a
viable
option:
I
just
gotta,
investigate
it,
but
then,
if
it,
if
this
doesn't
work
out,
I
am
probably
going
to
look
into
okay.
A
What's
an
iterative
step
towards
that
works
for
our
immediate
web
ID
use
case,
but
that
also
could
be
used
because
already
so
throughout
gitlab,
no
local
storage,
Things
Are
permanent,
which
is
kind
of
lame
and
I,
see
this
I
I
run
into
this
first
minor
frustration,
a
lot
of
like
wait.
Why
is
this
not
ordered
by
updated
at
I?
Always
have
it
ordered
by
that
and
like
yeah
yeah
yeah
I.
C
Ran
into
this,
the
the
original
non-official
settings-
sync
extension
was
just
a
git
repo
and
I
wouldn't
be
surprised
if
it
still
is.
C
B
A
A
Okay,
yeah
I'll
have
to
look
at
it,
that's
interesting,
and
maybe
that's
just
what
we
do.
If
you
want
your
settings
to
be
persisted,
you
have
to
have
a
GitHub
account.
A
Yeah
I,
but
part
of
me
feels
bad.
Like
I
mean,
are
we
really
going
to
create
an
our
monolith,
a
whole
thing
that
adapts
to
the
settings?
Sync
API.
A
A
Of
like
yeah
anyways,
all
right
thanks
for
chatting
thanks
for
helping
push,
geoform
Fields
I'm
gonna
get
this
to
Peter
today,
so
that
yeah,
maybe
we
can
start
using
them.