feat: custom logger (#13156)
* feat: custom logger * mock log * unit test * FF and jobs loader * unit test * add to ResourceLoader * get from container * mock * rm log * default logger mock * link loaders, express * comments * initialize container as first step * db conn * test * initialize start * plugin build using default logger * ignore .medusa * revert ignroe --------- Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
This commit is contained in:
co-authored by
Oli Juhl
parent
9412669e65
commit
e2213448ac
@@ -1,5 +1,6 @@
|
||||
import { Compiler } from "@medusajs/framework/build-tools"
|
||||
import { logger } from "@medusajs/framework/logger"
|
||||
|
||||
export default async function build({ directory }: { directory: string }) {
|
||||
logger.info("Starting build...")
|
||||
const compiler = new Compiler(directory, logger)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { logger } from "@medusajs/framework/logger"
|
||||
import type { Logger } from "@medusajs/framework/types"
|
||||
import {
|
||||
ContainerRegistrationKeys,
|
||||
defineMikroOrmCliConfig,
|
||||
DmlEntity,
|
||||
dynamicImport,
|
||||
@@ -11,6 +12,7 @@ import { dirname, join } from "path"
|
||||
|
||||
import { MetadataStorage } from "@mikro-orm/core"
|
||||
import { MikroORM } from "@mikro-orm/postgresql"
|
||||
import { initializeContainer } from "../../../loaders"
|
||||
|
||||
const TERMINAL_SIZE = process.stdout.columns
|
||||
|
||||
@@ -18,6 +20,11 @@ const TERMINAL_SIZE = process.stdout.columns
|
||||
* Generate migrations for all scanned modules in a plugin
|
||||
*/
|
||||
const main = async function ({ directory }) {
|
||||
const container = await initializeContainer(directory, {
|
||||
skipDbConnection: true,
|
||||
})
|
||||
const logger = container.resolve(ContainerRegistrationKeys.LOGGER)
|
||||
|
||||
try {
|
||||
const moduleDescriptors = [] as {
|
||||
serviceName: string
|
||||
@@ -46,14 +53,14 @@ const main = async function ({ directory }) {
|
||||
*/
|
||||
logger.info("Generating migrations...")
|
||||
|
||||
await generateMigrations(moduleDescriptors)
|
||||
await generateMigrations(moduleDescriptors, logger)
|
||||
|
||||
console.log(new Array(TERMINAL_SIZE).join("-"))
|
||||
logger.log(new Array(TERMINAL_SIZE).join("-"))
|
||||
logger.info("Migrations generated")
|
||||
|
||||
process.exit()
|
||||
} catch (error) {
|
||||
console.log(new Array(TERMINAL_SIZE).join("-"))
|
||||
logger.log(new Array(TERMINAL_SIZE).join("-"))
|
||||
|
||||
logger.error(error.message, error)
|
||||
process.exit(1)
|
||||
@@ -101,7 +108,8 @@ async function generateMigrations(
|
||||
serviceName: string
|
||||
migrationsPath: string
|
||||
entities: any[]
|
||||
}[] = []
|
||||
}[] = [],
|
||||
logger: Logger
|
||||
) {
|
||||
const DB_HOST = process.env.DB_HOST ?? "localhost"
|
||||
const DB_USERNAME = process.env.DB_USERNAME ?? ""
|
||||
|
||||
+18
-1
@@ -1,9 +1,24 @@
|
||||
import { logger } from "@medusajs/framework/logger"
|
||||
import { FileSystem } from "@medusajs/framework/utils"
|
||||
import { join } from "path"
|
||||
import main from "../../generate"
|
||||
|
||||
const logger = {
|
||||
log: jest.fn(),
|
||||
info: jest.fn(),
|
||||
error: jest.fn(),
|
||||
warn: jest.fn(),
|
||||
}
|
||||
|
||||
jest.mock("@medusajs/framework/logger")
|
||||
jest.mock("../../../../../loaders", () => {
|
||||
return {
|
||||
initializeContainer: jest.fn().mockImplementation(() => {
|
||||
return {
|
||||
resolve: jest.fn(() => logger),
|
||||
}
|
||||
}),
|
||||
}
|
||||
})
|
||||
|
||||
describe("plugin-generate", () => {
|
||||
beforeEach(() => {
|
||||
@@ -13,6 +28,8 @@ describe("plugin-generate", () => {
|
||||
.mockImplementation((code?: string | number | null) => {
|
||||
return code as never
|
||||
})
|
||||
|
||||
jest.mock("@medusajs/framework/logger")
|
||||
})
|
||||
|
||||
afterEach(async () => {
|
||||
|
||||
@@ -1,14 +1,18 @@
|
||||
import path from "path"
|
||||
import { Compiler } from "@medusajs/framework/build-tools"
|
||||
import { ContainerRegistrationKeys } from "@medusajs/framework/utils"
|
||||
import * as swcCore from "@swc/core"
|
||||
import { execFile } from "child_process"
|
||||
import { logger } from "@medusajs/framework/logger"
|
||||
import { Compiler } from "@medusajs/framework/build-tools"
|
||||
import path from "path"
|
||||
import { initializeContainer } from "../../loaders"
|
||||
|
||||
export default async function developPlugin({
|
||||
directory,
|
||||
}: {
|
||||
directory: string
|
||||
}) {
|
||||
const container = await initializeContainer(directory)
|
||||
const logger = container.resolve(ContainerRegistrationKeys.LOGGER)
|
||||
|
||||
let isBusy = false
|
||||
const compiler = new Compiler(directory, logger)
|
||||
const parsedConfig = await compiler.loadTSConfigFile()
|
||||
|
||||
Reference in New Issue
Block a user