MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / generateDefines

Method generateDefines

tools/mcconfig.js:617–666  ·  view source on GitHub ↗
(tool, prefix, defines)

Source from the content-addressed store, hash-verified

615 this.close();
616 }
617 generateDefines(tool, prefix, defines) {
618 let name;
619
620 for (name in defines) {
621 let value = defines[name];
622 name = name.toUpperCase();
623
624 switch (typeof value) {
625 case "number":
626 case "boolean":
627 this.line(`#define ${prefix + name} (${value})`);
628 break;
629
630 case "string":
631 if ("#" == value.charAt(0))
632 this.line(`#define ${prefix + name} "${value.substring(1)}"`);
633 else
634 this.line(`#define ${prefix + name} ${value}`);
635 break;
636
637 case "object":
638 if (null === value)
639 this.line(`#define ${prefix + name} NULL`);
640 else if (Array.isArray(value)) {
641 if (value.every(item => "number" == typeof item)) {
642 this.write(`#define ${prefix + name} {`);
643 for (let i = 0, length = value.length; i < length; i++) {
644 if (i)
645 this.write(", ");
646 this.write(value[i]);
647 }
648 this.write("}\n");
649 }
650 else
651 if (value.every(item => "string" == typeof item)) {
652 this.write(`#define ${prefix + name} \\\n`);
653 for (let i = 0, length = value.length; i < length; i++) {
654 if (i)
655 this.write("\\\n");
656 this.write(value[i]);
657 }
658 this.write("\n");
659 }
660 }
661 else
662 this.generateDefines(tool, prefix + name + "_", value);
663 break;
664 }
665 }
666 }
667}
668
669class XcodeFile extends PrerequisiteFile {

Callers 1

generateMethod · 0.95

Calls 2

writeMethod · 0.65
lineMethod · 0.45

Tested by

no test coverage detected