@phosart/common 0.4.53 → 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/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/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) {
|
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
|
|