@phosart/common 0.4.52 → 0.4.54
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.
- package/dist/server/filter.d.ts +1 -0
- package/dist/server/filter.d.ts.map +1 -1
- package/dist/server/filter.js +32 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/models/Gallery.d.ts +5 -0
- package/dist/server/models/Gallery.d.ts.map +1 -1
- package/dist/server/models/Gallery.js +2 -1
- package/dist/server/theme/schema.d.ts.map +1 -1
- package/dist/server/theme/schema.js +1 -0
- package/package.json +1 -1
- package/src/lib/server/filter.ts +31 -1
- package/src/lib/server/index.ts +1 -1
- package/src/lib/server/models/Gallery.ts +2 -1
- package/src/lib/server/theme/schema.ts +1 -0
package/dist/server/filter.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/lib/server/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,MAAM,gBAAgB,CAAC;AAgDxB,wBAAgB,MAAM,CACrB,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC9C,EAAE,CAAC,EAAE,WAAW,EAChB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/D,QAAQ,EAAE,CAaZ"}
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/lib/server/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,MAAM,gBAAgB,CAAC;AAgDxB,wBAAgB,MAAM,CACrB,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC9C,EAAE,CAAC,EAAE,WAAW,EAChB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/D,QAAQ,EAAE,CAaZ;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,UA4BxD"}
|
package/dist/server/filter.js
CHANGED
|
@@ -49,5 +49,36 @@ export function filter(gallery, by, { negated, sorted } = {}) {
|
|
|
49
49
|
if (!sorted) {
|
|
50
50
|
return results;
|
|
51
51
|
}
|
|
52
|
-
return results.sort(
|
|
52
|
+
return results.sort(defaultPieceSort);
|
|
53
|
+
}
|
|
54
|
+
export function defaultPieceSort(a, b) {
|
|
55
|
+
if (a.sort_key && !b.sort_key) {
|
|
56
|
+
return -1;
|
|
57
|
+
}
|
|
58
|
+
else if (b.sort_key && !a.sort_key) {
|
|
59
|
+
return 1;
|
|
60
|
+
}
|
|
61
|
+
else if (b.sort_key && a.sort_key) {
|
|
62
|
+
let aNum = null;
|
|
63
|
+
let bNum = null;
|
|
64
|
+
aNum = Number(a.sort_key);
|
|
65
|
+
if (!Number.isFinite(aNum)) {
|
|
66
|
+
aNum = null;
|
|
67
|
+
}
|
|
68
|
+
bNum = Number(b.sort_key);
|
|
69
|
+
if (!Number.isFinite(bNum)) {
|
|
70
|
+
bNum = null;
|
|
71
|
+
}
|
|
72
|
+
if (aNum !== null && bNum === null) {
|
|
73
|
+
return -1;
|
|
74
|
+
}
|
|
75
|
+
else if (bNum !== null && aNum === null) {
|
|
76
|
+
return 1;
|
|
77
|
+
}
|
|
78
|
+
else if (bNum !== null && aNum !== null) {
|
|
79
|
+
return bNum - aNum;
|
|
80
|
+
}
|
|
81
|
+
return a.sort_key.localeCompare(b.sort_key);
|
|
82
|
+
}
|
|
83
|
+
return b.date.getTime() - a.date.getTime();
|
|
53
84
|
}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { type ArtistCache, artists, getAllArtists } from './artist.ts';
|
|
2
2
|
export { type CharacterCache, characters, type RawCharacterCache, rawCharacters, getAllCharacters } from './character.ts';
|
|
3
3
|
export { $DATA as $ART, $PUBLIC, $ROOT } from './directories.ts';
|
|
4
|
-
export { filter } from './filter.ts';
|
|
4
|
+
export { filter, defaultPieceSort } from './filter.ts';
|
|
5
5
|
export { type GalleryCache, type RawGalleryCache, galleries, rawGalleries, allPieces, getPieceBySlug } from './gallery.ts';
|
|
6
6
|
export { processImage, processVideo, processImageFastcache, processVideoFastcache, clearProcessedHashes, cleanUnusedHashes } from './imageprocess.ts';
|
|
7
7
|
export { Artist } from './models/Artist.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/server/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EACN,KAAK,cAAc,EACnB,UAAU,EACV,KAAK,iBAAiB,EACtB,aAAa,EACb,gBAAgB,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/server/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EACN,KAAK,cAAc,EACnB,UAAU,EACV,KAAK,iBAAiB,EACtB,aAAa,EACb,gBAAgB,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,SAAS,EACT,YAAY,EACZ,SAAS,EACT,cAAc,EACd,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACN,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,KAAK,EACL,UAAU,EACV,eAAe,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE7F,OAAO,EACN,eAAe,EACf,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/server/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
export { artists, getAllArtists } from "./artist.js";
|
|
3
3
|
export { characters, rawCharacters, getAllCharacters } from "./character.js";
|
|
4
4
|
export { $DATA as $ART, $PUBLIC, $ROOT } from "./directories.js";
|
|
5
|
-
export { filter } from "./filter.js";
|
|
5
|
+
export { filter, defaultPieceSort } from "./filter.js";
|
|
6
6
|
export { galleries, rawGalleries, allPieces, getPieceBySlug } from "./gallery.js";
|
|
7
7
|
export { processImage, processVideo, processImageFastcache, processVideoFastcache, clearProcessedHashes, cleanUnusedHashes } from "./imageprocess.js";
|
|
8
8
|
export { Artist } from "./models/Artist.js";
|
|
@@ -51,6 +51,7 @@ export declare const BaseGallery: z.ZodObject<{
|
|
|
51
51
|
slug: z.ZodString;
|
|
52
52
|
deindexed: z.ZodOptional<z.ZodBoolean>;
|
|
53
53
|
nsfw: z.ZodOptional<z.ZodBoolean>;
|
|
54
|
+
sort_key: z.ZodOptional<z.ZodString>;
|
|
54
55
|
}, z.core.$strip>>;
|
|
55
56
|
}, z.core.$strip>;
|
|
56
57
|
export declare const RawGallery: z.ZodUnion<readonly [z.ZodObject<{
|
|
@@ -96,6 +97,7 @@ export declare const RawGallery: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
96
97
|
slug: z.ZodString;
|
|
97
98
|
deindexed: z.ZodOptional<z.ZodBoolean>;
|
|
98
99
|
nsfw: z.ZodOptional<z.ZodBoolean>;
|
|
100
|
+
sort_key: z.ZodOptional<z.ZodString>;
|
|
99
101
|
}, z.core.$strip>>;
|
|
100
102
|
}, z.core.$strip>]>;
|
|
101
103
|
export declare const FullGallery: z.ZodObject<{
|
|
@@ -215,6 +217,7 @@ export declare const FullGallery: z.ZodObject<{
|
|
|
215
217
|
slug: z.ZodString;
|
|
216
218
|
deindexed: z.ZodOptional<z.ZodBoolean>;
|
|
217
219
|
nsfw: z.ZodOptional<z.ZodBoolean>;
|
|
220
|
+
sort_key: z.ZodOptional<z.ZodString>;
|
|
218
221
|
}, z.core.$strip>>;
|
|
219
222
|
}, z.core.$strip>;
|
|
220
223
|
export declare const BaseArtPiece: z.ZodObject<{
|
|
@@ -257,6 +260,7 @@ export declare const BaseArtPiece: z.ZodObject<{
|
|
|
257
260
|
slug: z.ZodString;
|
|
258
261
|
deindexed: z.ZodOptional<z.ZodBoolean>;
|
|
259
262
|
nsfw: z.ZodOptional<z.ZodBoolean>;
|
|
263
|
+
sort_key: z.ZodOptional<z.ZodString>;
|
|
260
264
|
}, z.core.$strip>;
|
|
261
265
|
export declare const FullArtPiece: z.ZodObject<{
|
|
262
266
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -374,5 +378,6 @@ export declare const FullArtPiece: z.ZodObject<{
|
|
|
374
378
|
slug: z.ZodString;
|
|
375
379
|
deindexed: z.ZodOptional<z.ZodBoolean>;
|
|
376
380
|
nsfw: z.ZodOptional<z.ZodBoolean>;
|
|
381
|
+
sort_key: z.ZodOptional<z.ZodString>;
|
|
377
382
|
}, z.core.$strip>;
|
|
378
383
|
//# sourceMappingURL=Gallery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gallery.d.ts","sourceRoot":"","sources":["../../../src/lib/server/models/Gallery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe;;iBAE1B,CAAC;AAEH,eAAO,MAAM,KAAK;;;iBAGhB,CAAC;AAEH,eAAO,MAAM,UAAU;;;mBAGrB,CAAC;
|
|
1
|
+
{"version":3,"file":"Gallery.d.ts","sourceRoot":"","sources":["../../../src/lib/server/models/Gallery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe;;iBAE1B,CAAC;AAEH,eAAO,MAAM,KAAK;;;iBAGhB,CAAC;AAEH,eAAO,MAAM,UAAU;;;mBAGrB,CAAC;AAoDH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAsB,CAAC;AAC/C,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAA0C,CAAC;AAClE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAmB,CAAC;AAC5C,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAuB,CAAC;AACjD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAoB,CAAC"}
|
|
@@ -46,7 +46,8 @@ function ArtPiece(imageType) {
|
|
|
46
46
|
video: Video.optional(),
|
|
47
47
|
slug: z.string(),
|
|
48
48
|
deindexed: z.boolean().optional(),
|
|
49
|
-
nsfw: z.boolean().optional()
|
|
49
|
+
nsfw: z.boolean().optional(),
|
|
50
|
+
sort_key: z.string().optional()
|
|
50
51
|
});
|
|
51
52
|
}
|
|
52
53
|
function Gallery(imageType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/lib/server/theme/schema.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,KAAK,CAAC;AAcpB,QAAA,MAAM,YAAY;;mBAAyC,CAAC;AAC5D,QAAA,MAAM,gBAAgB;;;;mBAIpB,CAAC;AACH,QAAA,MAAM,qBAAqB;;;;mBAIzB,CAAC;AACH,QAAA,MAAM,aAAa;;mBAA0C,CAAC;AAC9D,QAAA,MAAM,gBAAgB;;mBAEpB,CAAC;AACH,QAAA,MAAM,WAAW;;mBAA2C,CAAC;AAC7D,QAAA,MAAM,WAAW;;mBAA4C,CAAC;AAC9D,QAAA,MAAM,WAAW;;mBAA+C,CAAC;AACjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;sBAYhC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,eAAO,MAAM,eAAe;;;;;;;;CAGY,CAAC;AACzC,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC;AAErD,KAAK,qBAAqB,CAAC,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,IAC/D,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,GACnC,IAAI,MAAM,EAAE,GACZ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GACzC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GACjB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,GAC9C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GACxB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GACpC,KAAK,CAAC,MAAM,CAAC,GACb,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GACpC,KAAK,CAAC,MAAM,CAAC,GACb,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GACtC,MAAM,GACN,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GACzC,MAAM,GACN,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GACpC,OAAO,GAAG,SAAS,GACnB,KAAK,CAAC;AAEjB,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,mBAAmB,IAAI;KACvD,CAAC,IAAI,MAAM,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAC;AAEF,wBAAsB,eAAe,CAAC,CAAC,SAAS,mBAAmB,KAAK,OAAO,CAAC,CAAC,CAAC,CAqBjF;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/lib/server/theme/schema.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,KAAK,CAAC;AAcpB,QAAA,MAAM,YAAY;;mBAAyC,CAAC;AAC5D,QAAA,MAAM,gBAAgB;;;;mBAIpB,CAAC;AACH,QAAA,MAAM,qBAAqB;;;;mBAIzB,CAAC;AACH,QAAA,MAAM,aAAa;;mBAA0C,CAAC;AAC9D,QAAA,MAAM,gBAAgB;;mBAEpB,CAAC;AACH,QAAA,MAAM,WAAW;;mBAA2C,CAAC;AAC7D,QAAA,MAAM,WAAW;;mBAA4C,CAAC;AAC9D,QAAA,MAAM,WAAW;;mBAA+C,CAAC;AACjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;sBAYhC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,eAAO,MAAM,eAAe;;;;;;;;CAGY,CAAC;AACzC,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC;AAErD,KAAK,qBAAqB,CAAC,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,IAC/D,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,GACnC,IAAI,MAAM,EAAE,GACZ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GACzC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GACjB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,GAC9C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GACxB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GACpC,KAAK,CAAC,MAAM,CAAC,GACb,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GACpC,KAAK,CAAC,MAAM,CAAC,GACb,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GACtC,MAAM,GACN,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GACzC,MAAM,GACN,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GACpC,OAAO,GAAG,SAAS,GACnB,KAAK,CAAC;AAEjB,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,mBAAmB,IAAI;KACvD,CAAC,IAAI,MAAM,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAC;AAEF,wBAAsB,eAAe,CAAC,CAAC,SAAS,mBAAmB,KAAK,OAAO,CAAC,CAAC,CAAC,CAqBjF;AAgDD,wBAAgB,cAAc,CAAC,CAAC,SAAS,mBAAmB,EAC3D,MAAM,EAAE,CAAC,EACT,GAAG,EAAE,OAAO,GACV,GAAG,IAAI,WAAW,CAAC,CAAC,GAAG,eAAe,CAAC,CAEzC;AAoGD,wBAAsB,eAAe,CAAC,CAAC,SAAS,mBAAmB,EAClE,MAAM,EAAE,CAAC,GACP,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAoB3C;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,mBAAmB,EACnE,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,eAAe,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
package/package.json
CHANGED
package/src/lib/server/filter.ts
CHANGED
|
@@ -67,5 +67,35 @@ export function filter(
|
|
|
67
67
|
if (!sorted) {
|
|
68
68
|
return results;
|
|
69
69
|
}
|
|
70
|
-
return results.sort(
|
|
70
|
+
return results.sort(defaultPieceSort);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function defaultPieceSort(a: ArtPiece, b: ArtPiece) {
|
|
74
|
+
if (a.sort_key && !b.sort_key) {
|
|
75
|
+
return -1;
|
|
76
|
+
} else if (b.sort_key && !a.sort_key) {
|
|
77
|
+
return 1;
|
|
78
|
+
} else if (b.sort_key && a.sort_key) {
|
|
79
|
+
let aNum: number | null = null;
|
|
80
|
+
let bNum: number | null = null;
|
|
81
|
+
aNum = Number(a.sort_key);
|
|
82
|
+
if (!Number.isFinite(aNum)) {
|
|
83
|
+
aNum = null;
|
|
84
|
+
}
|
|
85
|
+
bNum = Number(b.sort_key);
|
|
86
|
+
if (!Number.isFinite(bNum)) {
|
|
87
|
+
bNum = null;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (aNum !== null && bNum === null) {
|
|
91
|
+
return -1;
|
|
92
|
+
} else if (bNum !== null && aNum === null) {
|
|
93
|
+
return 1;
|
|
94
|
+
} else if (bNum !== null && aNum !== null) {
|
|
95
|
+
return bNum - aNum;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return a.sort_key.localeCompare(b.sort_key);
|
|
99
|
+
}
|
|
100
|
+
return b.date.getTime() - a.date.getTime();
|
|
71
101
|
}
|
package/src/lib/server/index.ts
CHANGED
|
@@ -8,7 +8,7 @@ export {
|
|
|
8
8
|
getAllCharacters
|
|
9
9
|
} from './character.ts';
|
|
10
10
|
export { $DATA as $ART, $PUBLIC, $ROOT } from './directories.ts';
|
|
11
|
-
export { filter } from './filter.ts';
|
|
11
|
+
export { filter, defaultPieceSort } from './filter.ts';
|
|
12
12
|
export {
|
|
13
13
|
type GalleryCache,
|
|
14
14
|
type RawGalleryCache,
|
|
@@ -54,7 +54,8 @@ function ArtPiece<T extends z.ZodTypeAny>(imageType: T) {
|
|
|
54
54
|
video: Video.optional(),
|
|
55
55
|
slug: z.string(),
|
|
56
56
|
deindexed: z.boolean().optional(),
|
|
57
|
-
nsfw: z.boolean().optional()
|
|
57
|
+
nsfw: z.boolean().optional(),
|
|
58
|
+
sort_key: z.string().optional()
|
|
58
59
|
});
|
|
59
60
|
}
|
|
60
61
|
|