hotfix(medusa-js, medusa-react): Fix issue with JS client bundle (#3038)

This commit is contained in:
Kasper Fabricius Kristensen
2023-01-16 17:44:24 +01:00
committed by GitHub
parent 5c6931953a
commit cb25244007
12 changed files with 517 additions and 225 deletions
+9 -4
View File
@@ -1,7 +1,12 @@
module.exports = {
transform: {
"^.+\\.(t|j)sx?$": require.resolve("ts-jest"),
globals: {
"ts-jest": {
diagnostics: false,
isolatedModules: true,
},
},
testRegex: "(/tests/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
transform: {
".(ts|tsx)$": require.resolve("ts-jest/dist/"),
},
testEnvironment: "jsdom",
}
+20 -16
View File
@@ -3,23 +3,30 @@
"version": "1.3.6",
"description": "Client for Medusa Commerce Rest API",
"main": "dist/index.js",
"module": "dist/index.esm.js",
"files": [
"dist/**/*"
],
"module": "dist/index.mjs",
"types": "dist/index.d.ts",
"exports": {
".": {
"import": "./dist/index.mjs",
"require": "./dist/index.js"
},
"./package.json": "./package.json"
},
"scripts": {
"build": "rollup -c --bundleConfigAsCjs",
"build": "tsup src/index.ts",
"prepare": "cross-env NODE_ENV=production yarn run build",
"test": "jest --passWithNoTests"
},
"author": "Oliver Juhl",
"license": "MIT",
"engines": {
"node": ">=12.0.0"
},
"dependencies": {
"axios": "0.26.1",
"form-data": "^4.0.0",
"axios": "^0.24.0",
"qs": "^6.10.3",
"retry-axios": "^2.6.0"
"retry-axios": "^2.6.0",
"uuid": "^9.0.0"
},
"peerDependencies": {
"@medusajs/medusa": "^1.7.3"
@@ -34,15 +41,12 @@
},
"devDependencies": {
"@medusajs/medusa": "^1.7.3",
"@rollup/plugin-commonjs": "^24.0.0",
"@rollup/plugin-node-resolve": "^15.0.1",
"@types/jest": "^26.0.19",
"@types/uuid": "^9.0.0",
"cross-env": "^7.0.3",
"jest": "^26.6.3",
"rollup": "^3.9.1",
"rollup-plugin-terser": "^7.0.2",
"rollup-plugin-typescript2": "^0.34.1",
"typescript": "^4.1.3"
"jest": "^27.4.7",
"ts-jest": "^27.1.5",
"tsup": "^6.5.0",
"typescript": "^4.9.4"
},
"gitHead": "cd1f5afa5aa8c0b15ea957008ee19f1d695cbd2e",
"homepage": "https://docs.medusajs.com/js-client/overview"
-34
View File
@@ -1,34 +0,0 @@
import commonjs from "@rollup/plugin-commonjs"
import resolve from "@rollup/plugin-node-resolve"
import { defineConfig } from "rollup"
import { terser } from "rollup-plugin-terser"
import typescript from "rollup-plugin-typescript2"
const packageJson = require("./package.json")
export default defineConfig({
input: "src/index.ts",
external: ["@medusajs/medusa"],
output: [
{
file: packageJson.main,
format: "cjs",
sourcemap: true,
},
{
file: packageJson.module,
format: "esm",
sourcemap: true,
},
],
plugins: [
terser(),
resolve({
browser: true,
}),
commonjs(),
typescript({
useTsconfigDeclarationDir: true,
}),
],
})
+3 -4
View File
@@ -1,4 +1,5 @@
import MedusaError from "./error"
import KeyManager from "./key-manager"
import Client, { Config } from "./request"
import Admin from "./resources/admin"
import AuthResource from "./resources/auth"
@@ -6,18 +7,17 @@ import CartsResource from "./resources/carts"
import CollectionsResource from "./resources/collections"
import CustomersResource from "./resources/customers"
import GiftCardsResource from "./resources/gift-cards"
import OrdersResource from "./resources/orders"
import OrderEditsResource from "./resources/order-edits"
import OrdersResource from "./resources/orders"
import PaymentCollectionsResource from "./resources/payment-collections"
import PaymentMethodsResource from "./resources/payment-methods"
import ProductsResource from "./resources/products"
import ProductTypesResource from "./resources/product-types"
import ProductsResource from "./resources/products"
import RegionsResource from "./resources/regions"
import ReturnReasonsResource from "./resources/return-reasons"
import ReturnsResource from "./resources/returns"
import ShippingOptionsResource from "./resources/shipping-options"
import SwapsResource from "./resources/swaps"
import KeyManager from "./key-manager"
class Medusa {
private client: Client
@@ -78,5 +78,4 @@ class Medusa {
export default Medusa
export { default as KeyManager } from "./key-manager"
export * from "./typings"
@@ -1,13 +1,11 @@
import {
AdminDeleteUploadsReq,
IAdminPostUploadsFileReq,
AdminDeleteUploadsRes,
AdminPostUploadsDownloadUrlReq,
AdminUploadsDownloadUrlRes,
AdminUploadsRes,
} from "@medusajs/medusa"
import FormData from "form-data"
import { ResponsePromise } from "../../typings"
import { AdminCreateUploadPayload, ResponsePromise } from "../../typings"
import BaseResource from "../base"
class AdminUploadsResource extends BaseResource {
@@ -15,20 +13,30 @@ class AdminUploadsResource extends BaseResource {
"Content-Type": "multipart/form-data",
}
create(file: IAdminPostUploadsFileReq): ResponsePromise<AdminUploadsRes> {
/**
* @description Uploads at least one file to the specific fileservice that is installed in Medusa.
* @param file File or array of files to upload.
* @returns Uploaded file or files.
*/
create(file: AdminCreateUploadPayload): ResponsePromise<AdminUploadsRes> {
const path = `/admin/uploads`
const payload = new FormData()
payload.append("files", file)
const payload = this._createPayload(file)
return this.client.request("POST", path, payload, {}, this.headers)
}
createProtected(file: IAdminPostUploadsFileReq): ResponsePromise<AdminUploadsRes> {
/**
* @description Uploads at least one file with ACL or a non-public bucket to the specific fileservice that is installed in Medusa.
* @param file File or array of files to upload.
* @returns Uploaded file or files.
*/
createProtected(
file: AdminCreateUploadPayload
): ResponsePromise<AdminUploadsRes> {
const path = `/admin/uploads/protected`
const payload = new FormData()
payload.append("files", file)
const payload = this._createPayload(file)
return this.client.request("POST", path, payload, {}, this.headers)
}
@@ -50,6 +58,18 @@ class AdminUploadsResource extends BaseResource {
return this.client.request("POST", path, payload, {}, customHeaders)
}
private _createPayload(file: AdminCreateUploadPayload) {
const payload = new FormData()
if (Array.isArray(file)) {
file.forEach((f) => payload.append("files", f))
} else {
payload.append("files", file)
}
return payload
}
}
export default AdminUploadsResource
+2
View File
@@ -47,3 +47,5 @@ export type InviteUserRolesEnum = `${AdminPostInvitesReq["role"]}`
export type AdminPostInvitesPayload = Omit<AdminPostInvitesReq, "role"> & {
role: InviteUserRolesEnum
}
export type AdminCreateUploadPayload = File | File[]
+1 -2
View File
@@ -2,8 +2,7 @@
"compilerOptions": {
"rootDir": "src",
"module": "esnext",
"target": "es5",
"lib": ["es6", "dom", "es2016", "es2017"],
"target": "ES2015",
"outDir": "./dist",
"declarationDir": "./dist",
"esModuleInterop": true,
+16
View File
@@ -0,0 +1,16 @@
import type { Options } from "tsup"
const config: Options = {
entry: ["src/**/*.ts"],
dts: true,
clean: true,
minify: true,
bundle: true,
sourcemap: true,
format: ["cjs", "esm"],
target: "es2020",
skipNodeModulesBundle: true,
tsconfig: "./tsconfig.json",
}
export default config
@@ -1,6 +1,6 @@
import Medusa from "@medusajs/medusa-js"
import React from "react"
import { QueryClientProvider, QueryClientProviderProps } from "react-query"
import Medusa from "@medusajs/medusa-js"
interface MedusaContextState {
client: Medusa
@@ -1,12 +1,11 @@
import {
AdminDeleteUploadsReq,
IAdminPostUploadsFileReq,
AdminDeleteUploadsRes,
AdminPostUploadsDownloadUrlReq,
AdminUploadsDownloadUrlRes,
AdminUploadsRes,
} from "@medusajs/medusa"
import { Response } from "@medusajs/medusa-js"
import { AdminCreateUploadPayload, Response } from "@medusajs/medusa-js"
import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
import { useMedusa } from "../../../contexts"
import { buildOptions } from "../../utils/buildOptions"
@@ -15,13 +14,13 @@ export const useAdminUploadFile = (
options?: UseMutationOptions<
Response<AdminUploadsRes>,
Error,
IAdminPostUploadsFileReq
AdminCreateUploadPayload
>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation((payload: IAdminPostUploadsFileReq) => {
return useMutation((payload: AdminCreateUploadPayload) => {
return client.admin.uploads.create(payload)
}, buildOptions(queryClient, undefined, options))
}
@@ -30,13 +29,13 @@ export const useAdminUploadProtectedFile = (
options?: UseMutationOptions<
Response<AdminUploadsRes>,
Error,
IAdminPostUploadsFileReq
AdminCreateUploadPayload
>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation((payload: IAdminPostUploadsFileReq) => {
return useMutation((payload: AdminCreateUploadPayload) => {
return client.admin.uploads.createProtected(payload)
}, buildOptions(queryClient, undefined, options))
}