diff --git a/.eslintrc.js b/.eslintrc.js index 88ae09c..ace7c40 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -36,6 +36,7 @@ module.exports = { 'no-restricted-globals': ['warn'], 'no-restricted-properties': ['warn'], 'no-restricted-syntax': ['warn'], + 'import/no-unresolved': ['error', { commonjs: true }], 'import/extensions': [ 'error', 'ignorePackages', @@ -46,5 +47,6 @@ module.exports = { tsx: 'never', }, ], + '@typescript-eslint/no-var-requires': 'off', }, } diff --git a/packages/abbr/src/abbr.ts b/packages/abbr/src/abbr.ts index 5601cbf..7531d9f 100644 --- a/packages/abbr/src/abbr.ts +++ b/packages/abbr/src/abbr.ts @@ -1,4 +1,4 @@ -export default function abbr(str: string, maxLength = 55, divider = `[...]`): string { +export = function abbr(str: string, maxLength = 55, divider = `[...]`): string { if (str !== `${str}`) { return str } diff --git a/packages/analyze-step/src/analyzeStep.test.ts b/packages/analyze-step/src/analyzeStep.test.ts index 9a88c40..e814241 100644 --- a/packages/analyze-step/src/analyzeStep.test.ts +++ b/packages/analyze-step/src/analyzeStep.test.ts @@ -2,7 +2,6 @@ import { describe, test } from 'node:test' import assert from 'node:assert' import analyzeStep from './analyzeStep' -// const util = require('util') const ROBOTS = { '/image/resize': { diff --git a/packages/analyze-step/src/analyzeStep.ts b/packages/analyze-step/src/analyzeStep.ts index b325e6b..f8c8474 100644 --- a/packages/analyze-step/src/analyzeStep.ts +++ b/packages/analyze-step/src/analyzeStep.ts @@ -1,10 +1,13 @@ /* eslint-disable quote-props */ /* eslint-disable no-template-curly-in-string */ -import formatDurationMs from '@transloadit/format-duration-ms' -import prettierBytes from '@transloadit/prettier-bytes' -import * as inflect from 'inflection' -import { JSONPath } from 'jsonpath-plus' -import { clone, countBy, get, has } from 'lodash' +import formatDurationMs = require('@transloadit/format-duration-ms') +import prettierBytes = require('@transloadit/prettier-bytes') +import inflect = require('inflection') +import JSONPath = require('jsonpath-plus') +import clone = require('lodash/clone') +import countBy = require('lodash/countBy') +import get = require('lodash/get') +import has = require('lodash/has') function humanJoin(array: string[], reduce = true, glueword = 'and'): string { let countedArray = array @@ -309,7 +312,7 @@ type Step = Partial & [key: string]: any } -export default function humanize(step: Step, robots: Robots, extrameta: ExtraMeta = {}): string { +export = function humanize(step: Step, robots: Robots, extrameta: ExtraMeta = {}): string { let str = `` const robot = robots[step.robot] @@ -395,7 +398,7 @@ export default function humanize(step: Step, robots: Robots, extrameta: ExtraMet } if (robot?.rname === '/video/merge') { - const types = JSONPath({ path: '$..as', json: step }) + const types = JSONPath.JSONPath({ path: '$..as', json: step }) if (types.length) { str = `Merge ${humanJoin(types)} to create a new video` } else if (get(step, 'ffmpeg.f') === 'gif') { diff --git a/packages/enrich-tweet/src/enrichTweet.ts b/packages/enrich-tweet/src/enrichTweet.ts index 6ded8dd..f230115 100644 --- a/packages/enrich-tweet/src/enrichTweet.ts +++ b/packages/enrich-tweet/src/enrichTweet.ts @@ -1,12 +1,12 @@ -import twttr from 'twitter-text' -import { tall } from 'tall' +import twttr = require('twitter-text') +import tall = require('tall') -import getUrls from 'get-urls' +import getUrls = require('get-urls') async function tryUnshorten(url: string, unshorten: boolean): Promise { if (!unshorten) return url try { - return await tall(url) + return await tall.tall(url) } catch (err) { return url } @@ -32,10 +32,7 @@ type Tweet = { } } -export default async function enrichTweet( - tweet: Tweet, - unshorten = true -): Promise { +export = async function enrichTweet(tweet: Tweet, unshorten = true): Promise { if (!tweet) return let text = tweet.full_text ?? '' diff --git a/packages/file-exists/src/fileExists.ts b/packages/file-exists/src/fileExists.ts index d4d94d1..69cba44 100644 --- a/packages/file-exists/src/fileExists.ts +++ b/packages/file-exists/src/fileExists.ts @@ -1,6 +1,6 @@ -import fs from 'fs' +import fs = require('fs') -export default function fileExists(path: string): Promise { +export = function fileExists(path: string): Promise { return new Promise((resolve) => { fs.access(path, fs.constants.F_OK, (err) => { resolve(!err) diff --git a/packages/format-duration-ms/src/formatDurationMs.ts b/packages/format-duration-ms/src/formatDurationMs.ts index ee181fa..680cc20 100644 --- a/packages/format-duration-ms/src/formatDurationMs.ts +++ b/packages/format-duration-ms/src/formatDurationMs.ts @@ -1,6 +1,6 @@ -import prettyMS from 'pretty-ms' +import prettyMS = require('pretty-ms') -export default function formatDurationMs(ms: number): string { +export = function formatDurationMs(ms: number): string { let human = prettyMS(ms) human = human.replace(/(\d+)\.\d+s/g, '$1s') diff --git a/packages/has-property/src/has-property.test.ts b/packages/has-property/src/has-property.test.ts index 56c0b8a..20cb0eb 100644 --- a/packages/has-property/src/has-property.test.ts +++ b/packages/has-property/src/has-property.test.ts @@ -1,6 +1,6 @@ import { test } from 'node:test' import assert from 'node:assert' -import { hasProperty } from './has-property' +import hasProperty from './has-property' test('hasProperty', () => { assert.ok(hasProperty({ foo: 'bar' }, 'foo')) diff --git a/packages/has-property/src/has-property.ts b/packages/has-property/src/has-property.ts index ac6da1c..44f7274 100644 --- a/packages/has-property/src/has-property.ts +++ b/packages/has-property/src/has-property.ts @@ -1,5 +1,5 @@ // eslint-disable-next-line import/prefer-default-export -export function hasProperty( +export = function hasProperty( obj: unknown, key: K | null | undefined ): obj is Record { diff --git a/packages/post/src/post.ts b/packages/post/src/post.ts index 7468a2c..42a5901 100644 --- a/packages/post/src/post.ts +++ b/packages/post/src/post.ts @@ -1,12 +1,12 @@ #!/usr/bin/env node /* eslint-disable no-console */ -import { promises as fs } from 'fs' -import inquirer from 'inquirer' +import fs = require('fs/promises') +import inquirer = require('inquirer') -import openInEditor from 'open-in-editor' -import fileExists from '@transloadit/file-exists' -import slugify from '@transloadit/slugify' -import title from 'title' +import openInEditor = require('open-in-editor') +import fileExists = require('@transloadit/file-exists') +import slugify = require('@transloadit/slugify') +import title = require('title') async function post(): Promise { console.log(`Welcome to @transloadit/post.`) diff --git a/packages/pr/src/pr.ts b/packages/pr/src/pr.ts index 4f466cb..1f7d736 100644 --- a/packages/pr/src/pr.ts +++ b/packages/pr/src/pr.ts @@ -1,6 +1,6 @@ -import * as util from 'util' +import util = require('util') -export default function pr(...args: T[]): T[] { +export = function pr(...args: T[]): T[] { for (const arg of args) { console.log(util.inspect(arg, false, null, true)) } diff --git a/packages/prd/src/prd.ts b/packages/prd/src/prd.ts index fa0d283..c3c3328 100644 --- a/packages/prd/src/prd.ts +++ b/packages/prd/src/prd.ts @@ -1,6 +1,6 @@ -import pr from '@transloadit/pr' +import pr = require('@transloadit/pr') -export default function prd(...args: T[]): void { +export = function prd(...args: T[]): void { pr(...args) const err = new Error('Halt via prd') console.error(err) diff --git a/packages/prd/tsconfig.json b/packages/prd/tsconfig.json index 819500b..ce758f2 100644 --- a/packages/prd/tsconfig.json +++ b/packages/prd/tsconfig.json @@ -2,7 +2,11 @@ "extends": "../../tsconfig.json", "compilerOptions": { "outDir": "dist/", - "rootDir": "src/" + "rootDir": "src/", + "paths": { + "@transloadit/pr": ["../pr"] + } }, - "include": ["src/"] + "include": ["src/"], + "references": [{ "path": "../pr" }] } diff --git a/packages/prettier-bytes/src/prettierBytes.ts b/packages/prettier-bytes/src/prettierBytes.ts index 4c66315..daf038a 100644 --- a/packages/prettier-bytes/src/prettierBytes.ts +++ b/packages/prettier-bytes/src/prettierBytes.ts @@ -1,7 +1,7 @@ // Adapted from https://github.com/Flet/prettier-bytes/ // Changing 1000 bytes to 1024, so we can keep uppercase KB vs kB // ISC License (c) Dan Flettre https://github.com/Flet/prettier-bytes/blob/master/LICENSE -export default function prettierBytes(num: number): string { +export = function prettierBytes(num: number): string { if (typeof num !== 'number' || Number.isNaN(num)) { throw new TypeError(`Expected a number, got ${typeof num}`) } diff --git a/packages/slugify/src/slugify.ts b/packages/slugify/src/slugify.ts index e1c4d4c..d41bbca 100644 --- a/packages/slugify/src/slugify.ts +++ b/packages/slugify/src/slugify.ts @@ -1,4 +1,4 @@ -export default function slugify(str: string): string { +export = function slugify(str: string): string { if (!str || str !== `${str}`) return str return str diff --git a/packages/sort-assembly/src/sortAssembly.ts b/packages/sort-assembly/src/sortAssembly.ts index 76c4b2c..149dd7f 100644 --- a/packages/sort-assembly/src/sortAssembly.ts +++ b/packages/sort-assembly/src/sortAssembly.ts @@ -1,8 +1,8 @@ -import sortObjectByPrio from '@transloadit/sort-object-by-prio' -import sortResult from '@transloadit/sort-result' -import { hasProperty } from '@transloadit/has-property' +import sortObjectByPrio = require('@transloadit/sort-object-by-prio') +import sortResult = require('@transloadit/sort-result') +import hasProperty = require('@transloadit/has-property') -export default function sortAssembly>(assembly: T): T { +export = function sortAssembly>(assembly: T): T { const sorted = sortObjectByPrio(assembly, { _: ['assembly_id', 'ok', 'message', 'warnings', 'error'], z: ['uploads', 'results'], diff --git a/packages/sort-object-by-prio/src/sortObjectByPrio.ts b/packages/sort-object-by-prio/src/sortObjectByPrio.ts index 47d0bd0..9f7a597 100644 --- a/packages/sort-object-by-prio/src/sortObjectByPrio.ts +++ b/packages/sort-object-by-prio/src/sortObjectByPrio.ts @@ -1,10 +1,10 @@ -import sortObject from '@transloadit/sort-object' +import sortObject = require('@transloadit/sort-object') type Prefixes = { [prefix: string]: Array } -export default function sortObjectByPrio>( +export = function sortObjectByPrio>( obj: T, prefixes: Prefixes ): T { diff --git a/packages/sort-object/src/sortObject.ts b/packages/sort-object/src/sortObject.ts index f695d68..8183dc7 100644 --- a/packages/sort-object/src/sortObject.ts +++ b/packages/sort-object/src/sortObject.ts @@ -1,4 +1,4 @@ -export default function sortObject>( +export = function sortObject>( obj: T, // eslint-disable-next-line no-unused-vars sortFunc?: (a: string, b: string) => number diff --git a/packages/sort-result-meta/src/sortResultMeta.ts b/packages/sort-result-meta/src/sortResultMeta.ts index 851ad25..a0ed71c 100644 --- a/packages/sort-result-meta/src/sortResultMeta.ts +++ b/packages/sort-result-meta/src/sortResultMeta.ts @@ -1,4 +1,4 @@ -import sortObjectByPrio from '@transloadit/sort-object-by-prio' +import sortObjectByPrio = require('@transloadit/sort-object-by-prio') type Meta = { faces?: Record[] @@ -10,7 +10,7 @@ function isObject(obj: unknown): obj is Record { ) } -export default function sortResultMeta(meta: T): T { +export = function sortResultMeta(meta: T): T { if (meta.faces) { for (let i = 0; i < meta.faces.length; i++) { const el = meta.faces[i] diff --git a/packages/sort-result/src/sortResult.ts b/packages/sort-result/src/sortResult.ts index e0ed9b2..98c831d 100644 --- a/packages/sort-result/src/sortResult.ts +++ b/packages/sort-result/src/sortResult.ts @@ -1,7 +1,7 @@ -import sortObjectByPrio from '@transloadit/sort-object-by-prio' -import sortResultMeta from '@transloadit/sort-result-meta' +import sortObjectByPrio = require('@transloadit/sort-object-by-prio') +import sortResultMeta = require('@transloadit/sort-result-meta') -export default function sortResult(result: T): T { +export = function sortResult(result: T): T { const sorted = sortObjectByPrio(result, { _: ['id'], z: ['meta'], diff --git a/packages/trigger-pager/src/triggerPager.test.ts b/packages/trigger-pager/src/triggerPager.test.ts index bb0ff7e..95271ff 100644 --- a/packages/trigger-pager/src/triggerPager.test.ts +++ b/packages/trigger-pager/src/triggerPager.test.ts @@ -35,7 +35,7 @@ mockRequire('@pagerduty/pdjs', () => { return { api: () => ({ post: mockPost }) } }) -const { default: triggerPager } = require('./triggerPager') +const triggerPager = require('./triggerPager') const LOREM_LONG = `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. diff --git a/packages/trigger-pager/src/triggerPager.ts b/packages/trigger-pager/src/triggerPager.ts index 5b3d5f6..2eee50e 100644 --- a/packages/trigger-pager/src/triggerPager.ts +++ b/packages/trigger-pager/src/triggerPager.ts @@ -1,9 +1,9 @@ -import { api } from '@pagerduty/pdjs' +import pagerduty = require('@pagerduty/pdjs') const PRIORITY_P1 = 'PUTY3A1' const DUPLICATE_INCIDENT_MESSAGE = 'matching dedup key already exists' -export type TriggerPagerOptions = { +type TriggerPagerOptions = { description: string from?: string incidentKey: string @@ -22,7 +22,7 @@ const triggerPager = async ({ token, urgency = 'high', }: TriggerPagerOptions): Promise => { - const res = await api({ token }).post('/incidents', { + const res = await pagerduty.api({ token }).post('/incidents', { headers: { from, }, @@ -58,4 +58,4 @@ const triggerPager = async ({ } } -export default triggerPager +export = triggerPager diff --git a/tsconfig.json b/tsconfig.json index 0b73b21..d23fbef 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,9 +1,10 @@ { "compilerOptions": { "esModuleInterop": true, - "lib": ["es2022"], + "lib": ["ES2023"], "target": "es2022", - "module": "commonjs", + "module": "nodenext", + "verbatimModuleSyntax": true, "forceConsistentCasingInFileNames": true, "skipLibCheck": true,