Skip to content

Commit c2b1c05

Browse files
committed
0.12.0 - Extension Data
1 parent 2a0da24 commit c2b1c05

File tree

5 files changed

+375
-241
lines changed

5 files changed

+375
-241
lines changed

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ publish = false
99
crate-type = ["cdylib"]
1010

1111
[dependencies]
12-
napi = { version = "2", features = ["async"] }
12+
napi = { version = "2", features = ["async", "serde-json"] }
1313
napi-derive = "2"
14-
flashpoint-archive = { version = "0.11.3", features = ["napi"] }
14+
flashpoint-archive = { version = "0.12.0", features = ["napi"] }
1515

1616
[build-dependencies]
1717
napi-build = "2"

index.d.ts

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export interface GameSearchRelations {
4545
platforms: boolean
4646
gameData: boolean
4747
addApps: boolean
48+
ext: Record<string, Record<string, boolean>>
4849
}
4950
export interface GameFilter {
5051
subfilters: Array<GameFilter>
@@ -77,9 +78,11 @@ export interface FieldFilter {
7778
applicationPath?: Array<string>
7879
launchCommand?: Array<string>
7980
ruffleSupport?: Array<string>
81+
ext?: Record<string, Record<string, Array<string>>>
8082
}
8183
export interface BoolFilter {
8284
installed?: boolean
85+
ext?: Record<string, Record<string, boolean>>
8386
}
8487
export interface SizeFilter {
8588
tags?: number
@@ -92,6 +95,7 @@ export interface SizeFilter {
9295
playtime?: number
9396
playcount?: number
9497
lastPlayed?: string
98+
ext?: Record<string, Record<string, number>>
9599
}
96100
export interface PageTuple {
97101
id: string
@@ -114,6 +118,25 @@ export interface ParsedInput {
114118
search: GameSearch
115119
positions: Array<ElementPosition>
116120
}
121+
export interface ExtensionIndex {
122+
name: string
123+
key: string
124+
}
125+
export const enum ExtSearchableType {
126+
String = 0,
127+
Boolean = 1,
128+
Number = 2
129+
}
130+
export interface ExtSearchable {
131+
key: string
132+
valueType: ExtSearchableType
133+
searchKey: string
134+
}
135+
export interface ExtensionInfo {
136+
id: string
137+
searchables: Array<ExtSearchable>
138+
indexes: Array<ExtensionIndex>
139+
}
117140
export interface AdditionalApp {
118141
id: string
119142
name: string
@@ -161,6 +184,7 @@ export interface Game {
161184
gameData?: Array<GameData>
162185
addApps?: Array<AdditionalApp>
163186
ruffleSupport: string
187+
extData?: Record<string, any>
164188
}
165189
export interface PartialGame {
166190
id: string
@@ -198,6 +222,7 @@ export interface PartialGame {
198222
archiveState?: number
199223
addApps?: Array<AdditionalApp>
200224
ruffleSupport?: string
225+
extData?: Record<string, any>
201226
}
202227
export interface GameRedirect {
203228
sourceId: string
@@ -366,7 +391,6 @@ export interface ContentTreeNode {
366391
export function genContentTree(root: string): Promise<ContentTreeNode>
367392
export function copyFolder(src: string, dest: string): Promise<number>
368393
export function mergeGameFilters(a: GameFilter, b: GameFilter): GameFilter
369-
export function parseUserSearchInput(input: string): ParsedInput
370394
export function newSubfilter(): GameFilter
371395
export function enableDebug(): void
372396
export function disableDebug(): void
@@ -441,6 +465,8 @@ export class FlashpointArchive {
441465
updateApplyRedirects(redirects: Array<GameRedirect>): Promise<void>
442466
optimizeDatabase(): Promise<void>
443467
newCustomIdOrder(customIdOrder: Array<string>): Promise<void>
468+
registerExtension(extInfo: ExtensionInfo): void
469+
parseUserSearchInput(input: string): ParsedInput
444470
}
445471

446472
export type TagVec = string[];

index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,16 +295,16 @@ if (!nativeBinding) {
295295
throw new Error(`Failed to load native binding`)
296296
}
297297

298-
const { GameSearchSortable, GameSearchDirection, ElementType, FlashpointArchive, genContentTree, copyFolder, mergeGameFilters, parseUserSearchInput, newSubfilter, enableDebug, disableDebug, debugEnabled, loggerSusbcribe } = nativeBinding
298+
const { GameSearchSortable, GameSearchDirection, ElementType, ExtSearchableType, FlashpointArchive, genContentTree, copyFolder, mergeGameFilters, newSubfilter, enableDebug, disableDebug, debugEnabled, loggerSusbcribe } = nativeBinding
299299

300300
module.exports.GameSearchSortable = GameSearchSortable
301301
module.exports.GameSearchDirection = GameSearchDirection
302302
module.exports.ElementType = ElementType
303+
module.exports.ExtSearchableType = ExtSearchableType
303304
module.exports.FlashpointArchive = FlashpointArchive
304305
module.exports.genContentTree = genContentTree
305306
module.exports.copyFolder = copyFolder
306307
module.exports.mergeGameFilters = mergeGameFilters
307-
module.exports.parseUserSearchInput = parseUserSearchInput
308308
module.exports.newSubfilter = newSubfilter
309309
module.exports.enableDebug = enableDebug
310310
module.exports.disableDebug = disableDebug

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@fparchive/flashpoint-archive",
3-
"version": "0.11.4",
3+
"version": "0.12.0",
44
"main": "index.js",
55
"types": "index.d.ts",
66
"license": "MIT",

0 commit comments

Comments
 (0)