@chanomhub/sdk 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"articleRepository.d.ts","sourceRoot":"","sources":["../../repositories/articleRepository.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"articleRepository.d.ts","sourceRoot":"","sources":["../../repositories/articleRepository.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,EAA+B,MAAM,kBAAkB,CAAC;AAmHxI,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,MAAM,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAEjE,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAEhF,+BAA+B;IAC/B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1F,+BAA+B;IAC/B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1F,iCAAiC;IACjC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAEpE,iCAAiC;IACjC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,cAAc,GAAG,iBAAiB,CAkLlF"}
|
|
@@ -4,75 +4,54 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createArticleRepository = createArticleRepository;
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
id
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const ARTICLE_FULL_FIELDS = `
|
|
52
|
-
id
|
|
53
|
-
title
|
|
54
|
-
slug
|
|
55
|
-
description
|
|
56
|
-
body
|
|
57
|
-
ver
|
|
58
|
-
createdAt
|
|
59
|
-
updatedAt
|
|
60
|
-
status
|
|
61
|
-
engine {
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Field Presets - Developers can choose the level of detail they need
|
|
9
|
+
// ============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Field definitions for each preset level
|
|
12
|
+
*/
|
|
13
|
+
const FIELD_PRESETS = {
|
|
14
|
+
minimal: ['id', 'title', 'slug', 'mainImage'],
|
|
15
|
+
standard: [
|
|
16
|
+
'id', 'title', 'slug', 'description', 'ver',
|
|
17
|
+
'mainImage', 'coverImage',
|
|
18
|
+
'author', 'tags', 'platforms', 'categories', 'creators', 'engine',
|
|
19
|
+
'favoritesCount', 'favorited',
|
|
20
|
+
'createdAt', 'updatedAt', 'status', 'sequentialCode', 'images'
|
|
21
|
+
],
|
|
22
|
+
full: [
|
|
23
|
+
'id', 'title', 'slug', 'description', 'body', 'ver',
|
|
24
|
+
'mainImage', 'coverImage', 'backgroundImage',
|
|
25
|
+
'author', 'tags', 'platforms', 'categories', 'creators', 'engine',
|
|
26
|
+
'images', 'mods',
|
|
27
|
+
'favoritesCount', 'favorited',
|
|
28
|
+
'createdAt', 'updatedAt', 'status', 'sequentialCode'
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* GraphQL field mappings - converts field names to GraphQL query fragments
|
|
33
|
+
*/
|
|
34
|
+
const FIELD_MAPPINGS = {
|
|
35
|
+
id: 'id',
|
|
36
|
+
title: 'title',
|
|
37
|
+
slug: 'slug',
|
|
38
|
+
description: 'description',
|
|
39
|
+
body: 'body',
|
|
40
|
+
ver: 'ver',
|
|
41
|
+
mainImage: 'mainImage',
|
|
42
|
+
coverImage: 'coverImage',
|
|
43
|
+
backgroundImage: 'backgroundImage',
|
|
44
|
+
createdAt: 'createdAt',
|
|
45
|
+
updatedAt: 'updatedAt',
|
|
46
|
+
status: 'status',
|
|
47
|
+
sequentialCode: 'sequentialCode',
|
|
48
|
+
favoritesCount: 'favoritesCount',
|
|
49
|
+
favorited: 'favorited',
|
|
50
|
+
engine: `engine {
|
|
62
51
|
id
|
|
63
52
|
name
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
backgroundImage
|
|
67
|
-
coverImage
|
|
68
|
-
favorited
|
|
69
|
-
favoritesCount
|
|
70
|
-
sequentialCode
|
|
71
|
-
images {
|
|
72
|
-
id
|
|
73
|
-
url
|
|
74
|
-
}
|
|
75
|
-
author {
|
|
53
|
+
}`,
|
|
54
|
+
author: `author {
|
|
76
55
|
name
|
|
77
56
|
bio
|
|
78
57
|
image
|
|
@@ -82,24 +61,28 @@ const ARTICLE_FULL_FIELDS = `
|
|
|
82
61
|
platform
|
|
83
62
|
url
|
|
84
63
|
}
|
|
85
|
-
}
|
|
86
|
-
|
|
64
|
+
}`,
|
|
65
|
+
creators: `creators {
|
|
87
66
|
id
|
|
88
67
|
name
|
|
89
|
-
}
|
|
90
|
-
|
|
68
|
+
}`,
|
|
69
|
+
tags: `tags {
|
|
91
70
|
id
|
|
92
71
|
name
|
|
93
|
-
}
|
|
94
|
-
|
|
72
|
+
}`,
|
|
73
|
+
platforms: `platforms {
|
|
95
74
|
id
|
|
96
75
|
name
|
|
97
|
-
}
|
|
98
|
-
|
|
76
|
+
}`,
|
|
77
|
+
categories: `categories {
|
|
99
78
|
id
|
|
100
79
|
name
|
|
101
|
-
}
|
|
102
|
-
|
|
80
|
+
}`,
|
|
81
|
+
images: `images {
|
|
82
|
+
id
|
|
83
|
+
url
|
|
84
|
+
}`,
|
|
85
|
+
mods: `mods {
|
|
103
86
|
id
|
|
104
87
|
name
|
|
105
88
|
description
|
|
@@ -115,14 +98,25 @@ const ARTICLE_FULL_FIELDS = `
|
|
|
115
98
|
id
|
|
116
99
|
url
|
|
117
100
|
}
|
|
118
|
-
}
|
|
119
|
-
|
|
101
|
+
}`,
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Builds GraphQL fields query from preset or custom fields
|
|
105
|
+
*/
|
|
106
|
+
function buildFieldsQuery(options = {}) {
|
|
107
|
+
const { preset = 'standard', fields } = options;
|
|
108
|
+
const selectedFields = fields !== null && fields !== void 0 ? fields : FIELD_PRESETS[preset];
|
|
109
|
+
return selectedFields
|
|
110
|
+
.map(field => FIELD_MAPPINGS[field])
|
|
111
|
+
.filter(Boolean)
|
|
112
|
+
.join('\n ');
|
|
113
|
+
}
|
|
120
114
|
/**
|
|
121
115
|
* Creates an article repository with the given GraphQL client
|
|
122
116
|
*/
|
|
123
117
|
function createArticleRepository(fetcher) {
|
|
124
118
|
async function getAll(options = {}) {
|
|
125
|
-
const { limit = 12, offset = 0, status = 'PUBLISHED', filter = {} } = options;
|
|
119
|
+
const { limit = 12, offset = 0, status = 'PUBLISHED', filter = {}, preset, fields } = options;
|
|
126
120
|
// Build filter string
|
|
127
121
|
const filterParts = [];
|
|
128
122
|
if (filter.tag)
|
|
@@ -136,9 +130,10 @@ function createArticleRepository(fetcher) {
|
|
|
136
130
|
if (filter.favorited !== undefined)
|
|
137
131
|
filterParts.push(`favorited: ${filter.favorited}`);
|
|
138
132
|
const filterArg = filterParts.length > 0 ? `filter: { ${filterParts.join(', ')} }, ` : '';
|
|
133
|
+
const fieldsQuery = buildFieldsQuery({ preset, fields });
|
|
139
134
|
const query = `query GetArticles {
|
|
140
135
|
articles(${filterArg}limit: ${limit}, offset: ${offset}, status: ${status}) {
|
|
141
|
-
${
|
|
136
|
+
${fieldsQuery}
|
|
142
137
|
}
|
|
143
138
|
}`;
|
|
144
139
|
const { data, errors } = await fetcher(query, {}, {
|
|
@@ -154,7 +149,7 @@ function createArticleRepository(fetcher) {
|
|
|
154
149
|
const { limit = 50 } = options;
|
|
155
150
|
const query = `query GetArticlesByTag($tag: String!) {
|
|
156
151
|
articles(filter: { tag: $tag }, status: PUBLISHED, limit: ${limit}) {
|
|
157
|
-
${
|
|
152
|
+
${buildFieldsQuery()}
|
|
158
153
|
}
|
|
159
154
|
}`;
|
|
160
155
|
const { data, errors } = await fetcher(query, { tag }, {
|
|
@@ -170,7 +165,7 @@ function createArticleRepository(fetcher) {
|
|
|
170
165
|
const { limit = 50 } = options;
|
|
171
166
|
const query = `query GetArticlesByPlatform($platform: String!) {
|
|
172
167
|
articles(filter: { platform: $platform }, status: PUBLISHED, limit: ${limit}) {
|
|
173
|
-
${
|
|
168
|
+
${buildFieldsQuery()}
|
|
174
169
|
}
|
|
175
170
|
}`;
|
|
176
171
|
const { data, errors } = await fetcher(query, { platform }, {
|
|
@@ -186,7 +181,7 @@ function createArticleRepository(fetcher) {
|
|
|
186
181
|
const { limit = 50 } = options;
|
|
187
182
|
const query = `query GetArticlesByCategory($category: String!) {
|
|
188
183
|
articles(filter: { category: $category }, status: PUBLISHED, limit: ${limit}) {
|
|
189
|
-
${
|
|
184
|
+
${buildFieldsQuery()}
|
|
190
185
|
}
|
|
191
186
|
}`;
|
|
192
187
|
const { data, errors } = await fetcher(query, { category }, {
|
|
@@ -201,7 +196,7 @@ function createArticleRepository(fetcher) {
|
|
|
201
196
|
async function getBySlug(slug, language) {
|
|
202
197
|
const query = `query GetArticleBySlug($slug: String!, $language: String) {
|
|
203
198
|
article(slug: $slug, language: $language) {
|
|
204
|
-
${
|
|
199
|
+
${buildFieldsQuery({ preset: 'full' })}
|
|
205
200
|
}
|
|
206
201
|
}`;
|
|
207
202
|
const { data, errors } = await fetcher(query, { slug, language }, {
|
|
@@ -216,7 +211,7 @@ function createArticleRepository(fetcher) {
|
|
|
216
211
|
async function getWithDownloads(slug, language) {
|
|
217
212
|
const query = `query GetArticleWithDownloads($slug: String!, $language: String, $downloadsArticleId: Int) {
|
|
218
213
|
article(slug: $slug, language: $language) {
|
|
219
|
-
${
|
|
214
|
+
${buildFieldsQuery({ preset: 'full' })}
|
|
220
215
|
}
|
|
221
216
|
downloads(articleId: $downloadsArticleId) {
|
|
222
217
|
id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"articleRepository.js","sourceRoot":"","sources":["../../repositories/articleRepository.ts"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"articleRepository.js","sourceRoot":"","sources":["../../repositories/articleRepository.ts"],"names":[],"mappings":";AAAA;;GAEG;;AA6IH,0DAkLC;AAzTD,+EAA+E;AAC/E,sEAAsE;AACtE,+EAA+E;AAE/E;;GAEG;AACH,MAAM,aAAa,GAA0C;IAC3D,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC;IAC7C,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK;QAC3C,WAAW,EAAE,YAAY;QACzB,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ;QACjE,gBAAgB,EAAE,WAAW;QAC7B,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ;KAC/D;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK;QACnD,WAAW,EAAE,YAAY,EAAE,iBAAiB;QAC5C,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ;QACjE,QAAQ,EAAE,MAAM;QAChB,gBAAgB,EAAE,WAAW;QAC7B,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB;KACrD;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAiC;IACnD,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,eAAe,EAAE,iBAAiB;IAClC,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE;;;IAGN;IACF,MAAM,EAAE;;;;;;;;;;IAUN;IACF,QAAQ,EAAE;;;IAGR;IACF,IAAI,EAAE;;;IAGJ;IACF,SAAS,EAAE;;;IAGT;IACF,UAAU,EAAE;;;IAGV;IACF,MAAM,EAAE;;;IAGN;IACF,IAAI,EAAE;;;;;;;;;;;;;;;;IAgBJ;CACH,CAAC;AAEF;;GAEG;AACH,SAAS,gBAAgB,CAAC,UAA+D,EAAE;IACzF,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAChD,MAAM,cAAc,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAEvD,OAAO,cAAc;SAClB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SACnC,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAsBD;;GAEG;AACH,SAAgB,uBAAuB,CAAC,OAAuB;IAE7D,KAAK,UAAU,MAAM,CAAC,UAA8B,EAAE;QACpD,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAE9F,sBAAsB;QACtB,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,GAAG;YAAE,WAAW,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAAE,WAAW,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAEvF,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,WAAW,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAEzD,MAAM,KAAK,GAAG;iBACD,SAAS,UAAU,KAAK,aAAa,MAAM,aAAa,MAAM;UACrE,WAAW;;MAEf,CAAC;QAEH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAkC,KAAK,EAAE,EAAE,EAAE;YACjF,aAAa,EAAE,aAAa;SAC7B,CAAC,CAAC;QAEH,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;YACnD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,GAAW,EAAE,UAA8B,EAAE;QACnE,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAE/B,MAAM,KAAK,GAAG;kEACgD,KAAK;UAC7D,gBAAgB,EAAE;;MAEtB,CAAC;QAEH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAkC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;YACtF,aAAa,EAAE,kBAAkB;SAClC,CAAC,CAAC;QAEH,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;YAC1D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,UAA8B,EAAE;QAC7E,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAE/B,MAAM,KAAK,GAAG;4EAC0D,KAAK;UACvE,gBAAgB,EAAE;;MAEtB,CAAC;QAEH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAkC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE;YAC3F,aAAa,EAAE,uBAAuB;SACvC,CAAC,CAAC;QAEH,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,MAAM,CAAC,CAAC;YAC/D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,UAA8B,EAAE;QAC7E,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAE/B,MAAM,KAAK,GAAG;4EAC0D,KAAK;UACvE,gBAAgB,EAAE;;MAEtB,CAAC;QAEH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAkC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE;YAC3F,aAAa,EAAE,uBAAuB;SACvC,CAAC,CAAC;QAEH,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,MAAM,CAAC,CAAC;YAC/D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,QAAiB;QACtD,MAAM,KAAK,GAAG;;UAER,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;;MAExC,CAAC;QAEH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAuB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACtF,aAAa,EAAE,kBAAkB;SAClC,CAAC,CAAC;QAEH,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;IAC9B,CAAC;IAED,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAiB;QAC7D,MAAM,KAAK,GAAG;;UAER,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;;;;;;;;;;;;;;;;MAgBxC,CAAC;QAEH,kCAAkC;QAClC,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAKpC,KAAK,EACL,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,aAAa,CAAC,EAAE,EAAE,EACxD,EAAE,aAAa,EAAE,yBAAyB,EAAE,CAC7C,CAAC;QAEF,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,MAAM,CAAC,CAAC;YACjE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACrD,CAAC;QAED,eAAe;QACf,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,IAAI,EAAE,CAAC;QAC5E,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,aAAa;YACtC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;SAClC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM;QACN,QAAQ;QACR,aAAa;QACb,aAAa;QACb,SAAS;QACT,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
|
package/dist/types/article.d.ts
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { ArticleStatus } from '../config';
|
|
5
5
|
import type { Author, Download, OfficialDownloadSource, Mod, NamedEntity, ImageObject } from './common';
|
|
6
|
+
/**
|
|
7
|
+
* Field preset levels for article queries
|
|
8
|
+
* - minimal: Basic info only (id, title, slug, mainImage) - best for cards/thumbnails
|
|
9
|
+
* - standard: Common fields for list views (default)
|
|
10
|
+
* - full: All available fields including body content
|
|
11
|
+
*/
|
|
12
|
+
export type ArticlePreset = 'minimal' | 'standard' | 'full';
|
|
13
|
+
/**
|
|
14
|
+
* Available fields for custom selection
|
|
15
|
+
*/
|
|
16
|
+
export type ArticleField = 'id' | 'title' | 'slug' | 'description' | 'body' | 'ver' | 'mainImage' | 'coverImage' | 'backgroundImage' | 'author' | 'tags' | 'platforms' | 'categories' | 'creators' | 'engine' | 'images' | 'mods' | 'favoritesCount' | 'favorited' | 'createdAt' | 'updatedAt' | 'status' | 'sequentialCode';
|
|
6
17
|
/** Full Article type */
|
|
7
18
|
export interface Article {
|
|
8
19
|
id: number;
|
|
@@ -78,6 +89,10 @@ export interface ArticleListOptions {
|
|
|
78
89
|
offset?: number;
|
|
79
90
|
status?: ArticleStatus;
|
|
80
91
|
filter?: ArticleFilter;
|
|
92
|
+
/** Field preset level (default: 'standard') */
|
|
93
|
+
preset?: ArticlePreset;
|
|
94
|
+
/** Custom field selection (overrides preset) */
|
|
95
|
+
fields?: ArticleField[];
|
|
81
96
|
}
|
|
82
97
|
/** Article with downloads response */
|
|
83
98
|
export interface ArticleWithDownloads {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"article.d.ts","sourceRoot":"","sources":["../../types/article.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"article.d.ts","sourceRoot":"","sources":["../../types/article.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED