feat: export games and protocols besides GameDig (#411)

* feat: export games and protocols besides GameDig

* fix: revert ProtocolResolver rename

* fix: imports on the attempt tools

* docs: update changelog to note exports
This commit is contained in:
CosminPerRam 2023-11-20 11:35:31 +02:00 committed by GitHub
parent f472d8b0e4
commit 8192ed07e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 34 additions and 28 deletions

View File

@ -4,7 +4,8 @@
#### Package
* Node.js 16.20 is now required (from 14).
* Made the library a `module`.
* Removed `GameResolver`.
* Removed `GameResolver`, moved the `GameDig` class in a separate file.
* Modified exports, now the library exports `games` and `protocols` alongside the `GameDig` class.
#### Games
* Renamed `Counter Strike: 2D` to `CS2D` in [games.txt](games.txt) (why? see [this](https://cs2d.com/faq.php?show=misc_name#misc_name)).

View File

@ -1,4 +1,4 @@
import GameDig from '../lib/index.js'
import { GameDig } from '../lib/index.js'
// Instead of '../lib/index.js' you would have here 'gamedig'.
GameDig.query({

View File

@ -1,7 +1,7 @@
import * as Protocols from '../protocols/index.js'
import * as protocols from '../protocols/index.js'
export const getProtocol = (protocolId) => {
if (!(protocolId in Protocols)) { throw Error('Protocol definition file missing: ' + protocolId) }
if (!(protocolId in protocols)) { throw Error('Protocol definition file missing: ' + protocolId) }
return new Protocols[protocolId]()
return new protocols[protocolId]()
}

23
lib/gamedig.js Normal file
View File

@ -0,0 +1,23 @@
import QueryRunner from './QueryRunner.js'
let singleton = null
export class GameDig {
constructor (runnerOpts) {
this.queryRunner = new QueryRunner(runnerOpts)
}
async query (userOptions) {
return await this.queryRunner.run(userOptions)
}
static getInstance () {
if (!singleton) { singleton = new GameDig() }
return singleton
}
static async query (...args) {
return await GameDig.getInstance().query(...args)
}
}

View File

@ -1,23 +1,5 @@
import QueryRunner from './QueryRunner.js'
import { GameDig } from './gamedig.js'
import { games } from './games.js'
import * as protocols from '../protocols/index.js'
let singleton = null
export default class Gamedig {
constructor (runnerOpts) {
this.queryRunner = new QueryRunner(runnerOpts)
}
async query (userOptions) {
return await this.queryRunner.run(userOptions)
}
static getInstance () {
if (!singleton) { singleton = new Gamedig() }
return singleton
}
static async query (...args) {
return await Gamedig.getInstance().query(...args)
}
}
export { GameDig, games, protocols }

View File

@ -1,5 +1,5 @@
import Minimist from 'minimist'
import GameDig from './../lib/index.js'
import { GameDig } from './../lib/index.js'
const argv = Minimist(process.argv.slice(2), {})