chore: Remove FlagRouter from core (#4710)

* Allow nested feature flags

* clean up

* Create loud-wombats-shave.md

* add warning

* Add more tests

* Address PR comments

* add back boolean check

* Replace core flag router with utils one

* lol - actually remove it

* Create eleven-doors-roll.md

---------

Co-authored-by: carlos-r-l-rodrigues <rodrigolr@gmail.com>
This commit is contained in:
Oli Juhlandcarlos-r-l-rodrigues authored and GitHub committed 2023-08-08 13:05:50 +02:00
1 parent 281b0746cf
commit d1e298f5dc
54 files changed
+495 -593

No files matched your search

@@ -1,5 +1,5 @@
import { FlagRouter } from "@medusajs/utils"
import { NextFunction, Request, Response } from "express"
import { FlagRouter } from "../../utils/flag-router"
export function isFeatureFlagEnabled(
flagKey: string
@@ -1,7 +1,7 @@
import { FlagRouter } from "@medusajs/utils"
import { NextFunction, Request, Response } from "express"
import SalesChannelFeatureFlag from "../../loaders/feature-flags/sales-channels"
import { SalesChannelService } from "../../services"
import { FlagRouter } from "../../utils/flag-router"
/**
* Middleware that includes the default sales channel on the request, if no sales channels present
@@ -1,81 +1,81 @@
import { FlagRouter } from "@medusajs/utils"
import { Router } from "express"
import "reflect-metadata"
import { Order } from "../../../.."
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels"
import { FindParams, PaginatedResponse } from "../../../../types/common"
import { FlagRouter } from "../../../../utils/flag-router"
import {
defaultAdminOrdersFields,
defaultAdminOrdersRelations,
} from "../../../../types/orders"
import middlewares, {
transformBody,
transformIncludesOptions,
transformQuery,
} from "../../../middlewares"
import { checkRegisteredModules } from "../../../middlewares/check-registered-modules"
import { AdminOrdersOrderLineItemReservationReq } from "./create-reservation-for-line-item"
import { AdminGetOrdersOrderReservationsParams } from "./get-reservations"
import { AdminGetOrdersParams } from "./list-orders"
import {
AdminPostOrdersOrderSwapsParams,
AdminPostOrdersOrderSwapsReq,
} from "./create-swap"
import {
AdminPostOrdersOrderParams,
AdminPostOrdersOrderReq,
} from "./update-order"
import { AdminPostOrdersOrderCompleteParams } from "./complete-order"
import {
AdminPostOrdersOrderRefundsParams,
AdminPostOrdersOrderRefundsReq,
} from "./refund-payment"
import { AdminPostOrdersOrderCaptureParams } from "./capture-payment"
import {
AdminPostOrdersOrderFulfillmentsParams,
AdminPostOrdersOrderFulfillmentsReq,
} from "./create-fulfillment"
import { AdminPostOrdersOrderFulfillementsCancelParams } from "./cancel-fulfillment"
import { AdminPostOrdersOrderSwapFulfillementsCancelParams } from "./cancel-fulfillment-swap"
import { AdminPostOrdersClaimFulfillmentsCancelParams } from "./cancel-fulfillment-claim"
import {
AdminPostOrdersOrderShipmentParams,
AdminPostOrdersOrderShipmentReq,
} from "./create-shipment"
import {
AdminPostOrdersOrderReturnsParams,
AdminPostOrdersOrderReturnsReq,
} from "./request-return"
import { AdminPostOrdersOrderCancel } from "./cancel-order"
import {
AdminPostOrdersOrderShippingMethodsParams,
AdminPostOrdersOrderShippingMethodsReq,
} from "./add-shipping-method"
import { AdminPostOrdersOrderArchiveParams } from "./archive-order"
import { AdminPostOrdersClaimCancel } from "./cancel-claim"
import { AdminPostOrdersOrderFulfillementsCancelParams } from "./cancel-fulfillment"
import { AdminPostOrdersClaimFulfillmentsCancelParams } from "./cancel-fulfillment-claim"
import { AdminPostOrdersOrderSwapFulfillementsCancelParams } from "./cancel-fulfillment-swap"
import { AdminPostOrdersOrderCancel } from "./cancel-order"
import { AdminPostOrdersSwapCancelParams } from "./cancel-swap"
import { AdminPostOrdersOrderSwapsSwapFulfillmentsParams } from "./fulfill-swap"
import {
AdminPostOrdersOrderSwapsSwapShipmentsParams,
AdminPostOrdersOrderSwapsSwapShipmentsReq,
} from "./create-swap-shipment"
import { AdminPostOrdersOrderSwapsSwapProcessPaymentParams } from "./process-swap-payment"
import { AdminPostOrdersOrderCaptureParams } from "./capture-payment"
import { AdminPostOrdersOrderCompleteParams } from "./complete-order"
import {
AdminPostOrdersOrderClaimsParams,
AdminPostOrdersOrderClaimsReq,
} from "./create-claim"
import { AdminPostOrdersClaimCancel } from "./cancel-claim"
import {
AdminPostOrdersOrderClaimsClaimParams,
AdminPostOrdersOrderClaimsClaimReq,
} from "./update-claim"
import {
AdminPostOrdersOrderClaimsClaimFulfillmentsParams,
AdminPostOrdersOrderClaimsClaimFulfillmentsReq,
} from "./fulfill-claim"
import {
AdminPostOrdersOrderClaimsClaimShipmentsParams,
AdminPostOrdersOrderClaimsClaimShipmentsReq,
} from "./create-claim-shipment"
import {
defaultAdminOrdersFields,
defaultAdminOrdersRelations,
} from "../../../../types/orders"
AdminPostOrdersOrderFulfillmentsParams,
AdminPostOrdersOrderFulfillmentsReq,
} from "./create-fulfillment"
import { AdminOrdersOrderLineItemReservationReq } from "./create-reservation-for-line-item"
import {
AdminPostOrdersOrderShipmentParams,
AdminPostOrdersOrderShipmentReq,
} from "./create-shipment"
import {
AdminPostOrdersOrderSwapsParams,
AdminPostOrdersOrderSwapsReq,
} from "./create-swap"
import {
AdminPostOrdersOrderSwapsSwapShipmentsParams,
AdminPostOrdersOrderSwapsSwapShipmentsReq,
} from "./create-swap-shipment"
import {
AdminPostOrdersOrderClaimsClaimFulfillmentsParams,
AdminPostOrdersOrderClaimsClaimFulfillmentsReq,
} from "./fulfill-claim"
import { AdminPostOrdersOrderSwapsSwapFulfillmentsParams } from "./fulfill-swap"
import { AdminGetOrdersOrderReservationsParams } from "./get-reservations"
import { AdminGetOrdersParams } from "./list-orders"
import { AdminPostOrdersOrderSwapsSwapProcessPaymentParams } from "./process-swap-payment"
import {
AdminPostOrdersOrderRefundsParams,
AdminPostOrdersOrderRefundsReq,
} from "./refund-payment"
import {
AdminPostOrdersOrderReturnsParams,
AdminPostOrdersOrderReturnsReq,
} from "./request-return"
import {
AdminPostOrdersOrderClaimsClaimParams,
AdminPostOrdersOrderClaimsClaimReq,
} from "./update-claim"
import {
AdminPostOrdersOrderParams,
AdminPostOrdersOrderReq,
} from "./update-order"
const route = Router()
@@ -779,3 +779,4 @@ export * from "./refund-payment"
export * from "./request-return"
export * from "./update-claim"
export * from "./update-order"
@@ -1,20 +1,20 @@
import { FlagRouter } from "@medusajs/utils"
import { Router } from "express"
import "reflect-metadata"
import { PriceList, Product } from "../../../.."
import TaxInclusivePricingFeatureFlag from "../../../../loaders/feature-flags/tax-inclusive-pricing"
import { DeleteResponse, PaginatedResponse } from "../../../../types/common"
import middlewares, {
transformBody,
transformQuery,
} from "../../../middlewares"
import { AdminGetPriceListPaginationParams } from "./list-price-lists"
import { AdminGetPriceListsPriceListProductsParams } from "./list-price-list-products"
import {
defaultAdminProductFields,
defaultAdminProductRelations,
} from "../products"
import { AdminPostPriceListsPriceListReq } from "./create-price-list"
import { FlagRouter } from "../../../../utils/flag-router"
import TaxInclusivePricingFeatureFlag from "../../../../loaders/feature-flags/tax-inclusive-pricing"
import { AdminGetPriceListsPriceListProductsParams } from "./list-price-list-products"
import { AdminGetPriceListPaginationParams } from "./list-price-lists"
const route = Router()
@@ -280,8 +280,9 @@ export type AdminPriceListsProductsListRes = PaginatedResponse & {
export * from "./add-prices-batch"
export * from "./create-price-list"
export * from "./delete-price-list"
export * from "./delete-prices-batch"
export * from "./get-price-list"
export * from "./list-price-list-products"
export * from "./list-price-lists"
export * from "./update-price-list"
export * from "./delete-prices-batch"
export * from "./list-price-list-products"
@@ -1,14 +1,14 @@
import "reflect-metadata"
import { FindParams, PaginatedResponse } from "../../../../types/common"
import { Product, ProductTag, ProductType, ProductVariant } from "../../../.."
import { FindParams, PaginatedResponse } from "../../../../types/common"
import middlewares, { transformQuery } from "../../../middlewares"
import { AdminGetProductsParams } from "./list-products"
import { FlagRouter } from "../../../../utils/flag-router"
import { FlagRouter } from "@medusajs/utils"
import { Router } from "express"
import { validateSalesChannelsExist } from "../../../middlewares/validators/sales-channel-existence"
import { PricedProduct } from "../../../../types/pricing"
import { validateSalesChannelsExist } from "../../../middlewares/validators/sales-channel-existence"
import { AdminGetProductsParams } from "./list-products"
const route = Router()
@@ -407,3 +407,4 @@ export * from "./set-metadata"
export * from "./update-option"
export * from "./update-product"
export * from "./update-variant"
@@ -1,10 +1,10 @@
import { FlagRouter } from "@medusajs/utils"
import { Router } from "express"
import "reflect-metadata"
import { Region } from "../../../.."
import TaxInclusivePricingFeatureFlag from "../../../../loaders/feature-flags/tax-inclusive-pricing"
import { DeleteResponse, PaginatedResponse } from "../../../../types/common"
import middlewares from "../../../middlewares"
import "reflect-metadata"
import { FlagRouter } from "../../../../utils/flag-router"
import TaxInclusivePricingFeatureFlag from "../../../../loaders/feature-flags/tax-inclusive-pricing"
const route = Router()
@@ -204,9 +204,10 @@ export class AdminGetRegionsRegionFulfillmentOptionsRes {
fulfillment_options: FulfillmentOption[]
}
export * from "./add-country"
export * from "./add-fulfillment-provider"
export * from "./add-payment-provider"
export * from "./create-region"
export * from "./list-regions"
export * from "./update-region"
export * from "./create-region"
export * from "./add-country"
export * from "./add-payment-provider"
export * from "./add-fulfillment-provider"
@@ -1,9 +1,9 @@
import { FlagRouter } from "@medusajs/utils"
import { Router } from "express"
import { ShippingOption } from "../../../.."
import TaxInclusivePricingFeatureFlag from "../../../../loaders/feature-flags/tax-inclusive-pricing"
import { DeleteResponse, PaginatedResponse } from "../../../../types/common"
import middlewares from "../../../middlewares"
import { FlagRouter } from "../../../../utils/flag-router"
import TaxInclusivePricingFeatureFlag from "../../../../loaders/feature-flags/tax-inclusive-pricing"
const route = Router()
@@ -139,3 +139,4 @@ export * from "./delete-shipping-option"
export * from "./get-shipping-option"
export * from "./list-shipping-options"
export * from "./update-shipping-option"
@@ -1,12 +1,12 @@
import { ModulesHelper } from "@medusajs/modules-sdk"
import { FlagRouter } from "@medusajs/utils"
import { defaultRelationsExtended } from "."
import {
FulfillmentProviderService,
PaymentProviderService,
StoreService,
FulfillmentProviderService,
PaymentProviderService,
StoreService,
} from "../../../../services"
import { ExtendedStoreDTO } from "../../../../types/store"
import { FlagRouter } from "../../../../utils/flag-router"
/**
* @oas [get] /admin/store
@@ -17,6 +17,7 @@ import reqIp from "request-ip"
import { EntityManager } from "typeorm"
import { Logger } from "@medusajs/types"
import { FlagRouter } from "@medusajs/utils"
import { defaultStoreCartFields, defaultStoreCartRelations } from "."
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels"
import { Cart, LineItem } from "../../../../models"
@@ -28,7 +29,6 @@ import {
import { CartCreateProps } from "../../../../types/cart"
import { cleanResponseData } from "../../../../utils/clean-response-data"
import { FeatureFlagDecorators } from "../../../../utils/feature-flag-decorators"
import { FlagRouter } from "../../../../utils/flag-router"
/**
* @oas [post] /store/carts
@@ -1,10 +1,10 @@
import { FlagRouter } from "@medusajs/utils"
import { AwilixContainer } from "awilix"
import { EntityManager } from "typeorm"
import { Cart } from "../../../../../../models"
import { CartService, LineItemService } from "../../../../../../services"
import { WithRequiredProperty } from "../../../../../../types/common"
import { IdempotencyCallbackResult } from "../../../../../../types/idempotency-key"
import { FlagRouter } from "../../../../../../utils/flag-router"
import { defaultStoreCartFields, defaultStoreCartRelations } from "../../index"
export const CreateLineItemSteps = {
@@ -2,17 +2,17 @@ import "reflect-metadata"
import middlewares, { transformStoreQuery } from "../../../middlewares"
import { FlagRouter } from "../../../../utils/flag-router"
import { FlagRouter } from "@medusajs/utils"
import { Router } from "express"
import { Product } from "../../../.."
import { PaginatedResponse } from "../../../../types/common"
import { PricedProduct } from "../../../../types/pricing"
import { Product } from "../../../.."
import { Router } from "express"
import { StoreGetProductsParams } from "./list-products"
import { StoreGetProductsProductParams } from "./get-product"
import { extendRequestParams } from "../../../middlewares/publishable-api-key/extend-request-params"
import { validateProductSalesChannelAssociation } from "../../../middlewares/publishable-api-key/validate-product-sales-channel-association"
import { validateSalesChannelParam } from "../../../middlewares/publishable-api-key/validate-sales-channel-param"
import { withDefaultSalesChannel } from "../../../middlewares/with-default-sales-channel"
import { StoreGetProductsProductParams } from "./get-product"
import { StoreGetProductsParams } from "./list-products"
const route = Router()