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

Method generate

tools/mcmanifest.js:1801–1937  ·  view source on GitHub ↗
(tool, typescript = true, javascript = false)

Source from the content-addressed store, hash-verified

1799
1800export class TSConfigFile extends PrerequisiteFile {
1801 generate(tool, typescript = true, javascript = false) {
1802 if (typescript) {
1803 // Build paths map for type resolution
1804 const paths = {};
1805 for (let result of tool.dtsFiles) {
1806 let specifier = result.target;
1807 if (tool.windows)
1808 specifier = specifier.replaceAll("\\", "/");
1809 specifier = tool.unresolvePrefix(specifier);
1810 paths[specifier] = [ result.source.slice(0, -5) ];
1811 }
1812 for (let result of tool.tsFiles) {
1813 let specifier = result.target.slice(0, -4);
1814 if (tool.windows)
1815 specifier = specifier.replaceAll("\\", "/");
1816 specifier = tool.unresolvePrefix(specifier);
1817 paths[specifier] = [ result.source.slice(0, -3) ];
1818 }
1819 for (let result of tool.jsFiles) {
1820 let specifier = result.target.slice(0, -4);
1821 if (tool.windows)
1822 specifier = specifier.replaceAll("\\", "/");
1823 specifier = tool.unresolvePrefix(specifier);
1824 if (!(specifier in paths))
1825 paths[specifier] = [ result.source.slice(0, result.source.lastIndexOf(".")) ];
1826 }
1827 if ("zephyr" === tool.platform) {
1828 paths["embedded:provider/builtin"] = [tool.tmpPath + tool.slash + "mc.devicetree"];
1829 paths["mc/devicetree"] = [tool.tmpPath + tool.slash + "mc.devicetree.js"];
1830 }
1831
1832 // Build base compilerOptions
1833 const compilerOptions = {
1834 forceConsistentCasingInFileNames: true,
1835 module: "preserve",
1836 resolveJsonModule: true,
1837 paths,
1838 lib: ["es2025"],
1839 sourceMap: true,
1840 target: "es2025"
1841 };
1842 if (tool.typescript.tsconfig?.compilerOptions)
1843 Object.assign(compilerOptions, tool.typescript.tsconfig.compilerOptions);
1844
1845 // Write base config (this file = tsconfig-base.json)
1846 const baseJson = { ...tool.typescript.tsconfig, compilerOptions };
1847 delete baseJson.files;
1848 const baseContent = JSON.stringify(baseJson, null, "\t");
1849 this.write(baseContent);
1850 this.close();
1851
1852 // Generate per-file tsconfigs with isolated output directories
1853 const basePath = tool.modulesPath + tool.slash + "tsconfig-base.json";
1854 const tscDir = tool.tmpPath + tool.slash + "tsc";
1855 for (let result of tool.tsFiles) {
1856 const target = result.target;
1857 const targetNoExt = target.slice(0, -4);
1858 const lastSlash = target.lastIndexOf(tool.slash);

Callers

nothing calls this directly

Calls 6

unresolvePrefixMethod · 0.80
sliceMethod · 0.65
writeMethod · 0.65
closeMethod · 0.65
filterMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected