New Version

This commit is contained in:
Benjamin Toby 2024-12-25 20:38:57 +01:00
parent f2892f1bf4
commit ae4706c4c4
9 changed files with 95 additions and 92 deletions

2
.npmrc
View File

@ -1,2 +1,2 @@
registry=https://git.tben.me/api/packages/Moduletrace/npm/
@moduletrace:registry=https://git.tben.me/api/packages/moduletrace/npm/
//git.tben.me/api/packages/Moduletrace/npm/:_authToken=${GITBEN_NPM_TOKEN}

BIN
bin/turbosync Executable file

Binary file not shown.

51
index.d.ts vendored Normal file
View File

@ -0,0 +1,51 @@
// @ts-check
export type TurboSyncConfigArray = TurboSyncConfigObject[];
export interface TurboSyncConfigObject {
title?: string;
files?: string[] | TurboSyncFileObject[];
folders?: string[] | TurboSyncFileObject[];
options?: TurboSyncOptions;
}
export interface TurboSyncFileObject {
path: string;
host?: string;
user?: string;
ssh_key?: string;
interval?: number;
}
export interface TurboSyncOptions {
delete?: boolean;
exclude?: string[];
interval?: number;
}
export interface SyncFilesFnParams {
files: string[] | TurboSyncFileObject[];
options: TurboSyncOptions | undefined;
}
export interface SyncFilesSyncFnParams {
files: string[] | TurboSyncFileObject[];
options: TurboSyncOptions | undefined;
filePath: string;
}
export interface SyncFoldersFnParams {
folders: string[] | TurboSyncFileObject[];
options: TurboSyncOptions | undefined;
}
export interface SyncFoldersSyncFnParams {
dirs: string[] | TurboSyncFileObject[];
options: TurboSyncOptions | undefined;
dirPath: string;
init?: boolean;
}
export interface HandleEnvVarsFnParams {
json: string;
}

View File

@ -72,7 +72,7 @@ try {
const parsedConfigJSON = handleEnvVars({ json: configJSON });
/** @type {TurboSyncConfigArray} */
/** @type {import(".").TurboSyncConfigArray} */
const configArray = JSON.parse(parsedConfigJSON);
for (let i = 0; i < configArray.length; i++) {
@ -91,14 +91,6 @@ try {
}
);
}
// setTimeout(() => {
// if (configFinalPath) {
// fs.watchFile(configFinalPath, { interval: 2000 }, (curr, prev) => {
// process.exit(7);
// });
// }
// }, 1000);
} catch (error) {
console.log(`Process Error =>`, error.message);
process.exit();
@ -109,17 +101,3 @@ setInterval(() => {
`Turbo Sync Running for ${process.uptime().toLocaleString()}s ...`
);
}, 60000);
// process.on("exit", (code) => {
// if (code === 7) {
// console.log("Config file changed. Restarting Turbo Sync service ...");
// const args = process.argv;
// const cmd = args.shift();
// if (cmd) {
// spawn(cmd, args, {
// stdio: "inherit",
// });
// }
// }
// });

View File

@ -9,7 +9,7 @@ const watchFolders = require("./watch/folders");
const confFileProvidedJSON = process.argv[process.argv.length - 1];
try {
/** @type {TurboSyncConfigObject} */
/** @type {import("..").TurboSyncConfigObject} */
const configFileObject = JSON.parse(confFileProvidedJSON);
console.log(`Running '${configFileObject.title}' ...`);

25
package-lock.json generated
View File

@ -1,17 +1,36 @@
{
"name": "turbo-sync",
"name": "@moduletrace/turbosync",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "turbo-sync",
"name": "@moduletrace/turbosync",
"version": "1.0.0",
"license": "ISC",
"bin": {
"turbo-sync": "index.js",
"turbosync": "index.js"
},
"devDependencies": {
"@types/node": "^22.10.2"
}
},
"node_modules/@types/node": {
"version": "22.10.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz",
"integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"undici-types": "~6.20.0"
}
},
"node_modules/undici-types": {
"version": "6.20.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
"integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
"dev": true,
"license": "MIT"
}
}
}

View File

@ -1,10 +1,11 @@
{
"name": "turbosync",
"version": "1.3.4",
"name": "@moduletrace/turbosync",
"version": "1.0.0",
"module": "index.js",
"scripts": {
"start": "node index.ts",
"build": "tsc",
"compile": "bun build index.js --compile --outfile bin/turbosync",
"dev": "node index.js --watch"
},
"bin": {
@ -13,5 +14,8 @@
"description": "Sync files and directories with ease",
"main": "index.js",
"author": "Benjamin Toby",
"license": "ISC"
"license": "ISC",
"devDependencies": {
"@types/node": "^22.10.2"
}
}

12
publish.sh Executable file
View File

@ -0,0 +1,12 @@
#!/bin/bash
if [ -z "$1" ]; then
msg="Updates"
else
msg="$1"
fi
git add .
git commit -m "$msg"
git push
npm publish

View File

@ -1,61 +0,0 @@
// @ts-check
/**
* @typedef {TurboSyncConfigObject[]} TurboSyncConfigArray
*/
/**
* @typedef {object} TurboSyncConfigObject
* @property {string} [title]
* @property {string[] | TurboSyncFileObject[]} [files]
* @property {string[] | TurboSyncFileObject[]} [folders]
* @property {TurboSyncOptions} [options]
*/
/**
* @typedef {object} TurboSyncFileObject
* @property {string} path
* @property {string} [host]
* @property {string} [user]
* @property {string} [ssh_key]
* @property {number} [interval]
*/
/**
* @typedef {object} TurboSyncOptions
* @property {boolean} [delete] - Should files removed be deleted in all destinations?
* @property {string[]} [exclude] - Patterns that should be ignored. Eg "*.log"
* @property {number} [interval] - Seconds to delay before update
*/
/**
* @typedef {object} SyncFilesFnParams
* @property {string[] | TurboSyncFileObject[]} files
* @property {TurboSyncOptions | undefined} options
*/
/**
* @typedef {object} SyncFilesSyncFnParams
* @property {string[] | TurboSyncFileObject[]} files
* @property {TurboSyncOptions | undefined} options
* @property {string} filePath
*/
/**
* @typedef {object} SyncFoldersFnParams
* @property {string[] | TurboSyncFileObject[]} folders
* @property {TurboSyncOptions | undefined} options
*/
/**
* @typedef {object} SyncFoldersSyncFnParams
* @property {string[] | TurboSyncFileObject[]} dirs
* @property {TurboSyncOptions | undefined} options
* @property {string} dirPath
* @property {boolean} [init] - is this an initialization phase?
*/
/**
* @typedef {object} HandleEnvVarsFnParams
* @property {string} json
*/