Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/#25 types definitions #45

Open
wants to merge 30 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
8719e4f
#25 add query builder
easingthemes Mar 14, 2023
5dc358f
#25 add paginated query suport
easingthemes Mar 14, 2023
a8f77ed
#25 lint fixes
easingthemes Mar 14, 2023
00d4b23
#25 add default empty args
easingthemes Mar 14, 2023
da823af
#25 add jsdocs
easingthemes Mar 14, 2023
cfb682b
#25 check required params
easingthemes Mar 14, 2023
90dc9c4
#25 throw if required param missing
easingthemes Mar 14, 2023
9c22f02
#25 split large method
easingthemes Mar 14, 2023
3ea8e06
#25 fix object to args string
easingthemes Mar 14, 2023
20332d1
#25 move args update in the loop
easingthemes Mar 14, 2023
335ed17
#25 update offset
easingthemes Mar 14, 2023
aa5f2dc
#25 update pagingArgs
easingthemes Mar 14, 2023
00551b4
#25 check page size
easingthemes Mar 14, 2023
767b18a
#25 fix string as a param val
easingthemes Mar 14, 2023
ee52188
#25 fix string as a param val
easingthemes Mar 14, 2023
85f27db
#25 check page size
easingthemes Mar 14, 2023
06efd4e
#25 ok response with errors data
easingthemes Mar 14, 2023
8e5ce4a
#25 update docs
easingthemes Mar 15, 2023
71e3c49
#25 remove loop break
easingthemes Mar 15, 2023
f641ee1
#25 add possibility to loop all
easingthemes Mar 15, 2023
456c1f1
#25 update docs
easingthemes Mar 15, 2023
8352f49
#25 add unit tests
easingthemes Mar 15, 2023
da821e8
#25 add jsdocs and more examples
easingthemes Mar 15, 2023
f4a2d91
#25 rename and reorder methods
easingthemes Mar 15, 2023
83f28a2
#25 update docs
easingthemes Mar 15, 2023
e846b0a
#25 move static methods to utils
easingthemes Mar 15, 2023
79b0bea
#25 jsdocs update
easingthemes Mar 15, 2023
c414f3c
#25 add typeDefs to readme
easingthemes Mar 15, 2023
92ca6cc
#25 add task to generate TS types definitions
easingthemes Mar 15, 2023
2f03aa8
#25 add generated TS types definitions
easingthemes Mar 15, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"extends": ["@adobe/eslint-config-aio-lib-config"],
"rules": {
"jsdoc/no-undefined-types": 0,
"jsdoc/check-tag-names": [
"error",
{
Expand Down
71 changes: 71 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,77 @@ aemHeadlessClient.runPersistedQuery('wknd/persist-query-name-with-variables', {
})()
```

#### Pagination:
```javascript
(async () => {
const model = 'article'
const fields = `{
title
_path
authorFragment {
firstName
profilePicture {
...on ImageRef {
_authorUrl
}
}
}
}`

// Cursor based: Loop all pages
try {
const cursorQueryAll = await aemHeadlessClient.runPaginatedQuery(model, fields, { first: 4 })
for await (let value of cursorQueryAll) {
console.log('cursorQueryAll', value)
}
} catch (e) {
console.warn(e)
}
// Cursor based: Manually get next page
try {
const cursorQuery = await aemHeadlessClient.runPaginatedQuery(model, fields, { first: 4 })
let isDone = false
while (!isDone) {
const { done, value } = await cursorQuery.next();
isDone = done
console.log('cursorQuery', value)
}
} catch (e) {
console.warn(e)
}
// Offset based: Loop all pages
try {
const offsetQueryAll = await aemHeadlessClient.runPaginatedQuery(model, fields, { limit: 3 })
for await (let value of offsetQueryAll) {
console.log('offsetQueryAll', value)
}
} catch (e) {
console.warn(e)
}
// Offset based: Manually get next page
try {
const offsetQuery = await aemHeadlessClient.runPaginatedQuery(model, fields, { limit: 3 })

let isDone = false
while (!isDone) {
const { done, value } = await offsetQuery.next();
isDone = done
console.log('offsetQuery', value)
}
} catch (e) {
console.warn(e)
}
// By path
try {
const pathQuery = await aemHeadlessClient.runPaginatedQuery(model, fields, { _path: '/content/dam/wknd-shared/en/magazine/alaska-adventure/alaskan-adventures' })
const result = pathQuery.next()
console.log('pathQuery', result)
} catch (e) {
console.warn(e)
}
})()
```

## Authorization

If `auth` param is a string, it's treated as a Bearer token
Expand Down
Loading