From 363eb59d77d89f09e319ebbd64233e428c3d0d75 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Wed, 1 Jan 2025 15:50:09 -0700 Subject: [PATCH 1/7] fix(init): use package's own name and path for example importmap.html --- bin/jswt-init.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/bin/jswt-init.js b/bin/jswt-init.js index 1b33674..221093e 100755 --- a/bin/jswt-init.js +++ b/bin/jswt-init.js @@ -342,9 +342,8 @@ async function main() { ``, From 94e10991477b328f9632b0ae574fd149bf3bf7f2 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Wed, 1 Jan 2025 16:18:03 -0700 Subject: [PATCH 2/7] fix(init): always include main file's './' prefix --- bin/jswt-init.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bin/jswt-init.js b/bin/jswt-init.js index 221093e..a6542e6 100755 --- a/bin/jswt-init.js +++ b/bin/jswt-init.js @@ -217,7 +217,9 @@ async function main() { let mainIsIndex = indexNames.includes(pkg.main); let mainPath = `${prefix}/${pkgName}.js`; if (!mainIsIndex) { - mainPath = pkg.main; + // ensures that filepath has leading './' + mainPath = Path.relative(".", pkg.main); + mainPath = `./${mainPath}`; } { From 11ad3be7688da0ed9aed1e2e88980cf9ed6bf28a Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Wed, 1 Jan 2025 16:58:55 -0700 Subject: [PATCH 3/7] fix(init): use correct prefix for exports, imports, and tsc paths --- bin/jswt-init.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/bin/jswt-init.js b/bin/jswt-init.js index a6542e6..fe2d4d8 100755 --- a/bin/jswt-init.js +++ b/bin/jswt-init.js @@ -95,6 +95,7 @@ async function main() { jsconfig = await createJsConfig( pkg, tsconfigTxt, + prefix, `${prefix}/${pkgName}.js`, ); } @@ -318,7 +319,7 @@ async function main() { "set", "type=module", `exports[.]=${mainPath}`, - `exports[./*]=./*`, + `exports[./*]=${prefix}/*`, ]; await exec("npm", allArgs); await sortAndWritePackageJson(); @@ -334,6 +335,7 @@ async function main() { "set", "type=module", `imports[${pkg.name}]=${mainPath}`, + `imports[${pkg.name}/]=${prefix}/`, ]; await exec("npm", allArgs); await sortAndWritePackageJson(); @@ -345,7 +347,7 @@ async function main() { ` {`, ` "imports": {`, ` "${pkg.name}": "${mainPath}",`, - ` "${pkg.name}/": "./"`, + ` "${pkg.name}/": "${prefix}/"`, ` }`, ` }`, ``, @@ -628,10 +630,11 @@ async function getLatest20xx() { * @param {Object} pkg * @param {String} pkg.name * @param {String} tsconfigTxt + * @param {String} prefix * @param {String} mainPath * @returns */ -async function createJsConfig(pkg, tsconfigTxt, mainPath) { +async function createJsConfig(pkg, tsconfigTxt, prefix, mainPath) { if (!tsconfigTxt.includes(`"include":`)) { let includables = [ "*.js", @@ -651,7 +654,7 @@ async function createJsConfig(pkg, tsconfigTxt, mainPath) { { let lines = [ ` "${pkg.name}": ["${mainPath}"]`, - ` "${pkg.name}/*": ["./*"]`, + ` "${pkg.name}/*": ["${prefix}/*"]`, ]; let str = lines.join(`,\n`); tsconfigTxt = tsconfigTxt.replace( From 51bf397174203facde14353f38a7bf99809291e2 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Wed, 1 Jan 2025 16:19:16 -0700 Subject: [PATCH 4/7] ref(init): disambiguate module name from file path and basename --- bin/jswt-init.js | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/bin/jswt-init.js b/bin/jswt-init.js index fe2d4d8..e3a8dad 100755 --- a/bin/jswt-init.js +++ b/bin/jswt-init.js @@ -27,12 +27,13 @@ async function main() { process.argv.includes("-g") || process.argv.includes("--global"); let pkg = await readPackageJson(); - let pkgName = pkg.name; - if (pkgName.includes("/")) { + let mainBasename = pkg.name; + if (mainBasename.includes("/")) { let index = 1; - index += pkgName.lastIndexOf("/"); - pkgName = pkgName.slice(index); + index += mainBasename.lastIndexOf("/"); + mainBasename = mainBasename.slice(index); } + let moduleName = toTitleCase(mainBasename); // await Fs.mkdir("./docs", { recursive: true }); // let fh = await Fs.open("./docs/.gitkeep", "a"); @@ -81,9 +82,9 @@ async function main() { "// auto-generated by `jswt reexport`", "// DO NOT EDIT", "", - `import ${pkgName} from "${prefix}/${pkgName}.js";`, + `import ${moduleName} from "${prefix}/${mainBasename}.js";`, "", - `export default ${pkgName};`, + `export default ${moduleName};`, "", ].join("\n"), ); @@ -96,7 +97,7 @@ async function main() { pkg, tsconfigTxt, prefix, - `${prefix}/${pkgName}.js`, + `${prefix}/${mainBasename}.js`, ); } @@ -216,23 +217,22 @@ async function main() { let indexNames = ["index.js", "./index.js"]; let mainIsIndex = indexNames.includes(pkg.main); - let mainPath = `${prefix}/${pkgName}.js`; + let mainFilePath = `${prefix}/${mainBasename}.js`; if (!mainIsIndex) { // ensures that filepath has leading './' - mainPath = Path.relative(".", pkg.main); - mainPath = `./${mainPath}`; + mainFilePath = Path.relative(".", pkg.main); + mainFilePath = `./${mainFilePath}`; } { - let mainName = toTitleCase(pkgName); await initFile( - mainPath, + mainFilePath, [ - `let ${mainName} = {};`, + `let ${moduleName} = {};`, "", - `${mainName}.answer = 42;`, + `${moduleName}.answer = 42;`, "", - `export default ${mainName};`, + `export default ${moduleName};`, "", ].join("\n"), ); @@ -241,7 +241,7 @@ async function main() { let hasIndex = await fileExists("./index.js"); if (!hasIndex) { if (mainIsIndex) { - let allArgs = ["pkg", "set", `main=${mainPath}`]; + let allArgs = ["pkg", "set", `main=${mainFilePath}`]; await exec("npm", allArgs); await sortAndWritePackageJson(); } @@ -287,7 +287,7 @@ async function main() { let allArgs = [ "pkg", "set", - `files[]=${mainPath}`, + `files[]=${mainFilePath}`, `files[]=./bin/*.js`, `files[]=./lib/*.js`, `files[]=./tests/*.js`, @@ -318,7 +318,7 @@ async function main() { "pkg", "set", "type=module", - `exports[.]=${mainPath}`, + `exports[.]=${mainFilePath}`, `exports[./*]=${prefix}/*`, ]; await exec("npm", allArgs); @@ -334,7 +334,7 @@ async function main() { "pkg", "set", "type=module", - `imports[${pkg.name}]=${mainPath}`, + `imports[${pkg.name}]=${mainFilePath}`, `imports[${pkg.name}/]=${prefix}/`, ]; await exec("npm", allArgs); @@ -346,7 +346,7 @@ async function main() { `