mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-14 15:24:52 +09:00
Set up TypeScript for lib
Add a TypeScript build suitable for incremental migration to TypeScript to the lib package.
This commit is contained in:
1 parent
a1ee147c46
commit
90798205e0
16 files changed
+115
-151
No files matched your search
+14
-14
@@ -1,15 +1,15 @@
|
||||
export * from "./src/config";
|
||||
export * from "./src/data";
|
||||
export * from "./src/errors";
|
||||
export * from "./src/factorio/exchange_string";
|
||||
export * from "./src/helpers";
|
||||
export * from "./src/ini";
|
||||
export * from "./src/link";
|
||||
export * from "./src/logging";
|
||||
export * from "./src/plugin";
|
||||
export * from "./src/schema";
|
||||
export * from "./src/users";
|
||||
export * from "./dist/src/config";
|
||||
export * from "./dist/src/data";
|
||||
export * from "./dist/src/errors";
|
||||
export * from "./dist/src/factorio/exchange_string";
|
||||
export * from "./dist/src/helpers";
|
||||
export * from "./dist/src/ini";
|
||||
export * from "./dist/src/link";
|
||||
export * from "./dist/src/logging";
|
||||
export * from "./dist/src/plugin";
|
||||
export * from "./dist/src/schema";
|
||||
export * from "./dist/src/users";
|
||||
|
||||
export { default as ExponentialBackoff } from "./src/ExponentialBackoff";
|
||||
export { default as PlayerStats } from "./src/PlayerStats";
|
||||
export { default as RateLimiter } from "./src/RateLimiter";
|
||||
export { default as ExponentialBackoff } from "./dist/src/ExponentialBackoff";
|
||||
export { default as PlayerStats } from "./dist/src/PlayerStats";
|
||||
export { default as RateLimiter } from "./dist/src/RateLimiter";
|
||||
@@ -1,63 +0,0 @@
|
||||
/**
|
||||
* Shared library for Clusterio
|
||||
* @module lib
|
||||
*/
|
||||
"use strict";
|
||||
const libBuildMod = require("./build_mod");
|
||||
const libCommand = require("./src/command");
|
||||
const libConfig = require("./src/config");
|
||||
const libData = require("./src/data");
|
||||
const libDatabase = require("./src/database");
|
||||
const libErrors = require("./src/errors");
|
||||
const libFactorio = require("./src/factorio");
|
||||
const libFileOps = require("./src/file_ops");
|
||||
const libHash = require("./src/hash");
|
||||
const libHelpers = require("./src/helpers");
|
||||
const libIni = require("./src/ini");
|
||||
const libLink = require("./src/link");
|
||||
const libLogging = require("./src/logging");
|
||||
const libLoggingUtils = require("./src/logging_utils");
|
||||
const libLuaTools = require("./src/lua_tools");
|
||||
const libPlugin = require("./src/plugin");
|
||||
const libPluginLoader = require("./src/plugin_loader");
|
||||
const libPrometheus = require("./src/prometheus");
|
||||
const libSchema = require("./src/schema");
|
||||
const libSharedCommands = require("./src/shared_commands");
|
||||
const libStream = require("./src/stream");
|
||||
const libUsers = require("./src/users");
|
||||
const libZipOps = require("./src/zip_ops");
|
||||
|
||||
const ExponentialBackoff = require("./src/ExponentialBackoff");
|
||||
const PlayerStats = require("./src/PlayerStats");
|
||||
const RateLimiter = require("./src/RateLimiter");
|
||||
|
||||
|
||||
module.exports = {
|
||||
...libBuildMod,
|
||||
...libCommand,
|
||||
...libConfig,
|
||||
...libData,
|
||||
...libDatabase,
|
||||
...libErrors,
|
||||
...libFactorio,
|
||||
...libFileOps,
|
||||
...libHash,
|
||||
...libHelpers,
|
||||
...libIni,
|
||||
...libLink,
|
||||
...libLogging,
|
||||
...libLoggingUtils,
|
||||
...libLuaTools,
|
||||
...libPlugin,
|
||||
...libPluginLoader,
|
||||
...libPrometheus,
|
||||
...libSchema,
|
||||
...libSharedCommands,
|
||||
...libStream,
|
||||
...libUsers,
|
||||
...libZipOps,
|
||||
|
||||
ExponentialBackoff,
|
||||
PlayerStats,
|
||||
RateLimiter,
|
||||
};
|
||||
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* Shared library for Clusterio
|
||||
* @module lib
|
||||
*/
|
||||
export * from "./build_mod";
|
||||
export * from "./src/command";
|
||||
export * from "./src/config";
|
||||
export * from "./src/data";
|
||||
export * from "./src/database";
|
||||
export * from "./src/errors";
|
||||
export * from "./src/factorio";
|
||||
export * from "./src/file_ops";
|
||||
export * from "./src/hash";
|
||||
export * from "./src/helpers";
|
||||
export * from "./src/ini";
|
||||
export * from "./src/link";
|
||||
export * from "./src/logging";
|
||||
export * from "./src/logging_utils";
|
||||
export * from "./src/lua_tools";
|
||||
export * from "./src/plugin";
|
||||
export * from "./src/plugin_loader";
|
||||
export * from "./src/prometheus";
|
||||
export * from "./src/schema";
|
||||
export * from "./src/shared_commands";
|
||||
export * from "./src/stream";
|
||||
export * from "./src/users";
|
||||
export * from "./src/zip_ops";
|
||||
|
||||
export { default as ExponentialBackoff } from "./src/ExponentialBackoff";
|
||||
export { default as PlayerStats } from "./src/PlayerStats";
|
||||
export { default as RateLimiter } from "./src/RateLimiter";
|
||||
@@ -5,9 +5,10 @@
|
||||
"repository": "https://github.com/clusterio/clusterio",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"prepare": "pnpm run compile_validator",
|
||||
"prepare": "pnpm run compile_validator && tsc || true",
|
||||
"compile_validator": "node scripts/compile_validator.js"
|
||||
},
|
||||
"main": "dist/index.js",
|
||||
"browser": "browser.js",
|
||||
"keywords": [
|
||||
"factorio"
|
||||
@@ -31,5 +32,9 @@
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.4.5",
|
||||
"typescript": "^5.1.6"
|
||||
}
|
||||
}
|
||||
@@ -24,5 +24,5 @@ const validate = ajv.compile(Message.jsonSchema);
|
||||
let moduleCode = standaloneCode(ajv, validate);
|
||||
fs.outputFileSync(
|
||||
path.join(__dirname, "../src/data/message_validate.js"),
|
||||
`// generated by scripts/compile_validator.js\n/* eslint-disable */\n${moduleCode}`
|
||||
`// generated by scripts/compile_validator.js\n// @ts-nocheck\n/* eslint-disable */\n${moduleCode}`
|
||||
);
|
||||
@@ -1,13 +0,0 @@
|
||||
/**
|
||||
* Configuration System
|
||||
* @author Hornwitser
|
||||
* @module lib/config
|
||||
*/
|
||||
"use strict";
|
||||
const classes = require("./classes");
|
||||
const definitions = require("./definitions");
|
||||
|
||||
module.exports = {
|
||||
...classes,
|
||||
...definitions,
|
||||
};
|
||||
@@ -0,0 +1,7 @@
|
||||
/**
|
||||
* Configuration System
|
||||
* @author Hornwitser
|
||||
* @module lib/config
|
||||
*/
|
||||
export * from "./classes";
|
||||
export * from "./definitions";
|
||||
@@ -21,11 +21,14 @@ function jsonPrimitive(type) {
|
||||
},
|
||||
};
|
||||
}
|
||||
const JsonBoolean = jsonPrimitive("boolean");
|
||||
const JsonNumber = jsonPrimitive("number");
|
||||
const JsonString = jsonPrimitive("string");
|
||||
|
||||
module.exports = {
|
||||
JsonBoolean: jsonPrimitive("boolean"),
|
||||
JsonNumber: jsonPrimitive("number"),
|
||||
JsonString: jsonPrimitive("string"),
|
||||
JsonBoolean,
|
||||
JsonNumber,
|
||||
JsonString,
|
||||
|
||||
jsonArray,
|
||||
jsonPrimitive,
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
/**
|
||||
* Shared data types used in Clusterio
|
||||
* @module lib/data
|
||||
* @author Hornwitser
|
||||
*/
|
||||
"use strict";
|
||||
const ExportManifest = require("./ExportManifest");
|
||||
const ModInfo = require("./ModInfo");
|
||||
const ModPack = require("./ModPack");
|
||||
const composites = require("./composites");
|
||||
const messagesCore = require("./messages_core");
|
||||
const messagesController = require("./messages_controller");
|
||||
const messagesHost = require("./messages_host");
|
||||
const messagesInstance = require("./messages_instance");
|
||||
const messagesMod = require("./messages_mod");
|
||||
const messagesUser = require("./messages_user");
|
||||
const version = require("./version");
|
||||
|
||||
module.exports = {
|
||||
ExportManifest,
|
||||
ModInfo,
|
||||
ModPack,
|
||||
...composites,
|
||||
...messagesCore,
|
||||
...messagesController,
|
||||
...messagesHost,
|
||||
...messagesInstance,
|
||||
...messagesMod,
|
||||
...messagesUser,
|
||||
...version,
|
||||
};
|
||||
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Shared data types used in Clusterio
|
||||
* @module lib/data
|
||||
* @author Hornwitser
|
||||
*/
|
||||
export { default as ExportManifest } from "./ExportManifest";
|
||||
export { default as ModInfo } from "./ModInfo";
|
||||
export { default as ModPack } from "./ModPack";
|
||||
export * from "./composites";
|
||||
export * from "./messages_core";
|
||||
export * from "./messages_controller";
|
||||
export * from "./messages_host";
|
||||
export * from "./messages_instance";
|
||||
export * from "./messages_mod";
|
||||
export * from "./messages_user";
|
||||
export * from "./version";
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
import type { ValidateFunction } from "ajv"
|
||||
export default ValidateFunction
|
||||
@@ -3,9 +3,4 @@
|
||||
* @module lib/factorio
|
||||
* @author Hornwitser
|
||||
*/
|
||||
"use strict";
|
||||
const exchange_string = require("./exchange_string");
|
||||
|
||||
module.exports = {
|
||||
...exchange_string,
|
||||
};
|
||||
export * from "./exchange_string";
|
||||
@@ -1,17 +0,0 @@
|
||||
/**
|
||||
* Library for message based communication between nodes
|
||||
* @module lib/link
|
||||
* @author Hornwitser
|
||||
*/
|
||||
"use strict";
|
||||
const link = require("./link");
|
||||
const connectors = require("./connectors");
|
||||
|
||||
module.exports = {
|
||||
...link,
|
||||
...connectors,
|
||||
|
||||
// migrate: Allow info for plugins from before link refactor to load.
|
||||
Event: class Event {},
|
||||
Request: class Request {},
|
||||
};
|
||||
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Library for message based communication between nodes
|
||||
* @module lib/link
|
||||
* @author Hornwitser
|
||||
*/
|
||||
export * from "./link"
|
||||
export * from "./connectors"
|
||||
|
||||
// migrate: Allow info for plugins from before link refactor to load.
|
||||
export class Event {}
|
||||
export class Request {}
|
||||
@@ -416,7 +416,7 @@ function handleUnhandledErrors() {
|
||||
/* eslint-enable node/no-process-exit */
|
||||
}
|
||||
|
||||
|
||||
const _formatServerOutput = formatServerOutput;
|
||||
module.exports = {
|
||||
TerminalFormat,
|
||||
LinkTransport,
|
||||
@@ -425,5 +425,5 @@ module.exports = {
|
||||
queryLog,
|
||||
|
||||
// for testing only
|
||||
_formatServerOutput: formatServerOutput,
|
||||
_formatServerOutput,
|
||||
};
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"include": ["index.ts", "build_mod.js", "src/**/*.ts", "src/**/*.js"],
|
||||
"compilerOptions": {
|
||||
"lib": ["es2023"],
|
||||
"module": "commonjs",
|
||||
"target": "es2022",
|
||||
"rootDir": ".",
|
||||
"outDir": "dist",
|
||||
"composite": false,
|
||||
"strict": false,
|
||||
"alwaysStrict": true,
|
||||
"allowJs": true,
|
||||
"checkJs": false,
|
||||
"noEmitOnError": false,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user