Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
open-source
SemWeb
libview
Commits
42cda3ee9345
Commit
fb4b6951
authored
Apr 16, 2021
by
Fabien Amarger
Browse files
feat(ViewWrapper): Add the ViewWrapper class to libview
parent
3a3651a61eb9
Pipeline
#64096
failed with stages
in 47 seconds
Changes
2
Pipelines
1
Show whitespace changes
Inline
Side-by-side
src/ViewWrapper.ts
0 → 100644
View file @
42cda3ee
import
{
ViewDescription
,
View
}
from
'
.
'
;
export
class
ViewWrapper
{
DESCRIPTOR
:
ViewDescription
;
_VIEW_ENTRYPOINT
?:
View
;
constructor
(
descriptor
:
ViewDescription
)
{
this
.
DESCRIPTOR
=
descriptor
;
}
getViewEntrypoint
():
Promise
<
View
>
{
const
fetchViewData
=
async
()
=>
{
// eslint-disable-next-line no-eval
const
viewData
=
eval
(
await
fetch
(
this
.
viewUrl
).
then
((
data
)
=>
data
.
text
())
);
return
viewData
;
};
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
this
.
_VIEW_ENTRYPOINT
===
undefined
)
{
fetchViewData
()
.
then
((
viewData
)
=>
{
if
(
viewData
.
VIEW_ENTRYPOINT
===
undefined
)
{
reject
(
`View entrypoint is not defined in
${
this
.
DESCRIPTOR
.
name
}
`
);
}
this
.
_VIEW_ENTRYPOINT
=
viewData
.
VIEW_ENTRYPOINT
;
resolve
(
viewData
.
VIEW_ENTRYPOINT
);
})
.
catch
((
e
)
=>
{
console
.
error
(
'
Error fetching view data :
'
,
e
);
reject
(
e
);
});
}
else
{
resolve
(
this
.
_VIEW_ENTRYPOINT
);
}
});
}
isApplicable
(
uri
:
string
,
endpoint
:
string
):
Promise
<
boolean
>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
getViewEntrypoint
()
.
then
((
view
)
=>
{
resolve
(
view
.
isApplicable
(
uri
,
endpoint
));
})
.
catch
((
e
)
=>
{
console
.
error
(
'
Error fetching view data :
'
,
e
);
reject
(
e
);
});
});
}
get
name
():
string
{
return
this
.
DESCRIPTOR
.
name
;
}
get
id
():
string
{
return
this
.
DESCRIPTOR
.
name
;
}
get
viewUrl
():
string
{
return
this
.
DESCRIPTOR
.
url
;
}
}
src/index.ts
View file @
42cda3ee
...
...
@@ -17,3 +17,5 @@ export interface ViewDescription {
description
:
string
;
url
:
string
;
}
export
{
ViewWrapper
}
from
'
./ViewWrapper
'
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment