saleor-apps-redis_apl/apps/invoices/scripts/migrations/migration-utils.ts
Lukasz Ostrowski 5e903aed00
Metadata Migrations script (#453)
* Create a package

* wip

* wip

* wip

* wip

* Move migration script to invoices

* Add migration script

* Update SDK to fix getAll method

* Add restoring migration script

* Add migrations consts

* Add changesets

* cr fixes
2023-05-18 14:55:52 +02:00

40 lines
1.1 KiB
TypeScript

/* eslint-disable turbo/no-undeclared-env-vars */
import { createClient } from "../../src/lib/graphql";
import { createSettingsManager } from "../../src/modules/app-configuration/metadata-manager";
import { SaleorCloudAPL } from "@saleor/app-sdk/APL";
export const getMetadataManagerForEnv = (apiUrl: string, appToken: string) => {
const client = createClient(apiUrl, async () => ({
token: appToken,
}));
return createSettingsManager(client);
};
export const safeParse = (json?: string) => {
if (!json) return null;
try {
return JSON.parse(json);
} catch (e) {
return null;
}
};
export const verifyRequiredEnvs = () => {
const requiredEnvs = ["SALEOR_CLOUD_TOKEN", "SALEOR_CLOUD_RESOURCE_URL", "SECRET_KEY"];
if (!requiredEnvs.every((env) => process.env[env])) {
throw new Error(`Missing envs: ${requiredEnvs.join(" | ")}`);
}
};
export const fetchCloudAplEnvs = () => {
const saleorAPL = new SaleorCloudAPL({
token: process.env.SALEOR_CLOUD_TOKEN!,
resourceUrl: process.env.SALEOR_CLOUD_RESOURCE_URL!,
});
return saleorAPL.getAll();
};