Skip to content

Commit

Permalink
chore(build): Separate Feature Enabling Function
Browse files Browse the repository at this point in the history
Closes #646
  • Loading branch information
byakuren-hijiri committed Aug 1, 2024
1 parent 3ab6f66 commit a1171e2
Showing 1 changed file with 25 additions and 26 deletions.
51 changes: 25 additions & 26 deletions src/pipeline/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,30 @@ import { getCompilerVersion } from "./version";
import { idText } from "../grammar/ast";
import { TactErrorCollection } from "../errors";

export async function enableFeatures(
ctx: CompilerContext,
logger: Logger,
config: ConfigProject,
): Promise<void> {
if (config.options === undefined) {
return;
}
const features = [
{ option: config.options.debug, name: "debug" },
{ option: config.options.masterchain, name: "masterchain" },
{ option: config.options.external, name: "external" },
{ option: config.options.experimental?.inline, name: "inline" },
{ option: config.options.ipfsAbiGetter, name: "ipfsAbiGetter" },
{ option: config.options.interfacesGetter, name: "interfacesGetter" },
];
features.forEach(({ option, name }) => {
if (option) {
logger.error(` > πŸ‘€ Enabling ${name}`);
ctx = featureEnable(ctx, name);
}
});
}

export async function build(args: {
config: ConfigProject;
project: VirtualFileSystem;
Expand All @@ -41,32 +65,7 @@ export async function build(args: {
entrypoint: posixNormalize(config.path),
options: config.options ?? {},
});
if (config.options) {
if (config.options.debug) {
logger.error(" > πŸ‘€ Enabling debug");
ctx = featureEnable(ctx, "debug");
}
if (config.options.masterchain) {
logger.error(" > πŸ‘€ Enabling masterchain");
ctx = featureEnable(ctx, "masterchain");
}
if (config.options.external) {
logger.error(" > πŸ‘€ Enabling external");
ctx = featureEnable(ctx, "external");
}
if (config.options.experimental?.inline) {
logger.error(" > πŸ‘€ Enabling inline");
ctx = featureEnable(ctx, "inline");
}
if (config.options.ipfsAbiGetter) {
logger.error(" > πŸ‘€ Enabling IPFS ABI getter");
ctx = featureEnable(ctx, "ipfsAbiGetter");
}
if (config.options.interfacesGetter) {
logger.error(" > πŸ‘€ Enabling contract interfaces getter");
ctx = featureEnable(ctx, "interfacesGetter");
}
}
enableFeatures(ctx, logger, config);

// Precompile
try {
Expand Down

0 comments on commit a1171e2

Please sign in to comment.