Skip to content

Commit

Permalink
Merge pull request #41 from mudkipme/chore/esm
Browse files Browse the repository at this point in the history
chore: switch to esm for klinklang-server
  • Loading branch information
mudkipme committed Sep 3, 2023
2 parents e565a8b + 14157a4 commit 8c0ee57
Show file tree
Hide file tree
Showing 39 changed files with 117 additions and 102 deletions.
1 change: 1 addition & 0 deletions packages/klinklang-client/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "@mudkipme/klinklang-client",
"version": "0.6.0",
"type": "module",
"description": "A collection of utilities of 52Poké Wiki.",
"author": "Mudkip <i@mudkip.me>",
"homepage": "https://github.com/mudkipme/klinklang#readme",
Expand Down
4 changes: 3 additions & 1 deletion packages/klinklang-client/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
"include": ["./src"],
"exclude": ["node_modules", "**/node_modules/**"],
"compilerOptions": {
"baseUrl": "."
"baseUrl": ".",
"useDefineForClassFields": false,
"experimentalDecorators": true
}
}
3 changes: 2 additions & 1 deletion packages/klinklang-client/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ export default defineConfig({
'^/(api|oauth)/.*': {
target: 'http://localhost:3001'
}
}
},
host: '0.0.0.0'
},
build: {
outDir: 'build'
Expand Down
5 changes: 3 additions & 2 deletions packages/klinklang-server/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "@mudkipme/klinklang-server",
"version": "0.6.0",
"type": "module",
"description": "A collection of utilities of 52Poké Wiki.",
"author": "Mudkip <i@mudkip.me>",
"homepage": "https://github.com/mudkipme/klinklang#readme",
Expand Down Expand Up @@ -31,7 +32,7 @@
"@types/convict": "^6.1.3",
"@types/js-yaml": "^4.0.5",
"@types/jsonwebtoken": "^9.0.2",
"@types/lodash": "^4.14.197",
"@types/lodash-es": "^4.17.9",
"@types/safe-regex": "^1.1.4",
"@types/uuid": "^9.0.2",
"awilix": "^8.0.1",
Expand All @@ -47,7 +48,7 @@
"jsonpath-plus": "^7.2.0",
"jsonwebtoken": "^9.0.1",
"kafkajs": "^2.2.4",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"oauth-1.0a": "^2.2.6",
"pino": "^8.15.0",
"safe-regex": "^2.1.1",
Expand Down
4 changes: 2 additions & 2 deletions packages/klinklang-server/src/actions/base.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { type Job } from 'bullmq'
import { type ActionJobData, type ActionJobResult, type Actions } from './interfaces'
import WorkflowInstance from '../models/workflow-instance'
import { type ActionJobData, type ActionJobResult, type Actions } from './interfaces.js'
import WorkflowInstance from '../models/workflow-instance.js'
import { type User, type Workflow } from '@mudkipme/klinklang-prisma'
import { diContainer } from '@fastify/awilix'

Expand Down
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/actions/discord.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { diContainer } from '@fastify/awilix'
import { TextChannel } from 'discord.js'
import type { APIEmbed, MessageCreateOptions, MessagePayload } from 'discord.js'
import { WikiWorker } from './wiki'
import { WikiWorker } from './wiki.js'

export interface DiscordMessageActionInput {
channel: string
Expand Down
12 changes: 6 additions & 6 deletions packages/klinklang-server/src/actions/interfaces.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { GetHTMLAction, GetTextAction, EditWikiAction } from './wiki'
import type { ParseTerminologyListAction, UpdateTerminologyAction } from './terminology'
import type { RegExpAction } from './string'
import type { SCSSAction } from './scss'
import type { DiscordMessageAction } from './discord'
import { type RequestAction } from './request'
import type { GetHTMLAction, GetTextAction, EditWikiAction } from './wiki.js'
import type { ParseTerminologyListAction, UpdateTerminologyAction } from './terminology.js'
import type { RegExpAction } from './string.js'
import type { SCSSAction } from './scss.js'
import type { DiscordMessageAction } from './discord.js'
import { type RequestAction } from './request.js'

export type Actions =
| GetHTMLAction | ParseTerminologyListAction | UpdateTerminologyAction | GetTextAction
Expand Down
16 changes: 8 additions & 8 deletions packages/klinklang-server/src/actions/register.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { type Job } from 'bullmq'
import { type WorkerType } from './base'
import { GetHTMLWorker, GetTextWorker, EditWikiWorker } from './wiki'
import { type Actions, type ActionJobData, type ActionJobResult } from './interfaces'
import { ParseTerminologyWorker, UpdateTerminologyWorker } from './terminology'
import { RegexWorker } from './string'
import { SCSSWorker } from './scss'
import { DiscordMessageWorker } from './discord'
import { RequestWorker } from './request'
import { type WorkerType } from './base.js'
import { GetHTMLWorker, GetTextWorker, EditWikiWorker } from './wiki.js'
import { type Actions, type ActionJobData, type ActionJobResult } from './interfaces.js'
import { ParseTerminologyWorker, UpdateTerminologyWorker } from './terminology.js'
import { RegexWorker } from './string.js'
import { SCSSWorker } from './scss.js'
import { DiscordMessageWorker } from './discord.js'
import { RequestWorker } from './request.js'

interface ActionRegisterMap {
set: <T extends Actions>(key: T['actionType'], value: WorkerType<T>) => void
Expand Down
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/actions/request.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ActionWorker } from './base'
import { ActionWorker } from './base.js'

export interface RequestActionInput {
method: string
Expand Down
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/actions/scss.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import sass from 'sass'
import { ActionWorker } from './base'
import { ActionWorker } from './base.js'

export interface SCSSActionInput {
scss: string
Expand Down
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/actions/string.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import safe from 'safe-regex'
import { ActionWorker } from './base'
import { ActionWorker } from './base.js'

export interface RegExpActionInput {
text: string
Expand Down
4 changes: 2 additions & 2 deletions packages/klinklang-server/src/actions/terminology.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { load } from 'cheerio'
import type { GetHTMLActionOutput } from './wiki'
import { ActionWorker } from './base'
import type { GetHTMLActionOutput } from './wiki.js'
import { ActionWorker } from './base.js'
import { type PrismaPromise } from '@mudkipme/klinklang-prisma'
import { diContainer } from '@fastify/awilix'

Expand Down
8 changes: 4 additions & 4 deletions packages/klinklang-server/src/actions/wiki.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { ActionWorker } from './base'
import type MediaWikiClient from '../lib/mediawiki/client'
import { type Actions } from './interfaces'
import { type EditRequest, type EditResponse } from '../lib/mediawiki/api'
import { ActionWorker } from './base.js'
import type MediaWikiClient from '../lib/mediawiki/client.js'
import { type Actions } from './interfaces.js'
import { type EditRequest, type EditResponse } from '../lib/mediawiki/api.js'
import { diContainer } from '@fastify/awilix'

export interface GetHTMLActionInput {
Expand Down
4 changes: 2 additions & 2 deletions packages/klinklang-server/src/commands/bootstrap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { join } from 'path'
import yaml from 'js-yaml'
import { findWorkspaceDir } from '@pnpm/find-workspace-dir'
import { type Prisma, type PrismaClient } from '@mudkipme/klinklang-prisma'
import { type WorkflowTrigger } from '../models/workflow-type'
import { type Config } from '../lib/config'
import { type WorkflowTrigger } from '../models/workflow-type.js'
import { type Config } from '../lib/config.js'
import { v4 as uuidv4 } from 'uuid'

export interface WorkflowConfig {
Expand Down
16 changes: 8 additions & 8 deletions packages/klinklang-server/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ import fastifyCookie from '@fastify/cookie'
import fastifySession from '@fastify/session'
import fastifyStatic from '@fastify/static'
import { diContainer, fastifyAwilixPlugin } from '@fastify/awilix'
import oauth from './routes/oauth'
import userRoutes from './routes/user'
import oauth from './routes/oauth.js'
import userRoutes from './routes/user.js'
import { findWorkspaceDir } from '@pnpm/find-workspace-dir'
import workflowRoutes from './routes/workflow'
import terminologyRoutes from './routes/terminology'
import bootstrap from './commands/bootstrap'
import { start } from './lib/eventbus'
import { register } from './lib/register'
import patchBigInt from './lib/ext'
import workflowRoutes from './routes/workflow.js'
import terminologyRoutes from './routes/terminology.js'
import bootstrap from './commands/bootstrap.js'
import { start } from './lib/eventbus.js'
import { register } from './lib/register.js'
import patchBigInt from './lib/ext.js'

const launch = async (): Promise<void> => {
await register()
Expand Down
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/lib/database.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { PrismaClient } from '@mudkipme/klinklang-prisma'
import { type Config } from './config'
import { type Config } from './config.js'

export type { PrismaClient }

Expand Down
10 changes: 5 additions & 5 deletions packages/klinklang-server/src/lib/eventbus.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { isEqual } from 'lodash'
import { isEqual } from 'lodash-es'
import { type ConsumerConfig, type Consumer, Kafka, type KafkaConfig, type EachMessagePayload } from 'kafkajs'
import { test as jsonTest } from 'json-predicate'
import { setTimeout } from 'timers/promises'
import { type Logger } from 'pino'
import { type Config } from './config'
import { type Config } from './config.js'
import { type Workflow, type PrismaClient } from '@mudkipme/klinklang-prisma'
import { type MessageType, type Notification } from './notification'
import { type WorkflowTrigger } from '../models/workflow-type'
import { createInstanceWithWorkflow } from '../models/workflow'
import { type MessageType, type Notification } from './notification.js'
import { type WorkflowTrigger } from '../models/workflow-type.js'
import { createInstanceWithWorkflow } from '../models/workflow.js'

export default class Subscriber {
#kafka: Kafka
Expand Down
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/lib/logger.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import pino, { type Logger } from 'pino'
import { type Logger, pino } from 'pino'

export const getLogger = (): Logger => pino()
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/lib/mediawiki/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { fetch, type BodyInit } from 'undici'
import createError from '@fastify/error'
import { type Token } from 'oauth-1.0a'
import type OAuth from 'oauth-1.0a'
import { type ParseResponse, type QueryRevisionResponse, type QueryTokenResponse, type EditRequest, type EditResponse } from './api'
import { type ParseResponse, type QueryRevisionResponse, type QueryTokenResponse, type EditRequest, type EditResponse } from './api.js'

export interface MediaWikiClientOptions {
apiRoot: string
Expand Down
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/lib/notification.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { EventEmitter } from 'events'
import type Redis from 'ioredis'
import { type Redis } from 'ioredis'

export type MessageType =
| {
Expand Down
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/lib/oauth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import OAuth from 'oauth-1.0a'
import crypto from 'crypto'
import { fetch, type BodyInit, type Response } from 'undici'
import jwt from 'jsonwebtoken'
import { type Config } from './config'
import { type Config } from './config.js'

export interface OAuthIdentity {
iss: string
Expand Down
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/lib/queue.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Queue } from 'bullmq'
import { type Config } from './config'
import { type Config } from './config.js'

const queueName = 'klinklang-queue'

Expand Down
4 changes: 2 additions & 2 deletions packages/klinklang-server/src/lib/redis.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Redis from 'ioredis'
import { type Config } from './config'
import { Redis } from 'ioredis'
import { type Config } from './config.js'

export const getRedis = ({ config }: { config: Config }): Redis => new Redis({
...config.get('redis'),
Expand Down
22 changes: 11 additions & 11 deletions packages/klinklang-server/src/lib/register.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import { diContainer } from '@fastify/awilix'
import { asClass, asFunction, asValue } from 'awilix'
import { TerminologyService } from '../services/terminology'
import { loadConfig } from './config'
import { getClient as getDatabaseClient } from './database'
import { getClient as getDiscordClient } from './discord'
import { getNotification } from './notification'
import { MediaWikiOAuth } from './oauth'
import { getQueue } from './queue'
import { getRedis } from './redis'
import { WikiService } from '../services/wiki'
import { getWorker } from './worker'
import { getLogger } from './logger'
import { TerminologyService } from '../services/terminology.js'
import { loadConfig } from './config.js'
import { getClient as getDatabaseClient } from './database.js'
import { getClient as getDiscordClient } from './discord.js'
import { getNotification } from './notification.js'
import { MediaWikiOAuth } from './oauth.js'
import { getQueue } from './queue.js'
import { getRedis } from './redis.js'
import { WikiService } from '../services/wiki.js'
import { getWorker } from './worker.js'
import { getLogger } from './logger.js'

export async function register (): Promise<void> {
diContainer.register({
Expand Down
4 changes: 2 additions & 2 deletions packages/klinklang-server/src/lib/worker.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Worker, type Job } from 'bullmq'
import { type Logger } from 'pino'
import { type Config } from './config'
import { processAction } from '../actions/register'
import { type Config } from './config.js'
import { processAction } from '../actions/register.js'

const queueName = 'klinklang-queue'

Expand Down
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/middlewares/user.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { type FastifyRequest, type RouteGenericInterface, type FastifyReply } from 'fastify'
import { unauthorizedError } from '../lib/errors'
import { unauthorizedError } from '../lib/errors.js'

const userMiddleware = <T extends RouteGenericInterface>(requireLogin: boolean) => async function (request: FastifyRequest<T>, reply: FastifyReply) {
if (request.session.userId !== undefined) {
Expand Down
6 changes: 3 additions & 3 deletions packages/klinklang-server/src/models/action.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { render } from '../lib/template'
import { mapValues } from 'lodash'
import { render } from '../lib/template.js'
import { mapValues } from 'lodash-es'
import { JSONPath } from 'jsonpath-plus'
import { type Actions, type ActionJobData } from '../actions/interfaces'
import { type Actions, type ActionJobData } from '../actions/interfaces.js'
import { type Action } from '@mudkipme/klinklang-prisma'

type InputBuildType<T> =
Expand Down
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/models/user.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { omit } from 'lodash'
import { omit } from 'lodash-es'
import { type User } from '@mudkipme/klinklang-prisma'

export function outputUser (user: User): Omit<User, 'token' | 'wikiId'> & { wikiId: string } {
Expand Down
6 changes: 3 additions & 3 deletions packages/klinklang-server/src/models/workflow-instance.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { v4 as uuidv4 } from 'uuid'
import { type Job } from 'bullmq'
import { type WorkflowTrigger } from './workflow-type'
import { type ActionJobData, type ActionJobResult, type Actions } from '../actions/interfaces'
import { buildJobData } from './action'
import { type WorkflowTrigger } from './workflow-type.js'
import { type ActionJobData, type ActionJobResult, type Actions } from '../actions/interfaces.js'
import { buildJobData } from './action.js'
import { type Action } from '@mudkipme/klinklang-prisma'
import { diContainer } from '@fastify/awilix'

Expand Down
6 changes: 3 additions & 3 deletions packages/klinklang-server/src/models/workflow.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { keyBy } from 'lodash'
import { type WorkflowTrigger } from './workflow-type'
import WorkflowInstance from './workflow-instance'
import { keyBy } from 'lodash-es'
import { type WorkflowTrigger } from './workflow-type.js'
import WorkflowInstance from './workflow-instance.js'
import { type Workflow, type Action } from '@mudkipme/klinklang-prisma'
import { diContainer } from '@fastify/awilix'

Expand Down
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/routes/terminology.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { type FastifyPluginAsync, type FastifyRequest } from 'fastify'
import { type TerminologyReplaceInput } from '../services/terminology'
import { type TerminologyReplaceInput } from '../services/terminology.js'

const terminologyRoutes: FastifyPluginAsync = async (fastify) => {
fastify.post('/api/terminology/replace', async (request: FastifyRequest<{ Body: TerminologyReplaceInput }>) => {
Expand Down
4 changes: 2 additions & 2 deletions packages/klinklang-server/src/routes/user.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { type FastifyPluginAsync } from 'fastify'
import userMiddleware from '../middlewares/user'
import { outputUser } from '../models/user'
import userMiddleware from '../middlewares/user.js'
import { outputUser } from '../models/user.js'

const userRoutes: FastifyPluginAsync = async (fastify) => {
fastify.get('/api/user/me', { preHandler: userMiddleware(false) }, async (request, reply) => {
Expand Down
6 changes: 3 additions & 3 deletions packages/klinklang-server/src/routes/workflow.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { createInstanceWithWorkflow, getLinkedActionsOfWorkflow, getWorkflowInstances } from '../models/workflow'
import { createInstanceWithWorkflow, getLinkedActionsOfWorkflow, getWorkflowInstances } from '../models/workflow.js'
import { type FastifyPluginAsync, type FastifyRequest } from 'fastify'
import { forbiddenError, workflowNotFoundError } from '../lib/errors'
import userMiddleware from '../middlewares/user'
import { forbiddenError, workflowNotFoundError } from '../lib/errors.js'
import userMiddleware from '../middlewares/user.js'

const workflowRoutes: FastifyPluginAsync = async (fastify) => {
const prisma = fastify.diContainer.cradle.prisma
Expand Down
2 changes: 1 addition & 1 deletion packages/klinklang-server/src/services/terminology.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { type Terminology, type PrismaClient } from '@mudkipme/klinklang-prisma'
import { type Logger } from 'pino'
import { type MessageType, type Notification } from '../lib/notification'
import { type MessageType, type Notification } from '../lib/notification.js'

export interface TerminologyReplaceInput {
sourceLng: string
Expand Down
6 changes: 3 additions & 3 deletions packages/klinklang-server/src/services/wiki.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { type User } from '@mudkipme/klinklang-prisma'
import { type Token } from 'oauth-1.0a'
import type OAuth from 'oauth-1.0a'
import { type Config } from '../lib/config'
import MediaWikiClient from '../lib/mediawiki/client'
import { type MediaWikiOAuth } from '../lib/oauth'
import { type Config } from '../lib/config.js'
import MediaWikiClient from '../lib/mediawiki/client.js'
import { type MediaWikiOAuth } from '../lib/oauth.js'

export class WikiService {
#apiRoot: string
Expand Down
Loading

0 comments on commit 8c0ee57

Please sign in to comment.