From 029a65154c79269b39f762d8e68bf195a48587c5 Mon Sep 17 00:00:00 2001 From: Inrix Date: Mon, 19 Sep 2022 00:23:27 +1200 Subject: [PATCH] Updated helpers to esm & fixed esm runtime errors --- package-lock.json | 14 +++++++------- package.json | 2 +- src/float.ts | 8 +++++--- src/lib/Video.ts | 2 +- src/lib/helpers.ts | 17 +++++++++++------ src/lib/types.ts | 2 +- src/logins.ts | 5 ++--- 7 files changed, 28 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index 55de873..24ce4a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@ctrl/plex": "^1.5.3", "@inrixia/db": "2.0.0", - "@inrixia/helpers": "^1.23.4", + "@inrixia/helpers": "^2.0.1", "chalk-template": "^0.4.0", "default-import": "^1.1.5", "dotenv": "^16.0.2", @@ -200,9 +200,9 @@ "integrity": "sha512-gHFDmYgV3MMwyY6SqlbLZd+muS+AGsq6jc50KvdXsfptwvC1jkuE7mFM6eudwVBiIafpZShO6RZm1Jf1P+VW8w==" }, "node_modules/@inrixia/helpers": { - "version": "1.23.4", - "resolved": "https://registry.npmjs.org/@inrixia/helpers/-/helpers-1.23.4.tgz", - "integrity": "sha512-CyHeYsDKgzry7eipfrQLehZlioHHoO/iCc43te7kw6gDoy/KRevUDd98vO8mvDVjuCuwjITu9wRP3+ghI6YXKg==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@inrixia/helpers/-/helpers-2.0.1.tgz", + "integrity": "sha512-WonjHsqoozPgzJayD0KHqZMK8PtFFsKNpud4wNlUclGmxMycfekIrIZ/s2OamrbC8mROB7EEhtumicoZIxqlqg==" }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.2", @@ -4755,9 +4755,9 @@ "integrity": "sha512-gHFDmYgV3MMwyY6SqlbLZd+muS+AGsq6jc50KvdXsfptwvC1jkuE7mFM6eudwVBiIafpZShO6RZm1Jf1P+VW8w==" }, "@inrixia/helpers": { - "version": "1.23.4", - "resolved": "https://registry.npmjs.org/@inrixia/helpers/-/helpers-1.23.4.tgz", - "integrity": "sha512-CyHeYsDKgzry7eipfrQLehZlioHHoO/iCc43te7kw6gDoy/KRevUDd98vO8mvDVjuCuwjITu9wRP3+ghI6YXKg==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@inrixia/helpers/-/helpers-2.0.1.tgz", + "integrity": "sha512-WonjHsqoozPgzJayD0KHqZMK8PtFFsKNpud4wNlUclGmxMycfekIrIZ/s2OamrbC8mROB7EEhtumicoZIxqlqg==" }, "@jridgewell/gen-mapping": { "version": "0.3.2", diff --git a/package.json b/package.json index aee6a06..7635c50 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "@ctrl/plex": "^1.5.3", "@inrixia/db": "2.0.0", - "@inrixia/helpers": "^1.23.4", + "@inrixia/helpers": "^2.0.1", "chalk-template": "^0.4.0", "default-import": "^1.1.5", "dotenv": "^16.0.2", diff --git a/src/float.ts b/src/float.ts index bc770f9..21241fb 100644 --- a/src/float.ts +++ b/src/float.ts @@ -4,12 +4,14 @@ import { settings, fetchFFMPEG, fApi } from './lib/helpers.js'; import { MyPlexAccount } from '@ctrl/plex'; import { loginFloatplane } from './logins.js'; import Downloader from './Downloader.js'; -import { gt, diff } from 'semver'; - import chalk from 'chalk-template'; +import fs from 'fs'; import type Subscription from './lib/Subscription.js'; +import semver from "semver"; +const { gt, diff } = semver; + /** * Main function that triggeres everything else in the script */ @@ -35,7 +37,7 @@ const fetchNewVideos = async (subscriptions: Array, videoProcessor }; (async () => { - const version: string = require('../package.json').version; + const version: string = process.env.npm_package_version ?? JSON.parse(fs.readFileSync('./package.json').toString()).version; const latest = await fApi .got('https://raw.githubusercontent.com/Inrixia/Floatplane-Downloader/master/package.json', { resolveBodyOnly: true }) .then(JSON.parse) diff --git a/src/lib/Video.ts b/src/lib/Video.ts index e5f3acd..8e02d0c 100644 --- a/src/lib/Video.ts +++ b/src/lib/Video.ts @@ -11,7 +11,7 @@ import { htmlToText } from 'html-to-text'; import sanitize from 'sanitize-filename'; import builder from 'xmlbuilder'; -import { nPad } from '@inrixia/helpers/math'; +import { nPad } from '@inrixia/helpers/math.js'; import type { FilePathFormattingOptions } from './types.js'; import type { BlogPost } from 'floatplane/creator'; diff --git a/src/lib/helpers.ts b/src/lib/helpers.ts index f128b2d..a8333e8 100644 --- a/src/lib/helpers.ts +++ b/src/lib/helpers.ts @@ -1,5 +1,5 @@ import { downloadBinaries, detectPlatform, getBinaryFilename } from 'ffbinaries'; -import { getEnv, rebuildTypes, recursiveUpdate } from '@inrixia/helpers/object'; +import { getEnv, rebuildTypes, recursiveUpdate } from '@inrixia/helpers/object.js'; import { defaultArgs, defaultSettings } from './defaults.js'; import db from '@inrixia/db'; import fs from 'fs'; @@ -10,9 +10,11 @@ import _ARGV from 'process.argv'; const ARGV = defaultImport(_ARGV); import 'dotenv/config'; -import { parse } from 'json5'; -import type { Args, PartialArgs, Settings } from './types.js'; +import json5 from 'json5'; +const { parse } = json5; + +import type { PartialArgs, Settings } from './types.js'; import { FileCookieStore } from 'tough-cookie-file-store'; import { CookieJar } from 'tough-cookie'; @@ -25,13 +27,16 @@ export const settings = db('./db/settings.json', { template: defaultSe recursiveUpdate(settings, defaultSettings); const argv = ARGV(process.argv.slice(2))({}); -rebuildTypes(argv, { ...defaultSettings, ...defaultArgs }); +rebuildTypes(argv, { ...defaultSettings, ...defaultArgs }); recursiveUpdate(settings, argv, { setUndefined: false, setDefined: true }); const env = getEnv(); -rebuildTypes(env, { ...defaultSettings, ...defaultArgs }); +rebuildTypes(env, { ...defaultSettings, ...defaultArgs }); -if (env.__FPDSettings !== undefined) recursiveUpdate(settings, parse(env.__FPDSettings.replaceAll('\\"', '"')), { setUndefined: false, setDefined: true }); +if (env.__FPDSettings !== undefined) { + if (typeof env.__FPDSettings !== 'string') throw new Error('The __FPDSettings environment variable cannot be parsed!'); + recursiveUpdate(settings, parse(env.__FPDSettings.replaceAll('\\"', '"')), { setUndefined: false, setDefined: true }); +} recursiveUpdate(settings, env, { setUndefined: false, setDefined: true }); diff --git a/src/lib/types.ts b/src/lib/types.ts index 12021d3..7908048 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -1,6 +1,6 @@ export type Resolutions = ['360', '720', '1080', '2160']; -import type { ValueOfA } from '@inrixia/helpers/ts'; +import type { ValueOfA } from '@inrixia/helpers/ts.js'; import type { BlogPost } from 'floatplane/creator'; type ChannelIdentifier = { diff --git a/src/logins.ts b/src/logins.ts index 3c0b10c..1adb5bf 100644 --- a/src/logins.ts +++ b/src/logins.ts @@ -1,8 +1,7 @@ -import { loopError } from '@inrixia/helpers/object'; +import { loopError } from '@inrixia/helpers/object.js'; import { floatplane, plex } from './lib/prompts/index.js'; -import { fApi } from './lib/helpers.js'; +import { fApi, args } from './lib/helpers.js'; import { MyPlexAccount } from '@ctrl/plex'; -import { args } from './lib/helpers.js'; export const loginFloatplane = async (): Promise => { let loginResponse;