create-rstack 1.7.7 → 1.7.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -1
- package/dist/index.js +27 -7
- package/package.json +2 -2
- package/template-biome/AGENTS.md +2 -2
- package/template-eslint/AGENTS.md +1 -1
- package/template-prettier/AGENTS.md +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -21,11 +21,12 @@ export declare function checkCancel<T>(value: unknown): T;
|
|
|
21
21
|
* @param isMergePackageJson Merge package.json files
|
|
22
22
|
* @param skipFiles Files to skip
|
|
23
23
|
*/
|
|
24
|
-
export declare function copyFolder({ from, to, version, packageName, isMergePackageJson, skipFiles, }: {
|
|
24
|
+
export declare function copyFolder({ from, to, version, packageName, templateParameters, isMergePackageJson, skipFiles, }: {
|
|
25
25
|
from: string;
|
|
26
26
|
to: string;
|
|
27
27
|
version?: string | Record<string, string>;
|
|
28
28
|
packageName?: string;
|
|
29
|
+
templateParameters?: Record<string, string>;
|
|
29
30
|
isMergePackageJson?: boolean;
|
|
30
31
|
skipFiles?: string[];
|
|
31
32
|
}): void;
|
package/dist/index.js
CHANGED
|
@@ -1647,7 +1647,10 @@ async function create({ name, root, templates, skipFiles, getTemplateName, mapES
|
|
|
1647
1647
|
if (argv.help) return void logHelpMessage(name, templates);
|
|
1648
1648
|
const cwd = process.cwd();
|
|
1649
1649
|
const pkgInfo = pkgFromUserAgent(process.env.npm_config_user_agent);
|
|
1650
|
-
const
|
|
1650
|
+
const packageManager = pkgInfo ? pkgInfo.name : 'npm';
|
|
1651
|
+
const templateParameters = {
|
|
1652
|
+
packageManager
|
|
1653
|
+
};
|
|
1651
1654
|
if (!version) version = (await readPackageJson(root)).version;
|
|
1652
1655
|
const projectName = argv.dir ?? checkCancel(await he({
|
|
1653
1656
|
message: 'Project name or path',
|
|
@@ -1686,13 +1689,15 @@ async function create({ name, root, templates, skipFiles, getTemplateName, mapES
|
|
|
1686
1689
|
from: commonFolder,
|
|
1687
1690
|
to: distFolder,
|
|
1688
1691
|
version,
|
|
1689
|
-
skipFiles
|
|
1692
|
+
skipFiles,
|
|
1693
|
+
templateParameters
|
|
1690
1694
|
});
|
|
1691
1695
|
copyFolder({
|
|
1692
1696
|
from: srcFolder,
|
|
1693
1697
|
to: distFolder,
|
|
1694
1698
|
version,
|
|
1695
1699
|
packageName,
|
|
1700
|
+
templateParameters,
|
|
1696
1701
|
skipFiles
|
|
1697
1702
|
});
|
|
1698
1703
|
const packageRoot = node_path.resolve(src_dirname, '..');
|
|
@@ -1713,6 +1718,7 @@ async function create({ name, root, templates, skipFiles, getTemplateName, mapES
|
|
|
1713
1718
|
to: distFolder,
|
|
1714
1719
|
version,
|
|
1715
1720
|
skipFiles,
|
|
1721
|
+
templateParameters,
|
|
1716
1722
|
isMergePackageJson: true
|
|
1717
1723
|
});
|
|
1718
1724
|
agentsMdSearchDirs.push(toolFolder);
|
|
@@ -1724,6 +1730,7 @@ async function create({ name, root, templates, skipFiles, getTemplateName, mapES
|
|
|
1724
1730
|
to: distFolder,
|
|
1725
1731
|
version,
|
|
1726
1732
|
skipFiles,
|
|
1733
|
+
templateParameters,
|
|
1727
1734
|
isMergePackageJson: true
|
|
1728
1735
|
});
|
|
1729
1736
|
agentsMdSearchDirs.push(toolFolder);
|
|
@@ -1733,13 +1740,13 @@ async function create({ name, root, templates, skipFiles, getTemplateName, mapES
|
|
|
1733
1740
|
if (agentsFiles.length > 0) {
|
|
1734
1741
|
const mergedAgents = mergeAgentsFiles(agentsFiles);
|
|
1735
1742
|
const agentsPath = node_path.join(distFolder, 'AGENTS.md');
|
|
1736
|
-
node_fs.writeFileSync(agentsPath, `${mergedAgents}\n`);
|
|
1743
|
+
node_fs.writeFileSync(agentsPath, `${replacePlaceholder(mergedAgents, templateParameters)}\n`);
|
|
1737
1744
|
}
|
|
1738
1745
|
const nextSteps = noteInformation ? noteInformation : [
|
|
1739
1746
|
`1. ${picocolors_default().cyan(`cd ${targetDir}`)}`,
|
|
1740
1747
|
`2. ${picocolors_default().cyan('git init')} ${picocolors_default().dim('(optional)')}`,
|
|
1741
|
-
`3. ${picocolors_default().cyan(`${
|
|
1742
|
-
`4. ${picocolors_default().cyan(`${
|
|
1748
|
+
`3. ${picocolors_default().cyan(`${packageManager} install`)}`,
|
|
1749
|
+
`4. ${picocolors_default().cyan(`${packageManager} run dev`)}`
|
|
1743
1750
|
];
|
|
1744
1751
|
if (nextSteps.length) Me(nextSteps.map((step)=>picocolors_default().reset(step)).join('\n'), 'Next steps');
|
|
1745
1752
|
Se('All set, happy coding!');
|
|
@@ -1763,7 +1770,13 @@ function mergePackageJson(targetPackage, extraPackage) {
|
|
|
1763
1770
|
])if (key in mergedJson) mergedJson[key] = sortObjectKeys(mergedJson[key]);
|
|
1764
1771
|
node_fs.writeFileSync(targetPackage, `${JSON.stringify(mergedJson, null, 2)}\n`);
|
|
1765
1772
|
}
|
|
1766
|
-
|
|
1773
|
+
const isMarkdown = (file)=>file.endsWith('.md') || file.endsWith('.mdx');
|
|
1774
|
+
const replacePlaceholder = (content, templateParameters)=>{
|
|
1775
|
+
let result = content;
|
|
1776
|
+
for (const key of Object.keys(templateParameters))result = result.replace(new RegExp(`{{ ${key} }}`, 'g'), templateParameters[key]);
|
|
1777
|
+
return result;
|
|
1778
|
+
};
|
|
1779
|
+
function copyFolder({ from, to, version, packageName, templateParameters, isMergePackageJson, skipFiles = [] }) {
|
|
1767
1780
|
const renameFiles = {
|
|
1768
1781
|
gitignore: '.gitignore'
|
|
1769
1782
|
};
|
|
@@ -1783,6 +1796,7 @@ function copyFolder({ from, to, version, packageName, isMergePackageJson, skipFi
|
|
|
1783
1796
|
if (stat.isDirectory()) copyFolder({
|
|
1784
1797
|
from: srcFile,
|
|
1785
1798
|
to: distFile,
|
|
1799
|
+
templateParameters,
|
|
1786
1800
|
version,
|
|
1787
1801
|
skipFiles
|
|
1788
1802
|
});
|
|
@@ -1791,7 +1805,13 @@ function copyFolder({ from, to, version, packageName, isMergePackageJson, skipFi
|
|
|
1791
1805
|
if (isMergePackageJson && node_fs.existsSync(targetPackage)) mergePackageJson(targetPackage, srcFile);
|
|
1792
1806
|
else node_fs.copyFileSync(srcFile, distFile);
|
|
1793
1807
|
updatePackageJson(distFile, version, packageName);
|
|
1794
|
-
} else
|
|
1808
|
+
} else {
|
|
1809
|
+
node_fs.copyFileSync(srcFile, distFile);
|
|
1810
|
+
if (templateParameters && isMarkdown(distFile)) {
|
|
1811
|
+
const content = node_fs.readFileSync(distFile, 'utf-8');
|
|
1812
|
+
node_fs.writeFileSync(distFile, replacePlaceholder(content, templateParameters));
|
|
1813
|
+
}
|
|
1814
|
+
}
|
|
1795
1815
|
}
|
|
1796
1816
|
}
|
|
1797
1817
|
const isStableVersion = (version)=>[
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-rstack",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.9",
|
|
4
4
|
"description": "Create a new Rstack project",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"dev": "rslib build --watch",
|
|
28
28
|
"lint": "biome check .",
|
|
29
29
|
"lint:write": "biome check . --write",
|
|
30
|
-
"prepare": "simple-git-hooks &&
|
|
30
|
+
"prepare": "simple-git-hooks && pnpm run build",
|
|
31
31
|
"test": "rstest run",
|
|
32
32
|
"bump": "npx bumpp"
|
|
33
33
|
},
|
package/template-biome/AGENTS.md
CHANGED