@niche-works/dev 0.5.1 → 0.5.3
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/addExports/addExports.cjs.map +1 -1
- package/addExports/addExports.mjs.map +1 -1
- package/addExports/index.d.cts +1 -1
- package/addExports/index.d.mts +1 -1
- package/addJsExtensions/addJsExtensions.cjs.map +1 -1
- package/addJsExtensions/addJsExtensions.mjs.map +1 -1
- package/checkExistence/checkExistence.cjs.map +1 -1
- package/checkExistence/checkExistence.mjs.map +1 -1
- package/createExternalOptionFunction/createExternalOptionFunction.cjs.map +1 -1
- package/createExternalOptionFunction/createExternalOptionFunction.mjs.map +1 -1
- package/createSassClassNameFunction/createSassClassNameFunction.cjs +0 -1
- package/createSassClassNameFunction/createSassClassNameFunction.cjs.map +1 -1
- package/createSassClassNameFunction/createSassClassNameFunction.mjs.map +1 -1
- package/editJsonFile/editJsonFile.cjs.map +1 -1
- package/editJsonFile/editJsonFile.mjs.map +1 -1
- package/generatePublishPackageJson/generatePublishPackageJson.cjs.map +1 -1
- package/generatePublishPackageJson/generatePublishPackageJson.mjs.map +1 -1
- package/generatePublishPackageJson/index.d.cts +1 -1
- package/generatePublishPackageJson/index.d.mts +1 -1
- package/indexes/constants.cjs.map +1 -1
- package/indexes/constants.mjs.map +1 -1
- package/indexes/index.d.cts +1 -1
- package/indexes/index.d.mts +1 -1
- package/indexes/indexes.cjs.map +1 -1
- package/indexes/indexes.mjs.map +1 -1
- package/installFromLocal/index.d.cts +1 -1
- package/installFromLocal/index.d.mts +1 -1
- package/installFromLocal/installFromLocal.cjs.map +1 -1
- package/installFromLocal/installFromLocal.mjs.map +1 -1
- package/isMatchingPath/index.d.cts +1 -1
- package/isMatchingPath/index.d.mts +1 -1
- package/isMatchingPath/isMatchingPath.cjs.map +1 -1
- package/isMatchingPath/isMatchingPath.mjs.map +1 -1
- package/isTargetPath/index.d.cts +1 -1
- package/isTargetPath/index.d.mts +1 -1
- package/isTargetPath/isTargetPath.cjs.map +1 -1
- package/isTargetPath/isTargetPath.mjs.map +1 -1
- package/moveFilesToSubdir/index.d.cts +1 -1
- package/moveFilesToSubdir/index.d.mts +1 -1
- package/moveFilesToSubdir/moveFilesToSubdir.cjs.map +1 -1
- package/moveFilesToSubdir/moveFilesToSubdir.mjs.map +1 -1
- package/package.json +2 -2
- package/removeFiles/removeFiles.cjs.map +1 -1
- package/removeFiles/removeFiles.mjs.map +1 -1
- package/ver/index.d.cts +1 -1
- package/ver/index.d.mts +1 -1
- package/ver/ver.cjs.map +1 -1
- package/ver/ver.mjs.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addExports.cjs","names":["fs","isTargetPath"],"sources":["../../src/addExports/addExports.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport { posix as path } from 'path';\r\nimport isTargetPath from '../isTargetPath';\r\nimport type { AddExportsOptions } from './types';\r\n\r\n/**\r\n * index.tsが配置されているモジュールをpackage.jsonのexportsに追加する\r\n * @param targetPath\r\n * @param options\r\n */\r\nexport default function addExports(\r\n targetPath: string = 'src',\r\n options: AddExportsOptions = {},\r\n) {\r\n let {\r\n packageJsonPath = 'package.json',\r\n include = [],\r\n dist = 'dist',\r\n dryRun,\r\n ...rest\r\n } = options;\r\n\r\n // 処理対象を設定\r\n include = [\r\n // indexファイルを対象\r\n {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /^index.(ts|tsx)$/i,\r\n },\r\n ...include,\r\n ];\r\n\r\n // exportsをpackage.jsonに追加\r\n const exportsIndex = _addExports(targetPath, {\r\n packageJsonPath,\r\n include,\r\n dist,\r\n ...rest,\r\n });\r\n\r\n const packageJson = fs.readJsonSync(packageJsonPath, { encoding: 'utf8' });\r\n packageJson.exports = {};\r\n exportsIndex.sort((a, b) => (a.key > b.key ? 1 : -1));\r\n for (const index of exportsIndex) {\r\n packageJson.exports[index.key ? './' + index.key : '.'] =\r\n './' + index.path + '.js';\r\n }\r\n if (dryRun) {\r\n console.log(packageJson);\r\n } else {\r\n fs.writeJsonSync(packageJsonPath, packageJson, {\r\n encoding: 'utf8',\r\n spaces: 2,\r\n });\r\n }\r\n}\r\n\r\nfunction _addExports(\r\n targetPath: string,\r\n options: AddExportsOptions,\r\n current: string = '',\r\n) {\r\n const { include, exclude, dist = 'dist' } = options;\r\n\r\n const stat = fs.statSync(targetPath);\r\n if (!stat.isDirectory()) {\r\n console.error(`\"${targetPath}\" is not directory.`);\r\n }\r\n const items = fs.readdirSync(targetPath);\r\n items.sort();\r\n const exportsIndex: { key: string; path: string }[] = [];\r\n\r\n for (const item of items) {\r\n const itemPath = path.join(targetPath, item);\r\n const stat = fs.statSync(itemPath);\r\n const { name } = path.parse(itemPath);\r\n\r\n if (stat.isDirectory()) {\r\n // ディレクトリの場合は先に子要素を処理\r\n exportsIndex.push(\r\n ..._addExports(itemPath, options, path.join(current, item)),\r\n );\r\n } else if (isTargetPath(itemPath, { include, exclude })) {\r\n // exportの対象の場合\r\n exportsIndex.push({\r\n key: current,\r\n path: path.join(dist, current, name),\r\n });\r\n }\r\n }\r\n\r\n return exportsIndex;\r\n}\r\n"],"mappings":";;;;;;;;;;;;;AAUA,SAAwB,WACtB,aAAqB,OACrB,UAA6B,
|
|
1
|
+
{"version":3,"file":"addExports.cjs","names":["fs","isTargetPath"],"sources":["../../src/addExports/addExports.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport { posix as path } from 'path';\r\nimport isTargetPath from '../isTargetPath';\r\nimport type { AddExportsOptions } from './types';\r\n\r\n/**\r\n * index.tsが配置されているモジュールをpackage.jsonのexportsに追加する\r\n * @param targetPath\r\n * @param options\r\n */\r\nexport default function addExports(\r\n targetPath: string = 'src',\r\n options: AddExportsOptions = {},\r\n) {\r\n let {\r\n packageJsonPath = 'package.json',\r\n include = [],\r\n dist = 'dist',\r\n dryRun,\r\n ...rest\r\n } = options;\r\n\r\n // 処理対象を設定\r\n include = [\r\n // indexファイルを対象\r\n {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /^index.(ts|tsx)$/i,\r\n },\r\n ...include,\r\n ];\r\n\r\n // exportsをpackage.jsonに追加\r\n const exportsIndex = _addExports(targetPath, {\r\n packageJsonPath,\r\n include,\r\n dist,\r\n ...rest,\r\n });\r\n\r\n const packageJson = fs.readJsonSync(packageJsonPath, { encoding: 'utf8' });\r\n packageJson.exports = {};\r\n exportsIndex.sort((a, b) => (a.key > b.key ? 1 : -1));\r\n for (const index of exportsIndex) {\r\n packageJson.exports[index.key ? './' + index.key : '.'] =\r\n './' + index.path + '.js';\r\n }\r\n if (dryRun) {\r\n console.log(packageJson);\r\n } else {\r\n fs.writeJsonSync(packageJsonPath, packageJson, {\r\n encoding: 'utf8',\r\n spaces: 2,\r\n });\r\n }\r\n}\r\n\r\nfunction _addExports(\r\n targetPath: string,\r\n options: AddExportsOptions,\r\n current: string = '',\r\n) {\r\n const { include, exclude, dist = 'dist' } = options;\r\n\r\n const stat = fs.statSync(targetPath);\r\n if (!stat.isDirectory()) {\r\n console.error(`\"${targetPath}\" is not directory.`);\r\n }\r\n const items = fs.readdirSync(targetPath);\r\n items.sort();\r\n const exportsIndex: { key: string; path: string }[] = [];\r\n\r\n for (const item of items) {\r\n const itemPath = path.join(targetPath, item);\r\n const stat = fs.statSync(itemPath);\r\n const { name } = path.parse(itemPath);\r\n\r\n if (stat.isDirectory()) {\r\n // ディレクトリの場合は先に子要素を処理\r\n exportsIndex.push(\r\n ..._addExports(itemPath, options, path.join(current, item)),\r\n );\r\n } else if (isTargetPath(itemPath, { include, exclude })) {\r\n // exportの対象の場合\r\n exportsIndex.push({\r\n key: current,\r\n path: path.join(dist, current, name),\r\n });\r\n }\r\n }\r\n\r\n return exportsIndex;\r\n}\r\n"],"mappings":";;;;;;;;;;;;;AAUA,SAAwB,WACtB,aAAqB,OACrB,UAA6B,CAAC,GAC9B;CACA,IAAI,EACF,kBAAkB,gBAClB,UAAU,CAAC,GACX,OAAO,QACP,QACA,GAAG,SACD;CAGJ,UAAU,CAER;EACE,WAAW;EACX,WAAW;EACX,YAAY;CACd,GACA,GAAG,OACL;CAGA,MAAM,eAAe,YAAY,YAAY;EAC3C;EACA;EACA;EACA,GAAG;CACL,CAAC;CAED,MAAM,cAAcA,iBAAG,aAAa,iBAAiB,EAAE,UAAU,OAAO,CAAC;CACzE,YAAY,UAAU,CAAC;CACvB,aAAa,MAAM,GAAG,MAAO,EAAE,MAAM,EAAE,MAAM,IAAI,EAAG;CACpD,KAAK,MAAM,SAAS,cAClB,YAAY,QAAQ,MAAM,MAAM,OAAO,MAAM,MAAM,OACjD,OAAO,MAAM,OAAO;CAExB,IAAI,QACF,QAAQ,IAAI,WAAW;MAEvB,iBAAG,cAAc,iBAAiB,aAAa;EAC7C,UAAU;EACV,QAAQ;CACV,CAAC;AAEL;AAEA,SAAS,YACP,YACA,SACA,UAAkB,IAClB;CACA,MAAM,EAAE,SAAS,SAAS,OAAO,WAAW;CAG5C,IAAI,CADSA,iBAAG,SAAS,UACjB,EAAE,YAAY,GACpB,QAAQ,MAAM,IAAI,WAAW,oBAAoB;CAEnD,MAAM,QAAQA,iBAAG,YAAY,UAAU;CACvC,MAAM,KAAK;CACX,MAAM,eAAgD,CAAC;CAEvD,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,WAAW,WAAK,KAAK,YAAY,IAAI;EAC3C,MAAM,OAAOA,iBAAG,SAAS,QAAQ;EACjC,MAAM,EAAE,SAAS,WAAK,MAAM,QAAQ;EAEpC,IAAI,KAAK,YAAY,GAEnB,aAAa,KACX,GAAG,YAAY,UAAU,SAAS,WAAK,KAAK,SAAS,IAAI,CAAC,CAC5D;OACK,IAAIC,kCAAa,UAAU;GAAE;GAAS;EAAQ,CAAC,GAEpD,aAAa,KAAK;GAChB,KAAK;GACL,MAAM,WAAK,KAAK,MAAM,SAAS,IAAI;EACrC,CAAC;CAEL;CAEA,OAAO;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addExports.mjs","names":["path"],"sources":["../../src/addExports/addExports.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport { posix as path } from 'path';\r\nimport isTargetPath from '../isTargetPath';\r\nimport type { AddExportsOptions } from './types';\r\n\r\n/**\r\n * index.tsが配置されているモジュールをpackage.jsonのexportsに追加する\r\n * @param targetPath\r\n * @param options\r\n */\r\nexport default function addExports(\r\n targetPath: string = 'src',\r\n options: AddExportsOptions = {},\r\n) {\r\n let {\r\n packageJsonPath = 'package.json',\r\n include = [],\r\n dist = 'dist',\r\n dryRun,\r\n ...rest\r\n } = options;\r\n\r\n // 処理対象を設定\r\n include = [\r\n // indexファイルを対象\r\n {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /^index.(ts|tsx)$/i,\r\n },\r\n ...include,\r\n ];\r\n\r\n // exportsをpackage.jsonに追加\r\n const exportsIndex = _addExports(targetPath, {\r\n packageJsonPath,\r\n include,\r\n dist,\r\n ...rest,\r\n });\r\n\r\n const packageJson = fs.readJsonSync(packageJsonPath, { encoding: 'utf8' });\r\n packageJson.exports = {};\r\n exportsIndex.sort((a, b) => (a.key > b.key ? 1 : -1));\r\n for (const index of exportsIndex) {\r\n packageJson.exports[index.key ? './' + index.key : '.'] =\r\n './' + index.path + '.js';\r\n }\r\n if (dryRun) {\r\n console.log(packageJson);\r\n } else {\r\n fs.writeJsonSync(packageJsonPath, packageJson, {\r\n encoding: 'utf8',\r\n spaces: 2,\r\n });\r\n }\r\n}\r\n\r\nfunction _addExports(\r\n targetPath: string,\r\n options: AddExportsOptions,\r\n current: string = '',\r\n) {\r\n const { include, exclude, dist = 'dist' } = options;\r\n\r\n const stat = fs.statSync(targetPath);\r\n if (!stat.isDirectory()) {\r\n console.error(`\"${targetPath}\" is not directory.`);\r\n }\r\n const items = fs.readdirSync(targetPath);\r\n items.sort();\r\n const exportsIndex: { key: string; path: string }[] = [];\r\n\r\n for (const item of items) {\r\n const itemPath = path.join(targetPath, item);\r\n const stat = fs.statSync(itemPath);\r\n const { name } = path.parse(itemPath);\r\n\r\n if (stat.isDirectory()) {\r\n // ディレクトリの場合は先に子要素を処理\r\n exportsIndex.push(\r\n ..._addExports(itemPath, options, path.join(current, item)),\r\n );\r\n } else if (isTargetPath(itemPath, { include, exclude })) {\r\n // exportの対象の場合\r\n exportsIndex.push({\r\n key: current,\r\n path: path.join(dist, current, name),\r\n });\r\n }\r\n }\r\n\r\n return exportsIndex;\r\n}\r\n"],"mappings":";;;;;;;;;;;AAUA,SAAwB,WACtB,aAAqB,OACrB,UAA6B,
|
|
1
|
+
{"version":3,"file":"addExports.mjs","names":["path"],"sources":["../../src/addExports/addExports.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport { posix as path } from 'path';\r\nimport isTargetPath from '../isTargetPath';\r\nimport type { AddExportsOptions } from './types';\r\n\r\n/**\r\n * index.tsが配置されているモジュールをpackage.jsonのexportsに追加する\r\n * @param targetPath\r\n * @param options\r\n */\r\nexport default function addExports(\r\n targetPath: string = 'src',\r\n options: AddExportsOptions = {},\r\n) {\r\n let {\r\n packageJsonPath = 'package.json',\r\n include = [],\r\n dist = 'dist',\r\n dryRun,\r\n ...rest\r\n } = options;\r\n\r\n // 処理対象を設定\r\n include = [\r\n // indexファイルを対象\r\n {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /^index.(ts|tsx)$/i,\r\n },\r\n ...include,\r\n ];\r\n\r\n // exportsをpackage.jsonに追加\r\n const exportsIndex = _addExports(targetPath, {\r\n packageJsonPath,\r\n include,\r\n dist,\r\n ...rest,\r\n });\r\n\r\n const packageJson = fs.readJsonSync(packageJsonPath, { encoding: 'utf8' });\r\n packageJson.exports = {};\r\n exportsIndex.sort((a, b) => (a.key > b.key ? 1 : -1));\r\n for (const index of exportsIndex) {\r\n packageJson.exports[index.key ? './' + index.key : '.'] =\r\n './' + index.path + '.js';\r\n }\r\n if (dryRun) {\r\n console.log(packageJson);\r\n } else {\r\n fs.writeJsonSync(packageJsonPath, packageJson, {\r\n encoding: 'utf8',\r\n spaces: 2,\r\n });\r\n }\r\n}\r\n\r\nfunction _addExports(\r\n targetPath: string,\r\n options: AddExportsOptions,\r\n current: string = '',\r\n) {\r\n const { include, exclude, dist = 'dist' } = options;\r\n\r\n const stat = fs.statSync(targetPath);\r\n if (!stat.isDirectory()) {\r\n console.error(`\"${targetPath}\" is not directory.`);\r\n }\r\n const items = fs.readdirSync(targetPath);\r\n items.sort();\r\n const exportsIndex: { key: string; path: string }[] = [];\r\n\r\n for (const item of items) {\r\n const itemPath = path.join(targetPath, item);\r\n const stat = fs.statSync(itemPath);\r\n const { name } = path.parse(itemPath);\r\n\r\n if (stat.isDirectory()) {\r\n // ディレクトリの場合は先に子要素を処理\r\n exportsIndex.push(\r\n ..._addExports(itemPath, options, path.join(current, item)),\r\n );\r\n } else if (isTargetPath(itemPath, { include, exclude })) {\r\n // exportの対象の場合\r\n exportsIndex.push({\r\n key: current,\r\n path: path.join(dist, current, name),\r\n });\r\n }\r\n }\r\n\r\n return exportsIndex;\r\n}\r\n"],"mappings":";;;;;;;;;;;AAUA,SAAwB,WACtB,aAAqB,OACrB,UAA6B,CAAC,GAC9B;CACA,IAAI,EACF,kBAAkB,gBAClB,UAAU,CAAC,GACX,OAAO,QACP,QACA,GAAG,SACD;CAGJ,UAAU,CAER;EACE,WAAW;EACX,WAAW;EACX,YAAY;CACd,GACA,GAAG,OACL;CAGA,MAAM,eAAe,YAAY,YAAY;EAC3C;EACA;EACA;EACA,GAAG;CACL,CAAC;CAED,MAAM,cAAc,GAAG,aAAa,iBAAiB,EAAE,UAAU,OAAO,CAAC;CACzE,YAAY,UAAU,CAAC;CACvB,aAAa,MAAM,GAAG,MAAO,EAAE,MAAM,EAAE,MAAM,IAAI,EAAG;CACpD,KAAK,MAAM,SAAS,cAClB,YAAY,QAAQ,MAAM,MAAM,OAAO,MAAM,MAAM,OACjD,OAAO,MAAM,OAAO;CAExB,IAAI,QACF,QAAQ,IAAI,WAAW;MAEvB,GAAG,cAAc,iBAAiB,aAAa;EAC7C,UAAU;EACV,QAAQ;CACV,CAAC;AAEL;AAEA,SAAS,YACP,YACA,SACA,UAAkB,IAClB;CACA,MAAM,EAAE,SAAS,SAAS,OAAO,WAAW;CAG5C,IAAI,CADS,GAAG,SAAS,UACjB,EAAE,YAAY,GACpB,QAAQ,MAAM,IAAI,WAAW,oBAAoB;CAEnD,MAAM,QAAQ,GAAG,YAAY,UAAU;CACvC,MAAM,KAAK;CACX,MAAM,eAAgD,CAAC;CAEvD,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,WAAWA,MAAK,KAAK,YAAY,IAAI;EAC3C,MAAM,OAAO,GAAG,SAAS,QAAQ;EACjC,MAAM,EAAE,SAASA,MAAK,MAAM,QAAQ;EAEpC,IAAI,KAAK,YAAY,GAEnB,aAAa,KACX,GAAG,YAAY,UAAU,SAASA,MAAK,KAAK,SAAS,IAAI,CAAC,CAC5D;OACK,IAAI,aAAa,UAAU;GAAE;GAAS;EAAQ,CAAC,GAEpD,aAAa,KAAK;GAChB,KAAK;GACL,MAAMA,MAAK,KAAK,MAAM,SAAS,IAAI;EACrC,CAAC;CAEL;CAEA,OAAO;AACT"}
|
package/addExports/index.d.cts
CHANGED
package/addExports/index.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addJsExtensions.cjs","names":["fs"],"sources":["../../src/addJsExtensions/addJsExtensions.ts"],"sourcesContent":["import fg from 'fast-glob';\r\nimport fs from 'fs-extra';\r\n\r\nconst PATTERNS = {\r\n '.js': /(?:from|import)\\s*[\"'](\\.\\.?\\/[^\"']+)[\"']/g,\r\n '.cjs': /require\\([\"'](\\.\\.?\\/[^\"']+)[\"']\\)/g,\r\n};\r\n\r\n/**\r\n * ローカルファイルのimportやrequireに拡張子を付与する\r\n * @param dir\r\n */\r\nexport default async function addJsExtensions(dir: string) {\r\n const files = await fg(`${dir}/**/*.{js,cjs}`);\r\n for (const file of files) {\r\n const content = await fs.readFile(file, 'utf-8');\r\n const ext = file.endsWith('.cjs') ? '.cjs' : '.js';\r\n const fixed = content.replace(PATTERNS[ext], (match, pos1) => {\r\n if (pos1.endsWith(ext)) {\r\n // 既に拡張子あり\r\n return match;\r\n }\r\n // 拡張子を付与\r\n return match.replace(pos1, `${pos1}${ext}`);\r\n });\r\n if (content !== fixed) {\r\n await fs.writeFile(file, fixed);\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;;;;AAGA,MAAM,WAAW;CACf,OAAO;CACP,QAAQ;
|
|
1
|
+
{"version":3,"file":"addJsExtensions.cjs","names":["fs"],"sources":["../../src/addJsExtensions/addJsExtensions.ts"],"sourcesContent":["import fg from 'fast-glob';\r\nimport fs from 'fs-extra';\r\n\r\nconst PATTERNS = {\r\n '.js': /(?:from|import)\\s*[\"'](\\.\\.?\\/[^\"']+)[\"']/g,\r\n '.cjs': /require\\([\"'](\\.\\.?\\/[^\"']+)[\"']\\)/g,\r\n};\r\n\r\n/**\r\n * ローカルファイルのimportやrequireに拡張子を付与する\r\n * @param dir\r\n */\r\nexport default async function addJsExtensions(dir: string) {\r\n const files = await fg(`${dir}/**/*.{js,cjs}`);\r\n for (const file of files) {\r\n const content = await fs.readFile(file, 'utf-8');\r\n const ext = file.endsWith('.cjs') ? '.cjs' : '.js';\r\n const fixed = content.replace(PATTERNS[ext], (match, pos1) => {\r\n if (pos1.endsWith(ext)) {\r\n // 既に拡張子あり\r\n return match;\r\n }\r\n // 拡張子を付与\r\n return match.replace(pos1, `${pos1}${ext}`);\r\n });\r\n if (content !== fixed) {\r\n await fs.writeFile(file, fixed);\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;;;;AAGA,MAAM,WAAW;CACf,OAAO;CACP,QAAQ;AACV;;;;;AAMA,eAA8B,gBAAgB,KAAa;CACzD,MAAM,QAAQ,6BAAS,GAAG,IAAI,eAAe;CAC7C,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,UAAU,MAAMA,iBAAG,SAAS,MAAM,OAAO;EAC/C,MAAM,MAAM,KAAK,SAAS,MAAM,IAAI,SAAS;EAC7C,MAAM,QAAQ,QAAQ,QAAQ,SAAS,OAAO,OAAO,SAAS;GAC5D,IAAI,KAAK,SAAS,GAAG,GAEnB,OAAO;GAGT,OAAO,MAAM,QAAQ,MAAM,GAAG,OAAO,KAAK;EAC5C,CAAC;EACD,IAAI,YAAY,OACd,MAAMA,iBAAG,UAAU,MAAM,KAAK;CAElC;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addJsExtensions.mjs","names":[],"sources":["../../src/addJsExtensions/addJsExtensions.ts"],"sourcesContent":["import fg from 'fast-glob';\r\nimport fs from 'fs-extra';\r\n\r\nconst PATTERNS = {\r\n '.js': /(?:from|import)\\s*[\"'](\\.\\.?\\/[^\"']+)[\"']/g,\r\n '.cjs': /require\\([\"'](\\.\\.?\\/[^\"']+)[\"']\\)/g,\r\n};\r\n\r\n/**\r\n * ローカルファイルのimportやrequireに拡張子を付与する\r\n * @param dir\r\n */\r\nexport default async function addJsExtensions(dir: string) {\r\n const files = await fg(`${dir}/**/*.{js,cjs}`);\r\n for (const file of files) {\r\n const content = await fs.readFile(file, 'utf-8');\r\n const ext = file.endsWith('.cjs') ? '.cjs' : '.js';\r\n const fixed = content.replace(PATTERNS[ext], (match, pos1) => {\r\n if (pos1.endsWith(ext)) {\r\n // 既に拡張子あり\r\n return match;\r\n }\r\n // 拡張子を付与\r\n return match.replace(pos1, `${pos1}${ext}`);\r\n });\r\n if (content !== fixed) {\r\n await fs.writeFile(file, fixed);\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;AAGA,MAAM,WAAW;CACf,OAAO;CACP,QAAQ;
|
|
1
|
+
{"version":3,"file":"addJsExtensions.mjs","names":[],"sources":["../../src/addJsExtensions/addJsExtensions.ts"],"sourcesContent":["import fg from 'fast-glob';\r\nimport fs from 'fs-extra';\r\n\r\nconst PATTERNS = {\r\n '.js': /(?:from|import)\\s*[\"'](\\.\\.?\\/[^\"']+)[\"']/g,\r\n '.cjs': /require\\([\"'](\\.\\.?\\/[^\"']+)[\"']\\)/g,\r\n};\r\n\r\n/**\r\n * ローカルファイルのimportやrequireに拡張子を付与する\r\n * @param dir\r\n */\r\nexport default async function addJsExtensions(dir: string) {\r\n const files = await fg(`${dir}/**/*.{js,cjs}`);\r\n for (const file of files) {\r\n const content = await fs.readFile(file, 'utf-8');\r\n const ext = file.endsWith('.cjs') ? '.cjs' : '.js';\r\n const fixed = content.replace(PATTERNS[ext], (match, pos1) => {\r\n if (pos1.endsWith(ext)) {\r\n // 既に拡張子あり\r\n return match;\r\n }\r\n // 拡張子を付与\r\n return match.replace(pos1, `${pos1}${ext}`);\r\n });\r\n if (content !== fixed) {\r\n await fs.writeFile(file, fixed);\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;AAGA,MAAM,WAAW;CACf,OAAO;CACP,QAAQ;AACV;;;;;AAMA,eAA8B,gBAAgB,KAAa;CACzD,MAAM,QAAQ,MAAM,GAAG,GAAG,IAAI,eAAe;CAC7C,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,UAAU,MAAM,GAAG,SAAS,MAAM,OAAO;EAC/C,MAAM,MAAM,KAAK,SAAS,MAAM,IAAI,SAAS;EAC7C,MAAM,QAAQ,QAAQ,QAAQ,SAAS,OAAO,OAAO,SAAS;GAC5D,IAAI,KAAK,SAAS,GAAG,GAEnB,OAAO;GAGT,OAAO,MAAM,QAAQ,MAAM,GAAG,OAAO,KAAK;EAC5C,CAAC;EACD,IAAI,YAAY,OACd,MAAM,GAAG,UAAU,MAAM,KAAK;CAElC;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkExistence.cjs","names":["fs"],"sources":["../../src/checkExistence/checkExistence.ts"],"sourcesContent":["import fs from 'fs-extra';\r\n\r\n/**\r\n * ディレクトリ、ファイルの存在チェック\r\n * @param targetPaths\r\n * @param options\r\n */\r\nexport default function checkExistence(...targetPaths: string[]) {\r\n return targetPaths.every((targetPath) => {\r\n if (!fs.existsSync(targetPath)) {\r\n console.error(`${targetPath}が存在しません。`);\r\n return false;\r\n }\r\n return true;\r\n });\r\n}\r\n"],"mappings":";;;;;;;;;;AAOA,SAAwB,eAAe,GAAG,aAAuB;
|
|
1
|
+
{"version":3,"file":"checkExistence.cjs","names":["fs"],"sources":["../../src/checkExistence/checkExistence.ts"],"sourcesContent":["import fs from 'fs-extra';\r\n\r\n/**\r\n * ディレクトリ、ファイルの存在チェック\r\n * @param targetPaths\r\n * @param options\r\n */\r\nexport default function checkExistence(...targetPaths: string[]) {\r\n return targetPaths.every((targetPath) => {\r\n if (!fs.existsSync(targetPath)) {\r\n console.error(`${targetPath}が存在しません。`);\r\n return false;\r\n }\r\n return true;\r\n });\r\n}\r\n"],"mappings":";;;;;;;;;;AAOA,SAAwB,eAAe,GAAG,aAAuB;CAC/D,OAAO,YAAY,OAAO,eAAe;EACvC,IAAI,CAACA,iBAAG,WAAW,UAAU,GAAG;GAC9B,QAAQ,MAAM,GAAG,WAAW,SAAS;GACrC,OAAO;EACT;EACA,OAAO;CACT,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkExistence.mjs","names":[],"sources":["../../src/checkExistence/checkExistence.ts"],"sourcesContent":["import fs from 'fs-extra';\r\n\r\n/**\r\n * ディレクトリ、ファイルの存在チェック\r\n * @param targetPaths\r\n * @param options\r\n */\r\nexport default function checkExistence(...targetPaths: string[]) {\r\n return targetPaths.every((targetPath) => {\r\n if (!fs.existsSync(targetPath)) {\r\n console.error(`${targetPath}が存在しません。`);\r\n return false;\r\n }\r\n return true;\r\n });\r\n}\r\n"],"mappings":";;;;;;;;AAOA,SAAwB,eAAe,GAAG,aAAuB;
|
|
1
|
+
{"version":3,"file":"checkExistence.mjs","names":[],"sources":["../../src/checkExistence/checkExistence.ts"],"sourcesContent":["import fs from 'fs-extra';\r\n\r\n/**\r\n * ディレクトリ、ファイルの存在チェック\r\n * @param targetPaths\r\n * @param options\r\n */\r\nexport default function checkExistence(...targetPaths: string[]) {\r\n return targetPaths.every((targetPath) => {\r\n if (!fs.existsSync(targetPath)) {\r\n console.error(`${targetPath}が存在しません。`);\r\n return false;\r\n }\r\n return true;\r\n });\r\n}\r\n"],"mappings":";;;;;;;;AAOA,SAAwB,eAAe,GAAG,aAAuB;CAC/D,OAAO,YAAY,OAAO,eAAe;EACvC,IAAI,CAAC,GAAG,WAAW,UAAU,GAAG;GAC9B,QAAQ,MAAM,GAAG,WAAW,SAAS;GACrC,OAAO;EACT;EACA,OAAO;CACT,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createExternalOptionFunction.cjs","names":["isMatchingPath"],"sources":["../../src/createExternalOptionFunction/createExternalOptionFunction.ts"],"sourcesContent":["import isMatchingPath from '../isMatchingPath';\r\nimport type {\r\n CreateExternalOptionFunctionOptions,\r\n ExternalOptionFunction,\r\n} from './types';\r\n\r\n/**\r\n * rolldownやrollupなどで内部モジュールのimport以外をexternalとして扱うための関数を作る関数\r\n * @param options\r\n */\r\nexport default function createExternalOptionFunction(\r\n options: CreateExternalOptionFunctionOptions = {},\r\n): ExternalOptionFunction {\r\n const { isExternal, isInternal } = options;\r\n return (\r\n source: string,\r\n _importer: string | undefined,\r\n isResolved: boolean,\r\n ) => {\r\n const isMatchingPathOptions = {\r\n conditionOptions: {\r\n source,\r\n importer: _importer,\r\n isResolved,\r\n },\r\n };\r\n if (isMatchingPath(source, isExternal, isMatchingPathOptions)) {\r\n // 外部モジュール扱い\r\n return true;\r\n } else if (isMatchingPath(source, isInternal, isMatchingPathOptions)) {\r\n // 内部モジュール扱い\r\n return;\r\n } else if (!isResolved) {\r\n // 相対パスでもなく、srcディレクトリ配下でもないものは外部モジュール扱い\r\n return (\r\n !source.startsWith('.') &&\r\n !source.startsWith('/') &&\r\n !source.startsWith('src/')\r\n );\r\n }\r\n return;\r\n };\r\n}\r\n"],"mappings":";;;;;;;;AAUA,SAAwB,6BACtB,UAA+C,
|
|
1
|
+
{"version":3,"file":"createExternalOptionFunction.cjs","names":["isMatchingPath"],"sources":["../../src/createExternalOptionFunction/createExternalOptionFunction.ts"],"sourcesContent":["import isMatchingPath from '../isMatchingPath';\r\nimport type {\r\n CreateExternalOptionFunctionOptions,\r\n ExternalOptionFunction,\r\n} from './types';\r\n\r\n/**\r\n * rolldownやrollupなどで内部モジュールのimport以外をexternalとして扱うための関数を作る関数\r\n * @param options\r\n */\r\nexport default function createExternalOptionFunction(\r\n options: CreateExternalOptionFunctionOptions = {},\r\n): ExternalOptionFunction {\r\n const { isExternal, isInternal } = options;\r\n return (\r\n source: string,\r\n _importer: string | undefined,\r\n isResolved: boolean,\r\n ) => {\r\n const isMatchingPathOptions = {\r\n conditionOptions: {\r\n source,\r\n importer: _importer,\r\n isResolved,\r\n },\r\n };\r\n if (isMatchingPath(source, isExternal, isMatchingPathOptions)) {\r\n // 外部モジュール扱い\r\n return true;\r\n } else if (isMatchingPath(source, isInternal, isMatchingPathOptions)) {\r\n // 内部モジュール扱い\r\n return;\r\n } else if (!isResolved) {\r\n // 相対パスでもなく、srcディレクトリ配下でもないものは外部モジュール扱い\r\n return (\r\n !source.startsWith('.') &&\r\n !source.startsWith('/') &&\r\n !source.startsWith('src/')\r\n );\r\n }\r\n return;\r\n };\r\n}\r\n"],"mappings":";;;;;;;;AAUA,SAAwB,6BACtB,UAA+C,CAAC,GACxB;CACxB,MAAM,EAAE,YAAY,eAAe;CACnC,QACE,QACA,WACA,eACG;EACH,MAAM,wBAAwB,EAC5B,kBAAkB;GAChB;GACA,UAAU;GACV;EACF,EACF;EACA,IAAIA,sCAAe,QAAQ,YAAY,qBAAqB,GAE1D,OAAO;OACF,IAAIA,sCAAe,QAAQ,YAAY,qBAAqB,GAEjE;OACK,IAAI,CAAC,YAEV,OACE,CAAC,OAAO,WAAW,GAAG,KACtB,CAAC,OAAO,WAAW,GAAG,KACtB,CAAC,OAAO,WAAW,MAAM;CAI/B;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createExternalOptionFunction.mjs","names":[],"sources":["../../src/createExternalOptionFunction/createExternalOptionFunction.ts"],"sourcesContent":["import isMatchingPath from '../isMatchingPath';\r\nimport type {\r\n CreateExternalOptionFunctionOptions,\r\n ExternalOptionFunction,\r\n} from './types';\r\n\r\n/**\r\n * rolldownやrollupなどで内部モジュールのimport以外をexternalとして扱うための関数を作る関数\r\n * @param options\r\n */\r\nexport default function createExternalOptionFunction(\r\n options: CreateExternalOptionFunctionOptions = {},\r\n): ExternalOptionFunction {\r\n const { isExternal, isInternal } = options;\r\n return (\r\n source: string,\r\n _importer: string | undefined,\r\n isResolved: boolean,\r\n ) => {\r\n const isMatchingPathOptions = {\r\n conditionOptions: {\r\n source,\r\n importer: _importer,\r\n isResolved,\r\n },\r\n };\r\n if (isMatchingPath(source, isExternal, isMatchingPathOptions)) {\r\n // 外部モジュール扱い\r\n return true;\r\n } else if (isMatchingPath(source, isInternal, isMatchingPathOptions)) {\r\n // 内部モジュール扱い\r\n return;\r\n } else if (!isResolved) {\r\n // 相対パスでもなく、srcディレクトリ配下でもないものは外部モジュール扱い\r\n return (\r\n !source.startsWith('.') &&\r\n !source.startsWith('/') &&\r\n !source.startsWith('src/')\r\n );\r\n }\r\n return;\r\n };\r\n}\r\n"],"mappings":";;;;;;;;AAUA,SAAwB,6BACtB,UAA+C,
|
|
1
|
+
{"version":3,"file":"createExternalOptionFunction.mjs","names":[],"sources":["../../src/createExternalOptionFunction/createExternalOptionFunction.ts"],"sourcesContent":["import isMatchingPath from '../isMatchingPath';\r\nimport type {\r\n CreateExternalOptionFunctionOptions,\r\n ExternalOptionFunction,\r\n} from './types';\r\n\r\n/**\r\n * rolldownやrollupなどで内部モジュールのimport以外をexternalとして扱うための関数を作る関数\r\n * @param options\r\n */\r\nexport default function createExternalOptionFunction(\r\n options: CreateExternalOptionFunctionOptions = {},\r\n): ExternalOptionFunction {\r\n const { isExternal, isInternal } = options;\r\n return (\r\n source: string,\r\n _importer: string | undefined,\r\n isResolved: boolean,\r\n ) => {\r\n const isMatchingPathOptions = {\r\n conditionOptions: {\r\n source,\r\n importer: _importer,\r\n isResolved,\r\n },\r\n };\r\n if (isMatchingPath(source, isExternal, isMatchingPathOptions)) {\r\n // 外部モジュール扱い\r\n return true;\r\n } else if (isMatchingPath(source, isInternal, isMatchingPathOptions)) {\r\n // 内部モジュール扱い\r\n return;\r\n } else if (!isResolved) {\r\n // 相対パスでもなく、srcディレクトリ配下でもないものは外部モジュール扱い\r\n return (\r\n !source.startsWith('.') &&\r\n !source.startsWith('/') &&\r\n !source.startsWith('src/')\r\n );\r\n }\r\n return;\r\n };\r\n}\r\n"],"mappings":";;;;;;;;AAUA,SAAwB,6BACtB,UAA+C,CAAC,GACxB;CACxB,MAAM,EAAE,YAAY,eAAe;CACnC,QACE,QACA,WACA,eACG;EACH,MAAM,wBAAwB,EAC5B,kBAAkB;GAChB;GACA,UAAU;GACV;EACF,EACF;EACA,IAAI,eAAe,QAAQ,YAAY,qBAAqB,GAE1D,OAAO;OACF,IAAI,eAAe,QAAQ,YAAY,qBAAqB,GAEjE;OACK,IAAI,CAAC,YAEV,OACE,CAAC,OAAO,WAAW,GAAG,KACtB,CAAC,OAAO,WAAW,GAAG,KACtB,CAAC,OAAO,WAAW,MAAM;CAI/B;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSassClassNameFunction.cjs","names":["SassString"],"sources":["../../src/createSassClassNameFunction/createSassClassNameFunction.ts"],"sourcesContent":["import type { Value } from 'sass';\r\nimport { SassString } from 'sass';\r\nimport type { CreateSassClassNameFunctionOptions } from './types';\r\n\r\n/**\r\n * TypeScriptで定義したCSSのクラス名をsassに反映するカスタム関数\r\n * @param classNames クラス名\r\n * @returns\r\n */\r\nexport default function createSassClassNameFunction(\r\n classNames: Record<string, string>,\r\n options: CreateSassClassNameFunctionOptions = {},\r\n) {\r\n const { prefix = '', suffix = '' } = options;\r\n return (args: Value[]) => {\r\n const name = (args[0] as SassString).text;\r\n return new SassString(classNames[prefix + name + suffix]);\r\n };\r\n}\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"createSassClassNameFunction.cjs","names":["SassString"],"sources":["../../src/createSassClassNameFunction/createSassClassNameFunction.ts"],"sourcesContent":["import type { Value } from 'sass';\r\nimport { SassString } from 'sass';\r\nimport type { CreateSassClassNameFunctionOptions } from './types';\r\n\r\n/**\r\n * TypeScriptで定義したCSSのクラス名をsassに反映するカスタム関数\r\n * @param classNames クラス名\r\n * @returns\r\n */\r\nexport default function createSassClassNameFunction(\r\n classNames: Record<string, string>,\r\n options: CreateSassClassNameFunctionOptions = {},\r\n) {\r\n const { prefix = '', suffix = '' } = options;\r\n return (args: Value[]) => {\r\n const name = (args[0] as SassString).text;\r\n return new SassString(classNames[prefix + name + suffix]);\r\n };\r\n}\r\n"],"mappings":";;;;;;;;AASA,SAAwB,4BACtB,YACA,UAA8C,CAAC,GAC/C;CACA,MAAM,EAAE,SAAS,IAAI,SAAS,OAAO;CACrC,QAAQ,SAAkB;EACxB,MAAM,OAAQ,KAAK,GAAkB;EACrC,OAAO,IAAIA,gBAAW,WAAW,SAAS,OAAO,OAAO;CAC1D;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSassClassNameFunction.mjs","names":[],"sources":["../../src/createSassClassNameFunction/createSassClassNameFunction.ts"],"sourcesContent":["import type { Value } from 'sass';\r\nimport { SassString } from 'sass';\r\nimport type { CreateSassClassNameFunctionOptions } from './types';\r\n\r\n/**\r\n * TypeScriptで定義したCSSのクラス名をsassに反映するカスタム関数\r\n * @param classNames クラス名\r\n * @returns\r\n */\r\nexport default function createSassClassNameFunction(\r\n classNames: Record<string, string>,\r\n options: CreateSassClassNameFunctionOptions = {},\r\n) {\r\n const { prefix = '', suffix = '' } = options;\r\n return (args: Value[]) => {\r\n const name = (args[0] as SassString).text;\r\n return new SassString(classNames[prefix + name + suffix]);\r\n };\r\n}\r\n"],"mappings":";;;;;;;;AASA,SAAwB,4BACtB,YACA,UAA8C,
|
|
1
|
+
{"version":3,"file":"createSassClassNameFunction.mjs","names":[],"sources":["../../src/createSassClassNameFunction/createSassClassNameFunction.ts"],"sourcesContent":["import type { Value } from 'sass';\r\nimport { SassString } from 'sass';\r\nimport type { CreateSassClassNameFunctionOptions } from './types';\r\n\r\n/**\r\n * TypeScriptで定義したCSSのクラス名をsassに反映するカスタム関数\r\n * @param classNames クラス名\r\n * @returns\r\n */\r\nexport default function createSassClassNameFunction(\r\n classNames: Record<string, string>,\r\n options: CreateSassClassNameFunctionOptions = {},\r\n) {\r\n const { prefix = '', suffix = '' } = options;\r\n return (args: Value[]) => {\r\n const name = (args[0] as SassString).text;\r\n return new SassString(classNames[prefix + name + suffix]);\r\n };\r\n}\r\n"],"mappings":";;;;;;;;AASA,SAAwB,4BACtB,YACA,UAA8C,CAAC,GAC/C;CACA,MAAM,EAAE,SAAS,IAAI,SAAS,OAAO;CACrC,QAAQ,SAAkB;EACxB,MAAM,OAAQ,KAAK,GAAkB;EACrC,OAAO,IAAI,WAAW,WAAW,SAAS,OAAO,OAAO;CAC1D;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editJsonFile.cjs","names":["checkExistence","fs"],"sources":["../../src/editJsonFile/editJsonFile.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport { isFunction, merge } from 'remeda';\r\nimport checkExistence from '../checkExistence';\r\n\r\n/**\r\n * JSONファイルを更新する\r\n * @param jsonFilePath\r\n * @param editor\r\n */\r\nfunction editJsonFile(\r\n jsonFilePath: string,\r\n editor: ((obj: any) => object) | object,\r\n) {\r\n const resolvedJsonFilePath = path.resolve(jsonFilePath);\r\n if (checkExistence(resolvedJsonFilePath)) {\r\n const obj = fs.readJSONSync(resolvedJsonFilePath);\r\n let editedJson;\r\n if (isFunction(editor)) {\r\n // 関数で編集する場合\r\n editedJson = editor(obj);\r\n } else {\r\n // 差分を反映する場合\r\n editedJson = merge(obj, editor);\r\n }\r\n fs.writeJSONSync(resolvedJsonFilePath, editedJson, { spaces: 2 });\r\n }\r\n}\r\n\r\nexport default editJsonFile;\r\n"],"mappings":";;;;;;;;;;;;;;;AAUA,SAAS,aACP,cACA,QACA;CACA,MAAM,uBAAuB,aAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"editJsonFile.cjs","names":["checkExistence","fs"],"sources":["../../src/editJsonFile/editJsonFile.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport { isFunction, merge } from 'remeda';\r\nimport checkExistence from '../checkExistence';\r\n\r\n/**\r\n * JSONファイルを更新する\r\n * @param jsonFilePath\r\n * @param editor\r\n */\r\nfunction editJsonFile(\r\n jsonFilePath: string,\r\n editor: ((obj: any) => object) | object,\r\n) {\r\n const resolvedJsonFilePath = path.resolve(jsonFilePath);\r\n if (checkExistence(resolvedJsonFilePath)) {\r\n const obj = fs.readJSONSync(resolvedJsonFilePath);\r\n let editedJson;\r\n if (isFunction(editor)) {\r\n // 関数で編集する場合\r\n editedJson = editor(obj);\r\n } else {\r\n // 差分を反映する場合\r\n editedJson = merge(obj, editor);\r\n }\r\n fs.writeJSONSync(resolvedJsonFilePath, editedJson, { spaces: 2 });\r\n }\r\n}\r\n\r\nexport default editJsonFile;\r\n"],"mappings":";;;;;;;;;;;;;;;AAUA,SAAS,aACP,cACA,QACA;CACA,MAAM,uBAAuB,aAAK,QAAQ,YAAY;CACtD,IAAIA,sCAAe,oBAAoB,GAAG;EACxC,MAAM,MAAMC,iBAAG,aAAa,oBAAoB;EAChD,IAAI;EACJ,2BAAe,MAAM,GAEnB,aAAa,OAAO,GAAG;OAGvB,+BAAmB,KAAK,MAAM;EAEhC,iBAAG,cAAc,sBAAsB,YAAY,EAAE,QAAQ,EAAE,CAAC;CAClE;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editJsonFile.mjs","names":[],"sources":["../../src/editJsonFile/editJsonFile.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport { isFunction, merge } from 'remeda';\r\nimport checkExistence from '../checkExistence';\r\n\r\n/**\r\n * JSONファイルを更新する\r\n * @param jsonFilePath\r\n * @param editor\r\n */\r\nfunction editJsonFile(\r\n jsonFilePath: string,\r\n editor: ((obj: any) => object) | object,\r\n) {\r\n const resolvedJsonFilePath = path.resolve(jsonFilePath);\r\n if (checkExistence(resolvedJsonFilePath)) {\r\n const obj = fs.readJSONSync(resolvedJsonFilePath);\r\n let editedJson;\r\n if (isFunction(editor)) {\r\n // 関数で編集する場合\r\n editedJson = editor(obj);\r\n } else {\r\n // 差分を反映する場合\r\n editedJson = merge(obj, editor);\r\n }\r\n fs.writeJSONSync(resolvedJsonFilePath, editedJson, { spaces: 2 });\r\n }\r\n}\r\n\r\nexport default editJsonFile;\r\n"],"mappings":";;;;;;;;;;;;AAUA,SAAS,aACP,cACA,QACA;CACA,MAAM,uBAAuB,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"editJsonFile.mjs","names":[],"sources":["../../src/editJsonFile/editJsonFile.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport { isFunction, merge } from 'remeda';\r\nimport checkExistence from '../checkExistence';\r\n\r\n/**\r\n * JSONファイルを更新する\r\n * @param jsonFilePath\r\n * @param editor\r\n */\r\nfunction editJsonFile(\r\n jsonFilePath: string,\r\n editor: ((obj: any) => object) | object,\r\n) {\r\n const resolvedJsonFilePath = path.resolve(jsonFilePath);\r\n if (checkExistence(resolvedJsonFilePath)) {\r\n const obj = fs.readJSONSync(resolvedJsonFilePath);\r\n let editedJson;\r\n if (isFunction(editor)) {\r\n // 関数で編集する場合\r\n editedJson = editor(obj);\r\n } else {\r\n // 差分を反映する場合\r\n editedJson = merge(obj, editor);\r\n }\r\n fs.writeJSONSync(resolvedJsonFilePath, editedJson, { spaces: 2 });\r\n }\r\n}\r\n\r\nexport default editJsonFile;\r\n"],"mappings":";;;;;;;;;;;;AAUA,SAAS,aACP,cACA,QACA;CACA,MAAM,uBAAuB,KAAK,QAAQ,YAAY;CACtD,IAAI,eAAe,oBAAoB,GAAG;EACxC,MAAM,MAAM,GAAG,aAAa,oBAAoB;EAChD,IAAI;EACJ,IAAI,WAAW,MAAM,GAEnB,aAAa,OAAO,GAAG;OAGvB,aAAa,MAAM,KAAK,MAAM;EAEhC,GAAG,cAAc,sBAAsB,YAAY,EAAE,QAAQ,EAAE,CAAC;CAClE;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePublishPackageJson.cjs","names":["fs"],"sources":["../../src/generatePublishPackageJson/generatePublishPackageJson.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport type { GeneratePublishPackageJsonOptions } from './types';\r\n\r\nasync function generatePublishPackageJson(\r\n options: GeneratePublishPackageJsonOptions = {},\r\n) {\r\n const {\r\n packageJsonPath = './package.json',\r\n outputPackageJsonPath = './dist/package.json',\r\n exports = {\r\n '.': {\r\n import: './index.js',\r\n reqire: './index.cjs',\r\n type: './index.d.ts',\r\n },\r\n './*': {\r\n import: './*/index.js',\r\n reqire: './*/index.cjs',\r\n type: './*/index.d.ts',\r\n },\r\n './constants': {\r\n import: './constants.js',\r\n reqire: './constants.cjs',\r\n type: './constants.d.ts',\r\n },\r\n './*/constants': {\r\n import: './*/constants.js',\r\n reqire: './*/constants.cjs',\r\n type: './*/constants.d.ts',\r\n },\r\n },\r\n transform = (pkgJson) => pkgJson,\r\n jsonReadOptions,\r\n jsonWriteOptions,\r\n } = options;\r\n const packageJson = await fs.readJSON(packageJsonPath, jsonReadOptions);\r\n const distPackageJson = {\r\n name: packageJson.name,\r\n version: packageJson.version,\r\n keywords: packageJson.keywords,\r\n repository: packageJson.repository,\r\n license: packageJson.license,\r\n author: packageJson.author,\r\n type: packageJson.type,\r\n exports,\r\n dependencies: packageJson.dependencies,\r\n };\r\n await fs.writeJSON(\r\n outputPackageJsonPath,\r\n transform(distPackageJson),\r\n jsonWriteOptions,\r\n );\r\n}\r\n\r\nexport default generatePublishPackageJson;\r\n"],"mappings":";;;;;AAGA,eAAe,2BACb,UAA6C,
|
|
1
|
+
{"version":3,"file":"generatePublishPackageJson.cjs","names":["fs"],"sources":["../../src/generatePublishPackageJson/generatePublishPackageJson.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport type { GeneratePublishPackageJsonOptions } from './types';\r\n\r\nasync function generatePublishPackageJson(\r\n options: GeneratePublishPackageJsonOptions = {},\r\n) {\r\n const {\r\n packageJsonPath = './package.json',\r\n outputPackageJsonPath = './dist/package.json',\r\n exports = {\r\n '.': {\r\n import: './index.js',\r\n reqire: './index.cjs',\r\n type: './index.d.ts',\r\n },\r\n './*': {\r\n import: './*/index.js',\r\n reqire: './*/index.cjs',\r\n type: './*/index.d.ts',\r\n },\r\n './constants': {\r\n import: './constants.js',\r\n reqire: './constants.cjs',\r\n type: './constants.d.ts',\r\n },\r\n './*/constants': {\r\n import: './*/constants.js',\r\n reqire: './*/constants.cjs',\r\n type: './*/constants.d.ts',\r\n },\r\n },\r\n transform = (pkgJson) => pkgJson,\r\n jsonReadOptions,\r\n jsonWriteOptions,\r\n } = options;\r\n const packageJson = await fs.readJSON(packageJsonPath, jsonReadOptions);\r\n const distPackageJson = {\r\n name: packageJson.name,\r\n version: packageJson.version,\r\n keywords: packageJson.keywords,\r\n repository: packageJson.repository,\r\n license: packageJson.license,\r\n author: packageJson.author,\r\n type: packageJson.type,\r\n exports,\r\n dependencies: packageJson.dependencies,\r\n };\r\n await fs.writeJSON(\r\n outputPackageJsonPath,\r\n transform(distPackageJson),\r\n jsonWriteOptions,\r\n );\r\n}\r\n\r\nexport default generatePublishPackageJson;\r\n"],"mappings":";;;;;AAGA,eAAe,2BACb,UAA6C,CAAC,GAC9C;CACA,MAAM,EACJ,kBAAkB,kBAClB,wBAAwB,uBACxB,UAAU;EACR,KAAK;GACH,QAAQ;GACR,QAAQ;GACR,MAAM;EACR;EACA,OAAO;GACL,QAAQ;GACR,QAAQ;GACR,MAAM;EACR;EACA,eAAe;GACb,QAAQ;GACR,QAAQ;GACR,MAAM;EACR;EACA,iBAAiB;GACf,QAAQ;GACR,QAAQ;GACR,MAAM;EACR;CACF,GACA,aAAa,YAAY,SACzB,iBACA,qBACE;CACJ,MAAM,cAAc,MAAMA,iBAAG,SAAS,iBAAiB,eAAe;CACtE,MAAM,kBAAkB;EACtB,MAAM,YAAY;EAClB,SAAS,YAAY;EACrB,UAAU,YAAY;EACtB,YAAY,YAAY;EACxB,SAAS,YAAY;EACrB,QAAQ,YAAY;EACpB,MAAM,YAAY;EAClB;EACA,cAAc,YAAY;CAC5B;CACA,MAAMA,iBAAG,UACP,uBACA,UAAU,eAAe,GACzB,gBACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePublishPackageJson.mjs","names":[],"sources":["../../src/generatePublishPackageJson/generatePublishPackageJson.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport type { GeneratePublishPackageJsonOptions } from './types';\r\n\r\nasync function generatePublishPackageJson(\r\n options: GeneratePublishPackageJsonOptions = {},\r\n) {\r\n const {\r\n packageJsonPath = './package.json',\r\n outputPackageJsonPath = './dist/package.json',\r\n exports = {\r\n '.': {\r\n import: './index.js',\r\n reqire: './index.cjs',\r\n type: './index.d.ts',\r\n },\r\n './*': {\r\n import: './*/index.js',\r\n reqire: './*/index.cjs',\r\n type: './*/index.d.ts',\r\n },\r\n './constants': {\r\n import: './constants.js',\r\n reqire: './constants.cjs',\r\n type: './constants.d.ts',\r\n },\r\n './*/constants': {\r\n import: './*/constants.js',\r\n reqire: './*/constants.cjs',\r\n type: './*/constants.d.ts',\r\n },\r\n },\r\n transform = (pkgJson) => pkgJson,\r\n jsonReadOptions,\r\n jsonWriteOptions,\r\n } = options;\r\n const packageJson = await fs.readJSON(packageJsonPath, jsonReadOptions);\r\n const distPackageJson = {\r\n name: packageJson.name,\r\n version: packageJson.version,\r\n keywords: packageJson.keywords,\r\n repository: packageJson.repository,\r\n license: packageJson.license,\r\n author: packageJson.author,\r\n type: packageJson.type,\r\n exports,\r\n dependencies: packageJson.dependencies,\r\n };\r\n await fs.writeJSON(\r\n outputPackageJsonPath,\r\n transform(distPackageJson),\r\n jsonWriteOptions,\r\n );\r\n}\r\n\r\nexport default generatePublishPackageJson;\r\n"],"mappings":";;;AAGA,eAAe,2BACb,UAA6C,
|
|
1
|
+
{"version":3,"file":"generatePublishPackageJson.mjs","names":[],"sources":["../../src/generatePublishPackageJson/generatePublishPackageJson.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport type { GeneratePublishPackageJsonOptions } from './types';\r\n\r\nasync function generatePublishPackageJson(\r\n options: GeneratePublishPackageJsonOptions = {},\r\n) {\r\n const {\r\n packageJsonPath = './package.json',\r\n outputPackageJsonPath = './dist/package.json',\r\n exports = {\r\n '.': {\r\n import: './index.js',\r\n reqire: './index.cjs',\r\n type: './index.d.ts',\r\n },\r\n './*': {\r\n import: './*/index.js',\r\n reqire: './*/index.cjs',\r\n type: './*/index.d.ts',\r\n },\r\n './constants': {\r\n import: './constants.js',\r\n reqire: './constants.cjs',\r\n type: './constants.d.ts',\r\n },\r\n './*/constants': {\r\n import: './*/constants.js',\r\n reqire: './*/constants.cjs',\r\n type: './*/constants.d.ts',\r\n },\r\n },\r\n transform = (pkgJson) => pkgJson,\r\n jsonReadOptions,\r\n jsonWriteOptions,\r\n } = options;\r\n const packageJson = await fs.readJSON(packageJsonPath, jsonReadOptions);\r\n const distPackageJson = {\r\n name: packageJson.name,\r\n version: packageJson.version,\r\n keywords: packageJson.keywords,\r\n repository: packageJson.repository,\r\n license: packageJson.license,\r\n author: packageJson.author,\r\n type: packageJson.type,\r\n exports,\r\n dependencies: packageJson.dependencies,\r\n };\r\n await fs.writeJSON(\r\n outputPackageJsonPath,\r\n transform(distPackageJson),\r\n jsonWriteOptions,\r\n );\r\n}\r\n\r\nexport default generatePublishPackageJson;\r\n"],"mappings":";;;AAGA,eAAe,2BACb,UAA6C,CAAC,GAC9C;CACA,MAAM,EACJ,kBAAkB,kBAClB,wBAAwB,uBACxB,UAAU;EACR,KAAK;GACH,QAAQ;GACR,QAAQ;GACR,MAAM;EACR;EACA,OAAO;GACL,QAAQ;GACR,QAAQ;GACR,MAAM;EACR;EACA,eAAe;GACb,QAAQ;GACR,QAAQ;GACR,MAAM;EACR;EACA,iBAAiB;GACf,QAAQ;GACR,QAAQ;GACR,MAAM;EACR;CACF,GACA,aAAa,YAAY,SACzB,iBACA,qBACE;CACJ,MAAM,cAAc,MAAM,GAAG,SAAS,iBAAiB,eAAe;CACtE,MAAM,kBAAkB;EACtB,MAAM,YAAY;EAClB,SAAS,YAAY;EACrB,UAAU,YAAY;EACtB,YAAY,YAAY;EACxB,SAAS,YAAY;EACrB,QAAQ,YAAY;EACpB,MAAM,YAAY;EAClB;EACA,cAAc,YAAY;CAC5B;CACA,MAAM,GAAG,UACP,uBACA,UAAU,eAAe,GACzB,gBACF;AACF"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { GeneratePublishPackageJsonOptions } from "./types.cjs";
|
|
2
2
|
import generatePublishPackageJson from "./generatePublishPackageJson.cjs";
|
|
3
|
-
export { GeneratePublishPackageJsonOptions, generatePublishPackageJson as default };
|
|
3
|
+
export { type GeneratePublishPackageJsonOptions, generatePublishPackageJson as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { GeneratePublishPackageJsonOptions } from "./types.mjs";
|
|
2
2
|
import generatePublishPackageJson from "./generatePublishPackageJson.mjs";
|
|
3
|
-
export { GeneratePublishPackageJsonOptions, generatePublishPackageJson as default };
|
|
3
|
+
export { type GeneratePublishPackageJsonOptions, generatePublishPackageJson as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs","names":["fs"],"sources":["../../src/indexes/constants.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport type { IsMatchingPathCondition } from '../isMatchingPath';\r\n\r\n/**\r\n * types.ts\r\n */\r\nexport const TYPES: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /^types.ts$/i,\r\n};\r\n\r\n/**\r\n * constants.ts\r\n */\r\nexport const CONSTANTS: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /^constants.(ts|tsx)$/i,\r\n};\r\n\r\n/**\r\n * TypeScriptとJavaScript\r\n */\r\nexport const TS_JS: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /.+\\.(ts|tsx|js|jsx)$/i,\r\n};\r\n\r\n/**\r\n * 配下にindexファイルのあるディレクトリ\r\n */\r\nexport const HAS_INDEX_DIR: IsMatchingPathCondition = {\r\n entryType: 'dir',\r\n conditions: (values, { indexRegex }) => {\r\n const items = fs.readdirSync(values.path);\r\n for (const item of items) {\r\n if (indexRegex.test(item)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n};\r\n\r\n/**\r\n * テストディレクトリ配下\r\n */\r\nexport const TEST_DIR: IsMatchingPathCondition = {\r\n valueType: 'path',\r\n conditions: /.+\\/__test__\\/.+/i,\r\n};\r\n\r\n/**\r\n * ファイル名またはディレクトリ名が`_`で始まる\r\n */\r\nexport const TEST_FILE: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n conditions: /.*\\.test\\.(ts|tsx|js|jsx)$/i,\r\n};\r\n\r\n/**\r\n * ファイル名またはディレクトリ名が`_`で始まる\r\n */\r\nexport const PRIVATE: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n conditions: /^_/,\r\n};\r\n\r\n/**\r\n * 拡張子を除いたファイル名が親ディレクトリ名と同じ\r\n */\r\nexport const MAIN_FILE: IsMatchingPathCondition = {\r\n entryType: 'file',\r\n conditions: (values) => {\r\n return values.name === values.dirbase;\r\n },\r\n};\r\n\r\n/**\r\n * ツール類の入ったディレクトリ\r\n */\r\nexport const TOOLS_DIR: IsMatchingPathCondition = {\r\n entryType: 'dir',\r\n conditions: (values, { children }) => {\r\n const { base } = values;\r\n return (\r\n // 先頭が小文字\r\n base[0] === base[0].toLowerCase() &&\r\n // 子要素にディレクトリと同じ名称のファイルが無い\r\n children?.every((child: string) => child.split('.')[0] !== base)\r\n );\r\n },\r\n};\r\n\r\n/**\r\n * includeのデフォルト値\r\n */\r\nexport const DEFAULT_INCLUDE = [\r\n // TypeScript,JavaScriptのファイルを対象\r\n TS_JS,\r\n // 配下にindex.tsを持つディレクトリを対象\r\n HAS_INDEX_DIR,\r\n];\r\n\r\n/**\r\n * excludeのデフォルト値\r\n */\r\nexport const DEFAULT_EXCLUDE = [\r\n // __test__フォルダ配下の全てを除外\r\n TEST_DIR,\r\n // ディレクトリ名、ファイル名が_で始まるものを除外\r\n PRIVATE,\r\n];\r\n\r\n/**\r\n * exportTypeAllのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_TYPE_ALL = [TYPES];\r\n\r\n/**\r\n * exportAllのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_ALL = [CONSTANTS];\r\n\r\n/**\r\n * exportDefaultのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_DEFAULT = [MAIN_FILE];\r\n\r\n/**\r\n * exportAllAsのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_ALL_AS = [TOOLS_DIR];\r\n"],"mappings":";;;;;;;;;AAMA,MAAa,QAAiC;CAC5C,WAAW;CACX,WAAW;CACX,YAAY;
|
|
1
|
+
{"version":3,"file":"constants.cjs","names":["fs"],"sources":["../../src/indexes/constants.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport type { IsMatchingPathCondition } from '../isMatchingPath';\r\n\r\n/**\r\n * types.ts\r\n */\r\nexport const TYPES: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /^types.ts$/i,\r\n};\r\n\r\n/**\r\n * constants.ts\r\n */\r\nexport const CONSTANTS: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /^constants.(ts|tsx)$/i,\r\n};\r\n\r\n/**\r\n * TypeScriptとJavaScript\r\n */\r\nexport const TS_JS: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /.+\\.(ts|tsx|js|jsx)$/i,\r\n};\r\n\r\n/**\r\n * 配下にindexファイルのあるディレクトリ\r\n */\r\nexport const HAS_INDEX_DIR: IsMatchingPathCondition = {\r\n entryType: 'dir',\r\n conditions: (values, { indexRegex }) => {\r\n const items = fs.readdirSync(values.path);\r\n for (const item of items) {\r\n if (indexRegex.test(item)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n};\r\n\r\n/**\r\n * テストディレクトリ配下\r\n */\r\nexport const TEST_DIR: IsMatchingPathCondition = {\r\n valueType: 'path',\r\n conditions: /.+\\/__test__\\/.+/i,\r\n};\r\n\r\n/**\r\n * ファイル名またはディレクトリ名が`_`で始まる\r\n */\r\nexport const TEST_FILE: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n conditions: /.*\\.test\\.(ts|tsx|js|jsx)$/i,\r\n};\r\n\r\n/**\r\n * ファイル名またはディレクトリ名が`_`で始まる\r\n */\r\nexport const PRIVATE: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n conditions: /^_/,\r\n};\r\n\r\n/**\r\n * 拡張子を除いたファイル名が親ディレクトリ名と同じ\r\n */\r\nexport const MAIN_FILE: IsMatchingPathCondition = {\r\n entryType: 'file',\r\n conditions: (values) => {\r\n return values.name === values.dirbase;\r\n },\r\n};\r\n\r\n/**\r\n * ツール類の入ったディレクトリ\r\n */\r\nexport const TOOLS_DIR: IsMatchingPathCondition = {\r\n entryType: 'dir',\r\n conditions: (values, { children }) => {\r\n const { base } = values;\r\n return (\r\n // 先頭が小文字\r\n base[0] === base[0].toLowerCase() &&\r\n // 子要素にディレクトリと同じ名称のファイルが無い\r\n children?.every((child: string) => child.split('.')[0] !== base)\r\n );\r\n },\r\n};\r\n\r\n/**\r\n * includeのデフォルト値\r\n */\r\nexport const DEFAULT_INCLUDE = [\r\n // TypeScript,JavaScriptのファイルを対象\r\n TS_JS,\r\n // 配下にindex.tsを持つディレクトリを対象\r\n HAS_INDEX_DIR,\r\n];\r\n\r\n/**\r\n * excludeのデフォルト値\r\n */\r\nexport const DEFAULT_EXCLUDE = [\r\n // __test__フォルダ配下の全てを除外\r\n TEST_DIR,\r\n // ディレクトリ名、ファイル名が_で始まるものを除外\r\n PRIVATE,\r\n];\r\n\r\n/**\r\n * exportTypeAllのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_TYPE_ALL = [TYPES];\r\n\r\n/**\r\n * exportAllのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_ALL = [CONSTANTS];\r\n\r\n/**\r\n * exportDefaultのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_DEFAULT = [MAIN_FILE];\r\n\r\n/**\r\n * exportAllAsのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_ALL_AS = [TOOLS_DIR];\r\n"],"mappings":";;;;;;;;;AAMA,MAAa,QAAiC;CAC5C,WAAW;CACX,WAAW;CACX,YAAY;AACd;;;;AAKA,MAAa,YAAqC;CAChD,WAAW;CACX,WAAW;CACX,YAAY;AACd;;;;AAKA,MAAa,QAAiC;CAC5C,WAAW;CACX,WAAW;CACX,YAAY;AACd;;;;AAKA,MAAa,gBAAyC;CACpD,WAAW;CACX,aAAa,QAAQ,EAAE,iBAAiB;EACtC,MAAM,QAAQA,iBAAG,YAAY,OAAO,IAAI;EACxC,KAAK,MAAM,QAAQ,OACjB,IAAI,WAAW,KAAK,IAAI,GACtB,OAAO;EAGX,OAAO;CACT;AACF;;;;AAKA,MAAa,WAAoC;CAC/C,WAAW;CACX,YAAY;AACd;;;;AAKA,MAAa,YAAqC;CAChD,WAAW;CACX,YAAY;AACd;;;;AAKA,MAAa,UAAmC;CAC9C,WAAW;CACX,YAAY;AACd;;;;AAKA,MAAa,YAAqC;CAChD,WAAW;CACX,aAAa,WAAW;EACtB,OAAO,OAAO,SAAS,OAAO;CAChC;AACF;;;;AAKA,MAAa,YAAqC;CAChD,WAAW;CACX,aAAa,QAAQ,EAAE,eAAe;EACpC,MAAM,EAAE,SAAS;EACjB,OAEE,KAAK,OAAO,KAAK,GAAG,YAAY,KAEhC,UAAU,OAAO,UAAkB,MAAM,MAAM,GAAG,EAAE,OAAO,IAAI;CAEnE;AACF;;;;AAKA,MAAa,kBAAkB,CAE7B,OAEA,aACF;;;;AAKA,MAAa,kBAAkB,CAE7B,UAEA,OACF;;;;AAKA,MAAa,0BAA0B,CAAC,KAAK;;;;AAK7C,MAAa,qBAAqB,CAAC,SAAS;;;;AAK5C,MAAa,yBAAyB,CAAC,SAAS;;;;AAKhD,MAAa,wBAAwB,CAAC,SAAS"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","names":[],"sources":["../../src/indexes/constants.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport type { IsMatchingPathCondition } from '../isMatchingPath';\r\n\r\n/**\r\n * types.ts\r\n */\r\nexport const TYPES: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /^types.ts$/i,\r\n};\r\n\r\n/**\r\n * constants.ts\r\n */\r\nexport const CONSTANTS: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /^constants.(ts|tsx)$/i,\r\n};\r\n\r\n/**\r\n * TypeScriptとJavaScript\r\n */\r\nexport const TS_JS: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /.+\\.(ts|tsx|js|jsx)$/i,\r\n};\r\n\r\n/**\r\n * 配下にindexファイルのあるディレクトリ\r\n */\r\nexport const HAS_INDEX_DIR: IsMatchingPathCondition = {\r\n entryType: 'dir',\r\n conditions: (values, { indexRegex }) => {\r\n const items = fs.readdirSync(values.path);\r\n for (const item of items) {\r\n if (indexRegex.test(item)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n};\r\n\r\n/**\r\n * テストディレクトリ配下\r\n */\r\nexport const TEST_DIR: IsMatchingPathCondition = {\r\n valueType: 'path',\r\n conditions: /.+\\/__test__\\/.+/i,\r\n};\r\n\r\n/**\r\n * ファイル名またはディレクトリ名が`_`で始まる\r\n */\r\nexport const TEST_FILE: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n conditions: /.*\\.test\\.(ts|tsx|js|jsx)$/i,\r\n};\r\n\r\n/**\r\n * ファイル名またはディレクトリ名が`_`で始まる\r\n */\r\nexport const PRIVATE: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n conditions: /^_/,\r\n};\r\n\r\n/**\r\n * 拡張子を除いたファイル名が親ディレクトリ名と同じ\r\n */\r\nexport const MAIN_FILE: IsMatchingPathCondition = {\r\n entryType: 'file',\r\n conditions: (values) => {\r\n return values.name === values.dirbase;\r\n },\r\n};\r\n\r\n/**\r\n * ツール類の入ったディレクトリ\r\n */\r\nexport const TOOLS_DIR: IsMatchingPathCondition = {\r\n entryType: 'dir',\r\n conditions: (values, { children }) => {\r\n const { base } = values;\r\n return (\r\n // 先頭が小文字\r\n base[0] === base[0].toLowerCase() &&\r\n // 子要素にディレクトリと同じ名称のファイルが無い\r\n children?.every((child: string) => child.split('.')[0] !== base)\r\n );\r\n },\r\n};\r\n\r\n/**\r\n * includeのデフォルト値\r\n */\r\nexport const DEFAULT_INCLUDE = [\r\n // TypeScript,JavaScriptのファイルを対象\r\n TS_JS,\r\n // 配下にindex.tsを持つディレクトリを対象\r\n HAS_INDEX_DIR,\r\n];\r\n\r\n/**\r\n * excludeのデフォルト値\r\n */\r\nexport const DEFAULT_EXCLUDE = [\r\n // __test__フォルダ配下の全てを除外\r\n TEST_DIR,\r\n // ディレクトリ名、ファイル名が_で始まるものを除外\r\n PRIVATE,\r\n];\r\n\r\n/**\r\n * exportTypeAllのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_TYPE_ALL = [TYPES];\r\n\r\n/**\r\n * exportAllのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_ALL = [CONSTANTS];\r\n\r\n/**\r\n * exportDefaultのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_DEFAULT = [MAIN_FILE];\r\n\r\n/**\r\n * exportAllAsのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_ALL_AS = [TOOLS_DIR];\r\n"],"mappings":";;;;;;AAMA,MAAa,QAAiC;CAC5C,WAAW;CACX,WAAW;CACX,YAAY;
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":[],"sources":["../../src/indexes/constants.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport type { IsMatchingPathCondition } from '../isMatchingPath';\r\n\r\n/**\r\n * types.ts\r\n */\r\nexport const TYPES: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /^types.ts$/i,\r\n};\r\n\r\n/**\r\n * constants.ts\r\n */\r\nexport const CONSTANTS: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /^constants.(ts|tsx)$/i,\r\n};\r\n\r\n/**\r\n * TypeScriptとJavaScript\r\n */\r\nexport const TS_JS: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n entryType: 'file',\r\n conditions: /.+\\.(ts|tsx|js|jsx)$/i,\r\n};\r\n\r\n/**\r\n * 配下にindexファイルのあるディレクトリ\r\n */\r\nexport const HAS_INDEX_DIR: IsMatchingPathCondition = {\r\n entryType: 'dir',\r\n conditions: (values, { indexRegex }) => {\r\n const items = fs.readdirSync(values.path);\r\n for (const item of items) {\r\n if (indexRegex.test(item)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n};\r\n\r\n/**\r\n * テストディレクトリ配下\r\n */\r\nexport const TEST_DIR: IsMatchingPathCondition = {\r\n valueType: 'path',\r\n conditions: /.+\\/__test__\\/.+/i,\r\n};\r\n\r\n/**\r\n * ファイル名またはディレクトリ名が`_`で始まる\r\n */\r\nexport const TEST_FILE: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n conditions: /.*\\.test\\.(ts|tsx|js|jsx)$/i,\r\n};\r\n\r\n/**\r\n * ファイル名またはディレクトリ名が`_`で始まる\r\n */\r\nexport const PRIVATE: IsMatchingPathCondition = {\r\n valueType: 'base',\r\n conditions: /^_/,\r\n};\r\n\r\n/**\r\n * 拡張子を除いたファイル名が親ディレクトリ名と同じ\r\n */\r\nexport const MAIN_FILE: IsMatchingPathCondition = {\r\n entryType: 'file',\r\n conditions: (values) => {\r\n return values.name === values.dirbase;\r\n },\r\n};\r\n\r\n/**\r\n * ツール類の入ったディレクトリ\r\n */\r\nexport const TOOLS_DIR: IsMatchingPathCondition = {\r\n entryType: 'dir',\r\n conditions: (values, { children }) => {\r\n const { base } = values;\r\n return (\r\n // 先頭が小文字\r\n base[0] === base[0].toLowerCase() &&\r\n // 子要素にディレクトリと同じ名称のファイルが無い\r\n children?.every((child: string) => child.split('.')[0] !== base)\r\n );\r\n },\r\n};\r\n\r\n/**\r\n * includeのデフォルト値\r\n */\r\nexport const DEFAULT_INCLUDE = [\r\n // TypeScript,JavaScriptのファイルを対象\r\n TS_JS,\r\n // 配下にindex.tsを持つディレクトリを対象\r\n HAS_INDEX_DIR,\r\n];\r\n\r\n/**\r\n * excludeのデフォルト値\r\n */\r\nexport const DEFAULT_EXCLUDE = [\r\n // __test__フォルダ配下の全てを除外\r\n TEST_DIR,\r\n // ディレクトリ名、ファイル名が_で始まるものを除外\r\n PRIVATE,\r\n];\r\n\r\n/**\r\n * exportTypeAllのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_TYPE_ALL = [TYPES];\r\n\r\n/**\r\n * exportAllのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_ALL = [CONSTANTS];\r\n\r\n/**\r\n * exportDefaultのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_DEFAULT = [MAIN_FILE];\r\n\r\n/**\r\n * exportAllAsのデフォルト値\r\n */\r\nexport const DEFAULT_EXPORT_ALL_AS = [TOOLS_DIR];\r\n"],"mappings":";;;;;;AAMA,MAAa,QAAiC;CAC5C,WAAW;CACX,WAAW;CACX,YAAY;AACd;;;;AAKA,MAAa,YAAqC;CAChD,WAAW;CACX,WAAW;CACX,YAAY;AACd;;;;AAKA,MAAa,QAAiC;CAC5C,WAAW;CACX,WAAW;CACX,YAAY;AACd;;;;AAKA,MAAa,gBAAyC;CACpD,WAAW;CACX,aAAa,QAAQ,EAAE,iBAAiB;EACtC,MAAM,QAAQ,GAAG,YAAY,OAAO,IAAI;EACxC,KAAK,MAAM,QAAQ,OACjB,IAAI,WAAW,KAAK,IAAI,GACtB,OAAO;EAGX,OAAO;CACT;AACF;;;;AAKA,MAAa,WAAoC;CAC/C,WAAW;CACX,YAAY;AACd;;;;AAKA,MAAa,YAAqC;CAChD,WAAW;CACX,YAAY;AACd;;;;AAKA,MAAa,UAAmC;CAC9C,WAAW;CACX,YAAY;AACd;;;;AAKA,MAAa,YAAqC;CAChD,WAAW;CACX,aAAa,WAAW;EACtB,OAAO,OAAO,SAAS,OAAO;CAChC;AACF;;;;AAKA,MAAa,YAAqC;CAChD,WAAW;CACX,aAAa,QAAQ,EAAE,eAAe;EACpC,MAAM,EAAE,SAAS;EACjB,OAEE,KAAK,OAAO,KAAK,GAAG,YAAY,KAEhC,UAAU,OAAO,UAAkB,MAAM,MAAM,GAAG,EAAE,OAAO,IAAI;CAEnE;AACF;;;;AAKA,MAAa,kBAAkB,CAE7B,OAEA,aACF;;;;AAKA,MAAa,kBAAkB,CAE7B,UAEA,OACF;;;;AAKA,MAAa,0BAA0B,CAAC,KAAK;;;;AAK7C,MAAa,qBAAqB,CAAC,SAAS;;;;AAK5C,MAAa,yBAAyB,CAAC,SAAS;;;;AAKhD,MAAa,wBAAwB,CAAC,SAAS"}
|
package/indexes/index.d.cts
CHANGED
package/indexes/index.d.mts
CHANGED
package/indexes/indexes.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexes.cjs","names":["DEFAULT_INCLUDE","DEFAULT_EXCLUDE","DEFAULT_EXPORT_ALL","DEFAULT_EXPORT_ALL_AS","DEFAULT_EXPORT_DEFAULT","DEFAULT_EXPORT_TYPE_ALL","fs","isMatchingPath"],"sources":["../../src/indexes/indexes.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport { posix as path } from 'path';\r\nimport isMatchingPath from '../isMatchingPath';\r\nimport {\r\n DEFAULT_EXCLUDE,\r\n DEFAULT_EXPORT_ALL,\r\n DEFAULT_EXPORT_ALL_AS,\r\n DEFAULT_EXPORT_DEFAULT,\r\n DEFAULT_EXPORT_TYPE_ALL,\r\n DEFAULT_INCLUDE,\r\n} from './constants';\r\nimport type { IndexesOptions } from './types';\r\n\r\nconst EXPORTS = {\r\n exportAll: {\r\n type: 'named',\r\n generate: (name: string) => `export * from './${name}';`,\r\n },\r\n exportAllAs: {\r\n type: 'named',\r\n generate: (name: string) => `export * as ${name} from './${name}';`,\r\n },\r\n exportDefault: {\r\n type: 'default',\r\n generate: (name: string) => `export { default } from './${name}';`,\r\n },\r\n exportDefaultAs: {\r\n type: 'named',\r\n generate: (name: string) =>\r\n `export { default as ${name} } from './${name}';`,\r\n },\r\n exportTypeAll: {\r\n type: 'type',\r\n generate: (name: string) => `export type * from './${name}';`,\r\n },\r\n} as const;\r\n\r\n/**\r\n * 対象のディレクトリ配下のindexファイルを作成する\\\r\n * 対象ファイルで出力形式が特に指定されていない場合は下記の形式で出力\\\r\n * `export { default as ${name} } from './${name}';`\r\n */\r\nexport default function indexes(options: IndexesOptions = {}) {\r\n const {\r\n srcPath = 'src',\r\n indexFileName = 'index.ts',\r\n include = DEFAULT_INCLUDE,\r\n exclude = DEFAULT_EXCLUDE,\r\n exportAll = DEFAULT_EXPORT_ALL,\r\n exportAllAs = DEFAULT_EXPORT_ALL_AS,\r\n exportDefault = DEFAULT_EXPORT_DEFAULT,\r\n exportTypeAll = DEFAULT_EXPORT_TYPE_ALL,\r\n ...rest\r\n } = options;\r\n const indexRegex = _createRegex(indexFileName);\r\n\r\n // indexファイルの作成処理を実行\r\n _indexes(srcPath, indexRegex, {\r\n indexFileName,\r\n include,\r\n exclude,\r\n exportAll,\r\n exportAllAs,\r\n exportDefault,\r\n exportTypeAll,\r\n ...rest,\r\n });\r\n}\r\n\r\nfunction _indexes(\r\n targetPath: string,\r\n indexRegex: RegExp,\r\n options: IndexesOptions,\r\n) {\r\n const {\r\n indexFileName = 'index.ts',\r\n include,\r\n exclude,\r\n includeNamedWithDefault,\r\n exportAll,\r\n exportAllAs,\r\n exportDefault,\r\n exportDefaultAs,\r\n exportTypeAll,\r\n dryRun,\r\n } = options;\r\n const exportTargets = {\r\n exportAll,\r\n exportAllAs,\r\n exportDefault,\r\n exportDefaultAs,\r\n exportTypeAll,\r\n };\r\n const stat = fs.statSync(targetPath);\r\n if (!stat.isDirectory()) {\r\n console.error(`\"${targetPath}\" is not directory.`);\r\n }\r\n const items = fs.readdirSync(targetPath);\r\n items.sort((a, b) => (a.toLowerCase() > b.toLowerCase() ? 1 : -1));\r\n const exportCodes = [];\r\n let hasDefaultExport = false;\r\n let hasNamedExport = false;\r\n\r\n for (const item of items) {\r\n const itemPath = path.join(targetPath, item);\r\n const { name } = path.parse(itemPath);\r\n const stat = fs.statSync(itemPath);\r\n\r\n let children;\r\n if (stat.isDirectory()) {\r\n // ディレクトリの場合は先に子要素を処理\r\n children = _indexes(itemPath, indexRegex, options);\r\n }\r\n const isMatchingPathOptions = {\r\n conditionOptions: { indexRegex, children },\r\n };\r\n\r\n if (\r\n !indexRegex.test(item) &&\r\n isMatchingPath(itemPath, include, isMatchingPathOptions) &&\r\n !isMatchingPath(itemPath, exclude, isMatchingPathOptions)\r\n ) {\r\n // indexではない場合\r\n let isExported = false;\r\n for (const type in EXPORTS) {\r\n const exportType = type as keyof typeof EXPORTS;\r\n const exportTarget = exportTargets[exportType];\r\n if (\r\n exportTarget &&\r\n isMatchingPath(itemPath, exportTarget, isMatchingPathOptions)\r\n ) {\r\n // 条件に一致した場合はexportのコードを生成\r\n const EXPORT = EXPORTS[exportType];\r\n exportCodes.push({\r\n type: EXPORT.type,\r\n code: EXPORT.generate(name),\r\n });\r\n // exportの種類に応じたフラグを立てる\r\n if (EXPORT.type === 'named') {\r\n hasNamedExport = true;\r\n } else if (EXPORT.type === 'default') {\r\n hasDefaultExport = true;\r\n }\r\n isExported = true;\r\n break;\r\n }\r\n }\r\n if (!isExported) {\r\n // 未指定の場合はexportDefaultAs\r\n exportCodes.push({\r\n type: EXPORTS.exportDefaultAs.type,\r\n code: EXPORTS.exportDefaultAs.generate(name),\r\n });\r\n hasNamedExport = true;\r\n }\r\n }\r\n }\r\n\r\n if (exportCodes.length) {\r\n let index;\r\n if (hasDefaultExport && hasNamedExport && !includeNamedWithDefault) {\r\n // デフォルトエクスポートと名前付きエクスポートの混在を許さない場合は名前付きエクスポートを除外\r\n index = exportCodes.reduce<string[]>((result, exportCode) => {\r\n if (exportCode.type !== 'named') {\r\n result.push(exportCode.code);\r\n }\r\n return result;\r\n }, []);\r\n } else {\r\n index = exportCodes.map((exportCode) => exportCode.code);\r\n }\r\n\r\n const indexPath = path.join(targetPath, indexFileName);\r\n if (!dryRun) {\r\n // indexファイルの出力\r\n fs.writeFileSync(indexPath, index.join('\\r\\n') + '\\r\\n', {\r\n encoding: 'utf8',\r\n });\r\n console.info(indexPath);\r\n } else {\r\n console.info(indexPath + '-------------------------------------');\r\n console.info(index.join('\\r\\n') + '\\r\\n');\r\n }\r\n }\r\n\r\n return items;\r\n}\r\n\r\nfunction _createRegex(str: string) {\r\n return new RegExp(\r\n `^${str.replace(/[.*+?^=!:${}()|\\[\\]\\/\\\\]/g, '\\\\$&')}$`,\r\n 'i',\r\n );\r\n}\r\n"],"mappings":";;;;;;;;;AAaA,MAAM,UAAU;CACd,WAAW;EACT,MAAM;EACN,WAAW,SAAiB,oBAAoB,KAAK;
|
|
1
|
+
{"version":3,"file":"indexes.cjs","names":["DEFAULT_INCLUDE","DEFAULT_EXCLUDE","DEFAULT_EXPORT_ALL","DEFAULT_EXPORT_ALL_AS","DEFAULT_EXPORT_DEFAULT","DEFAULT_EXPORT_TYPE_ALL","fs","isMatchingPath"],"sources":["../../src/indexes/indexes.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport { posix as path } from 'path';\r\nimport isMatchingPath from '../isMatchingPath';\r\nimport {\r\n DEFAULT_EXCLUDE,\r\n DEFAULT_EXPORT_ALL,\r\n DEFAULT_EXPORT_ALL_AS,\r\n DEFAULT_EXPORT_DEFAULT,\r\n DEFAULT_EXPORT_TYPE_ALL,\r\n DEFAULT_INCLUDE,\r\n} from './constants';\r\nimport type { IndexesOptions } from './types';\r\n\r\nconst EXPORTS = {\r\n exportAll: {\r\n type: 'named',\r\n generate: (name: string) => `export * from './${name}';`,\r\n },\r\n exportAllAs: {\r\n type: 'named',\r\n generate: (name: string) => `export * as ${name} from './${name}';`,\r\n },\r\n exportDefault: {\r\n type: 'default',\r\n generate: (name: string) => `export { default } from './${name}';`,\r\n },\r\n exportDefaultAs: {\r\n type: 'named',\r\n generate: (name: string) =>\r\n `export { default as ${name} } from './${name}';`,\r\n },\r\n exportTypeAll: {\r\n type: 'type',\r\n generate: (name: string) => `export type * from './${name}';`,\r\n },\r\n} as const;\r\n\r\n/**\r\n * 対象のディレクトリ配下のindexファイルを作成する\\\r\n * 対象ファイルで出力形式が特に指定されていない場合は下記の形式で出力\\\r\n * `export { default as ${name} } from './${name}';`\r\n */\r\nexport default function indexes(options: IndexesOptions = {}) {\r\n const {\r\n srcPath = 'src',\r\n indexFileName = 'index.ts',\r\n include = DEFAULT_INCLUDE,\r\n exclude = DEFAULT_EXCLUDE,\r\n exportAll = DEFAULT_EXPORT_ALL,\r\n exportAllAs = DEFAULT_EXPORT_ALL_AS,\r\n exportDefault = DEFAULT_EXPORT_DEFAULT,\r\n exportTypeAll = DEFAULT_EXPORT_TYPE_ALL,\r\n ...rest\r\n } = options;\r\n const indexRegex = _createRegex(indexFileName);\r\n\r\n // indexファイルの作成処理を実行\r\n _indexes(srcPath, indexRegex, {\r\n indexFileName,\r\n include,\r\n exclude,\r\n exportAll,\r\n exportAllAs,\r\n exportDefault,\r\n exportTypeAll,\r\n ...rest,\r\n });\r\n}\r\n\r\nfunction _indexes(\r\n targetPath: string,\r\n indexRegex: RegExp,\r\n options: IndexesOptions,\r\n) {\r\n const {\r\n indexFileName = 'index.ts',\r\n include,\r\n exclude,\r\n includeNamedWithDefault,\r\n exportAll,\r\n exportAllAs,\r\n exportDefault,\r\n exportDefaultAs,\r\n exportTypeAll,\r\n dryRun,\r\n } = options;\r\n const exportTargets = {\r\n exportAll,\r\n exportAllAs,\r\n exportDefault,\r\n exportDefaultAs,\r\n exportTypeAll,\r\n };\r\n const stat = fs.statSync(targetPath);\r\n if (!stat.isDirectory()) {\r\n console.error(`\"${targetPath}\" is not directory.`);\r\n }\r\n const items = fs.readdirSync(targetPath);\r\n items.sort((a, b) => (a.toLowerCase() > b.toLowerCase() ? 1 : -1));\r\n const exportCodes = [];\r\n let hasDefaultExport = false;\r\n let hasNamedExport = false;\r\n\r\n for (const item of items) {\r\n const itemPath = path.join(targetPath, item);\r\n const { name } = path.parse(itemPath);\r\n const stat = fs.statSync(itemPath);\r\n\r\n let children;\r\n if (stat.isDirectory()) {\r\n // ディレクトリの場合は先に子要素を処理\r\n children = _indexes(itemPath, indexRegex, options);\r\n }\r\n const isMatchingPathOptions = {\r\n conditionOptions: { indexRegex, children },\r\n };\r\n\r\n if (\r\n !indexRegex.test(item) &&\r\n isMatchingPath(itemPath, include, isMatchingPathOptions) &&\r\n !isMatchingPath(itemPath, exclude, isMatchingPathOptions)\r\n ) {\r\n // indexではない場合\r\n let isExported = false;\r\n for (const type in EXPORTS) {\r\n const exportType = type as keyof typeof EXPORTS;\r\n const exportTarget = exportTargets[exportType];\r\n if (\r\n exportTarget &&\r\n isMatchingPath(itemPath, exportTarget, isMatchingPathOptions)\r\n ) {\r\n // 条件に一致した場合はexportのコードを生成\r\n const EXPORT = EXPORTS[exportType];\r\n exportCodes.push({\r\n type: EXPORT.type,\r\n code: EXPORT.generate(name),\r\n });\r\n // exportの種類に応じたフラグを立てる\r\n if (EXPORT.type === 'named') {\r\n hasNamedExport = true;\r\n } else if (EXPORT.type === 'default') {\r\n hasDefaultExport = true;\r\n }\r\n isExported = true;\r\n break;\r\n }\r\n }\r\n if (!isExported) {\r\n // 未指定の場合はexportDefaultAs\r\n exportCodes.push({\r\n type: EXPORTS.exportDefaultAs.type,\r\n code: EXPORTS.exportDefaultAs.generate(name),\r\n });\r\n hasNamedExport = true;\r\n }\r\n }\r\n }\r\n\r\n if (exportCodes.length) {\r\n let index;\r\n if (hasDefaultExport && hasNamedExport && !includeNamedWithDefault) {\r\n // デフォルトエクスポートと名前付きエクスポートの混在を許さない場合は名前付きエクスポートを除外\r\n index = exportCodes.reduce<string[]>((result, exportCode) => {\r\n if (exportCode.type !== 'named') {\r\n result.push(exportCode.code);\r\n }\r\n return result;\r\n }, []);\r\n } else {\r\n index = exportCodes.map((exportCode) => exportCode.code);\r\n }\r\n\r\n const indexPath = path.join(targetPath, indexFileName);\r\n if (!dryRun) {\r\n // indexファイルの出力\r\n fs.writeFileSync(indexPath, index.join('\\r\\n') + '\\r\\n', {\r\n encoding: 'utf8',\r\n });\r\n console.info(indexPath);\r\n } else {\r\n console.info(indexPath + '-------------------------------------');\r\n console.info(index.join('\\r\\n') + '\\r\\n');\r\n }\r\n }\r\n\r\n return items;\r\n}\r\n\r\nfunction _createRegex(str: string) {\r\n return new RegExp(\r\n `^${str.replace(/[.*+?^=!:${}()|\\[\\]\\/\\\\]/g, '\\\\$&')}$`,\r\n 'i',\r\n );\r\n}\r\n"],"mappings":";;;;;;;;;AAaA,MAAM,UAAU;CACd,WAAW;EACT,MAAM;EACN,WAAW,SAAiB,oBAAoB,KAAK;CACvD;CACA,aAAa;EACX,MAAM;EACN,WAAW,SAAiB,eAAe,KAAK,WAAW,KAAK;CAClE;CACA,eAAe;EACb,MAAM;EACN,WAAW,SAAiB,8BAA8B,KAAK;CACjE;CACA,iBAAiB;EACf,MAAM;EACN,WAAW,SACT,uBAAuB,KAAK,aAAa,KAAK;CAClD;CACA,eAAe;EACb,MAAM;EACN,WAAW,SAAiB,yBAAyB,KAAK;CAC5D;AACF;;;;;;AAOA,SAAwB,QAAQ,UAA0B,CAAC,GAAG;CAC5D,MAAM,EACJ,UAAU,OACV,gBAAgB,YAChB,UAAUA,2CACV,UAAUC,2CACV,YAAYC,8CACZ,cAAcC,iDACd,gBAAgBC,kDAChB,gBAAgBC,mDAChB,GAAG,SACD;CAIJ,SAAS,SAHU,aAAa,aAGL,GAAG;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA;EACA,GAAG;CACL,CAAC;AACH;AAEA,SAAS,SACP,YACA,YACA,SACA;CACA,MAAM,EACJ,gBAAgB,YAChB,SACA,SACA,yBACA,WACA,aACA,eACA,iBACA,eACA,WACE;CACJ,MAAM,gBAAgB;EACpB;EACA;EACA;EACA;EACA;CACF;CAEA,IAAI,CADSC,iBAAG,SAAS,UACjB,EAAE,YAAY,GACpB,QAAQ,MAAM,IAAI,WAAW,oBAAoB;CAEnD,MAAM,QAAQA,iBAAG,YAAY,UAAU;CACvC,MAAM,MAAM,GAAG,MAAO,EAAE,YAAY,IAAI,EAAE,YAAY,IAAI,IAAI,EAAG;CACjE,MAAM,cAAc,CAAC;CACrB,IAAI,mBAAmB;CACvB,IAAI,iBAAiB;CAErB,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,WAAW,WAAK,KAAK,YAAY,IAAI;EAC3C,MAAM,EAAE,SAAS,WAAK,MAAM,QAAQ;EACpC,MAAM,OAAOA,iBAAG,SAAS,QAAQ;EAEjC,IAAI;EACJ,IAAI,KAAK,YAAY,GAEnB,WAAW,SAAS,UAAU,YAAY,OAAO;EAEnD,MAAM,wBAAwB,EAC5B,kBAAkB;GAAE;GAAY;EAAS,EAC3C;EAEA,IACE,CAAC,WAAW,KAAK,IAAI,KACrBC,sCAAe,UAAU,SAAS,qBAAqB,KACvD,CAACA,sCAAe,UAAU,SAAS,qBAAqB,GACxD;GAEA,IAAI,aAAa;GACjB,KAAK,MAAM,QAAQ,SAAS;IAC1B,MAAM,aAAa;IACnB,MAAM,eAAe,cAAc;IACnC,IACE,gBACAA,sCAAe,UAAU,cAAc,qBAAqB,GAC5D;KAEA,MAAM,SAAS,QAAQ;KACvB,YAAY,KAAK;MACf,MAAM,OAAO;MACb,MAAM,OAAO,SAAS,IAAI;KAC5B,CAAC;KAED,IAAI,OAAO,SAAS,SAClB,iBAAiB;UACZ,IAAI,OAAO,SAAS,WACzB,mBAAmB;KAErB,aAAa;KACb;IACF;GACF;GACA,IAAI,CAAC,YAAY;IAEf,YAAY,KAAK;KACf,MAAM,QAAQ,gBAAgB;KAC9B,MAAM,QAAQ,gBAAgB,SAAS,IAAI;IAC7C,CAAC;IACD,iBAAiB;GACnB;EACF;CACF;CAEA,IAAI,YAAY,QAAQ;EACtB,IAAI;EACJ,IAAI,oBAAoB,kBAAkB,CAAC,yBAEzC,QAAQ,YAAY,QAAkB,QAAQ,eAAe;GAC3D,IAAI,WAAW,SAAS,SACtB,OAAO,KAAK,WAAW,IAAI;GAE7B,OAAO;EACT,GAAG,CAAC,CAAC;OAEL,QAAQ,YAAY,KAAK,eAAe,WAAW,IAAI;EAGzD,MAAM,YAAY,WAAK,KAAK,YAAY,aAAa;EACrD,IAAI,CAAC,QAAQ;GAEX,iBAAG,cAAc,WAAW,MAAM,KAAK,MAAM,IAAI,QAAQ,EACvD,UAAU,OACZ,CAAC;GACD,QAAQ,KAAK,SAAS;EACxB,OAAO;GACL,QAAQ,KAAK,YAAY,uCAAuC;GAChE,QAAQ,KAAK,MAAM,KAAK,MAAM,IAAI,MAAM;EAC1C;CACF;CAEA,OAAO;AACT;AAEA,SAAS,aAAa,KAAa;CACjC,OAAO,IAAI,OACT,IAAI,IAAI,QAAQ,6BAA6B,MAAM,EAAE,IACrD,GACF;AACF"}
|
package/indexes/indexes.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexes.mjs","names":["path"],"sources":["../../src/indexes/indexes.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport { posix as path } from 'path';\r\nimport isMatchingPath from '../isMatchingPath';\r\nimport {\r\n DEFAULT_EXCLUDE,\r\n DEFAULT_EXPORT_ALL,\r\n DEFAULT_EXPORT_ALL_AS,\r\n DEFAULT_EXPORT_DEFAULT,\r\n DEFAULT_EXPORT_TYPE_ALL,\r\n DEFAULT_INCLUDE,\r\n} from './constants';\r\nimport type { IndexesOptions } from './types';\r\n\r\nconst EXPORTS = {\r\n exportAll: {\r\n type: 'named',\r\n generate: (name: string) => `export * from './${name}';`,\r\n },\r\n exportAllAs: {\r\n type: 'named',\r\n generate: (name: string) => `export * as ${name} from './${name}';`,\r\n },\r\n exportDefault: {\r\n type: 'default',\r\n generate: (name: string) => `export { default } from './${name}';`,\r\n },\r\n exportDefaultAs: {\r\n type: 'named',\r\n generate: (name: string) =>\r\n `export { default as ${name} } from './${name}';`,\r\n },\r\n exportTypeAll: {\r\n type: 'type',\r\n generate: (name: string) => `export type * from './${name}';`,\r\n },\r\n} as const;\r\n\r\n/**\r\n * 対象のディレクトリ配下のindexファイルを作成する\\\r\n * 対象ファイルで出力形式が特に指定されていない場合は下記の形式で出力\\\r\n * `export { default as ${name} } from './${name}';`\r\n */\r\nexport default function indexes(options: IndexesOptions = {}) {\r\n const {\r\n srcPath = 'src',\r\n indexFileName = 'index.ts',\r\n include = DEFAULT_INCLUDE,\r\n exclude = DEFAULT_EXCLUDE,\r\n exportAll = DEFAULT_EXPORT_ALL,\r\n exportAllAs = DEFAULT_EXPORT_ALL_AS,\r\n exportDefault = DEFAULT_EXPORT_DEFAULT,\r\n exportTypeAll = DEFAULT_EXPORT_TYPE_ALL,\r\n ...rest\r\n } = options;\r\n const indexRegex = _createRegex(indexFileName);\r\n\r\n // indexファイルの作成処理を実行\r\n _indexes(srcPath, indexRegex, {\r\n indexFileName,\r\n include,\r\n exclude,\r\n exportAll,\r\n exportAllAs,\r\n exportDefault,\r\n exportTypeAll,\r\n ...rest,\r\n });\r\n}\r\n\r\nfunction _indexes(\r\n targetPath: string,\r\n indexRegex: RegExp,\r\n options: IndexesOptions,\r\n) {\r\n const {\r\n indexFileName = 'index.ts',\r\n include,\r\n exclude,\r\n includeNamedWithDefault,\r\n exportAll,\r\n exportAllAs,\r\n exportDefault,\r\n exportDefaultAs,\r\n exportTypeAll,\r\n dryRun,\r\n } = options;\r\n const exportTargets = {\r\n exportAll,\r\n exportAllAs,\r\n exportDefault,\r\n exportDefaultAs,\r\n exportTypeAll,\r\n };\r\n const stat = fs.statSync(targetPath);\r\n if (!stat.isDirectory()) {\r\n console.error(`\"${targetPath}\" is not directory.`);\r\n }\r\n const items = fs.readdirSync(targetPath);\r\n items.sort((a, b) => (a.toLowerCase() > b.toLowerCase() ? 1 : -1));\r\n const exportCodes = [];\r\n let hasDefaultExport = false;\r\n let hasNamedExport = false;\r\n\r\n for (const item of items) {\r\n const itemPath = path.join(targetPath, item);\r\n const { name } = path.parse(itemPath);\r\n const stat = fs.statSync(itemPath);\r\n\r\n let children;\r\n if (stat.isDirectory()) {\r\n // ディレクトリの場合は先に子要素を処理\r\n children = _indexes(itemPath, indexRegex, options);\r\n }\r\n const isMatchingPathOptions = {\r\n conditionOptions: { indexRegex, children },\r\n };\r\n\r\n if (\r\n !indexRegex.test(item) &&\r\n isMatchingPath(itemPath, include, isMatchingPathOptions) &&\r\n !isMatchingPath(itemPath, exclude, isMatchingPathOptions)\r\n ) {\r\n // indexではない場合\r\n let isExported = false;\r\n for (const type in EXPORTS) {\r\n const exportType = type as keyof typeof EXPORTS;\r\n const exportTarget = exportTargets[exportType];\r\n if (\r\n exportTarget &&\r\n isMatchingPath(itemPath, exportTarget, isMatchingPathOptions)\r\n ) {\r\n // 条件に一致した場合はexportのコードを生成\r\n const EXPORT = EXPORTS[exportType];\r\n exportCodes.push({\r\n type: EXPORT.type,\r\n code: EXPORT.generate(name),\r\n });\r\n // exportの種類に応じたフラグを立てる\r\n if (EXPORT.type === 'named') {\r\n hasNamedExport = true;\r\n } else if (EXPORT.type === 'default') {\r\n hasDefaultExport = true;\r\n }\r\n isExported = true;\r\n break;\r\n }\r\n }\r\n if (!isExported) {\r\n // 未指定の場合はexportDefaultAs\r\n exportCodes.push({\r\n type: EXPORTS.exportDefaultAs.type,\r\n code: EXPORTS.exportDefaultAs.generate(name),\r\n });\r\n hasNamedExport = true;\r\n }\r\n }\r\n }\r\n\r\n if (exportCodes.length) {\r\n let index;\r\n if (hasDefaultExport && hasNamedExport && !includeNamedWithDefault) {\r\n // デフォルトエクスポートと名前付きエクスポートの混在を許さない場合は名前付きエクスポートを除外\r\n index = exportCodes.reduce<string[]>((result, exportCode) => {\r\n if (exportCode.type !== 'named') {\r\n result.push(exportCode.code);\r\n }\r\n return result;\r\n }, []);\r\n } else {\r\n index = exportCodes.map((exportCode) => exportCode.code);\r\n }\r\n\r\n const indexPath = path.join(targetPath, indexFileName);\r\n if (!dryRun) {\r\n // indexファイルの出力\r\n fs.writeFileSync(indexPath, index.join('\\r\\n') + '\\r\\n', {\r\n encoding: 'utf8',\r\n });\r\n console.info(indexPath);\r\n } else {\r\n console.info(indexPath + '-------------------------------------');\r\n console.info(index.join('\\r\\n') + '\\r\\n');\r\n }\r\n }\r\n\r\n return items;\r\n}\r\n\r\nfunction _createRegex(str: string) {\r\n return new RegExp(\r\n `^${str.replace(/[.*+?^=!:${}()|\\[\\]\\/\\\\]/g, '\\\\$&')}$`,\r\n 'i',\r\n );\r\n}\r\n"],"mappings":";;;;;;;AAaA,MAAM,UAAU;CACd,WAAW;EACT,MAAM;EACN,WAAW,SAAiB,oBAAoB,KAAK;
|
|
1
|
+
{"version":3,"file":"indexes.mjs","names":["path"],"sources":["../../src/indexes/indexes.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport { posix as path } from 'path';\r\nimport isMatchingPath from '../isMatchingPath';\r\nimport {\r\n DEFAULT_EXCLUDE,\r\n DEFAULT_EXPORT_ALL,\r\n DEFAULT_EXPORT_ALL_AS,\r\n DEFAULT_EXPORT_DEFAULT,\r\n DEFAULT_EXPORT_TYPE_ALL,\r\n DEFAULT_INCLUDE,\r\n} from './constants';\r\nimport type { IndexesOptions } from './types';\r\n\r\nconst EXPORTS = {\r\n exportAll: {\r\n type: 'named',\r\n generate: (name: string) => `export * from './${name}';`,\r\n },\r\n exportAllAs: {\r\n type: 'named',\r\n generate: (name: string) => `export * as ${name} from './${name}';`,\r\n },\r\n exportDefault: {\r\n type: 'default',\r\n generate: (name: string) => `export { default } from './${name}';`,\r\n },\r\n exportDefaultAs: {\r\n type: 'named',\r\n generate: (name: string) =>\r\n `export { default as ${name} } from './${name}';`,\r\n },\r\n exportTypeAll: {\r\n type: 'type',\r\n generate: (name: string) => `export type * from './${name}';`,\r\n },\r\n} as const;\r\n\r\n/**\r\n * 対象のディレクトリ配下のindexファイルを作成する\\\r\n * 対象ファイルで出力形式が特に指定されていない場合は下記の形式で出力\\\r\n * `export { default as ${name} } from './${name}';`\r\n */\r\nexport default function indexes(options: IndexesOptions = {}) {\r\n const {\r\n srcPath = 'src',\r\n indexFileName = 'index.ts',\r\n include = DEFAULT_INCLUDE,\r\n exclude = DEFAULT_EXCLUDE,\r\n exportAll = DEFAULT_EXPORT_ALL,\r\n exportAllAs = DEFAULT_EXPORT_ALL_AS,\r\n exportDefault = DEFAULT_EXPORT_DEFAULT,\r\n exportTypeAll = DEFAULT_EXPORT_TYPE_ALL,\r\n ...rest\r\n } = options;\r\n const indexRegex = _createRegex(indexFileName);\r\n\r\n // indexファイルの作成処理を実行\r\n _indexes(srcPath, indexRegex, {\r\n indexFileName,\r\n include,\r\n exclude,\r\n exportAll,\r\n exportAllAs,\r\n exportDefault,\r\n exportTypeAll,\r\n ...rest,\r\n });\r\n}\r\n\r\nfunction _indexes(\r\n targetPath: string,\r\n indexRegex: RegExp,\r\n options: IndexesOptions,\r\n) {\r\n const {\r\n indexFileName = 'index.ts',\r\n include,\r\n exclude,\r\n includeNamedWithDefault,\r\n exportAll,\r\n exportAllAs,\r\n exportDefault,\r\n exportDefaultAs,\r\n exportTypeAll,\r\n dryRun,\r\n } = options;\r\n const exportTargets = {\r\n exportAll,\r\n exportAllAs,\r\n exportDefault,\r\n exportDefaultAs,\r\n exportTypeAll,\r\n };\r\n const stat = fs.statSync(targetPath);\r\n if (!stat.isDirectory()) {\r\n console.error(`\"${targetPath}\" is not directory.`);\r\n }\r\n const items = fs.readdirSync(targetPath);\r\n items.sort((a, b) => (a.toLowerCase() > b.toLowerCase() ? 1 : -1));\r\n const exportCodes = [];\r\n let hasDefaultExport = false;\r\n let hasNamedExport = false;\r\n\r\n for (const item of items) {\r\n const itemPath = path.join(targetPath, item);\r\n const { name } = path.parse(itemPath);\r\n const stat = fs.statSync(itemPath);\r\n\r\n let children;\r\n if (stat.isDirectory()) {\r\n // ディレクトリの場合は先に子要素を処理\r\n children = _indexes(itemPath, indexRegex, options);\r\n }\r\n const isMatchingPathOptions = {\r\n conditionOptions: { indexRegex, children },\r\n };\r\n\r\n if (\r\n !indexRegex.test(item) &&\r\n isMatchingPath(itemPath, include, isMatchingPathOptions) &&\r\n !isMatchingPath(itemPath, exclude, isMatchingPathOptions)\r\n ) {\r\n // indexではない場合\r\n let isExported = false;\r\n for (const type in EXPORTS) {\r\n const exportType = type as keyof typeof EXPORTS;\r\n const exportTarget = exportTargets[exportType];\r\n if (\r\n exportTarget &&\r\n isMatchingPath(itemPath, exportTarget, isMatchingPathOptions)\r\n ) {\r\n // 条件に一致した場合はexportのコードを生成\r\n const EXPORT = EXPORTS[exportType];\r\n exportCodes.push({\r\n type: EXPORT.type,\r\n code: EXPORT.generate(name),\r\n });\r\n // exportの種類に応じたフラグを立てる\r\n if (EXPORT.type === 'named') {\r\n hasNamedExport = true;\r\n } else if (EXPORT.type === 'default') {\r\n hasDefaultExport = true;\r\n }\r\n isExported = true;\r\n break;\r\n }\r\n }\r\n if (!isExported) {\r\n // 未指定の場合はexportDefaultAs\r\n exportCodes.push({\r\n type: EXPORTS.exportDefaultAs.type,\r\n code: EXPORTS.exportDefaultAs.generate(name),\r\n });\r\n hasNamedExport = true;\r\n }\r\n }\r\n }\r\n\r\n if (exportCodes.length) {\r\n let index;\r\n if (hasDefaultExport && hasNamedExport && !includeNamedWithDefault) {\r\n // デフォルトエクスポートと名前付きエクスポートの混在を許さない場合は名前付きエクスポートを除外\r\n index = exportCodes.reduce<string[]>((result, exportCode) => {\r\n if (exportCode.type !== 'named') {\r\n result.push(exportCode.code);\r\n }\r\n return result;\r\n }, []);\r\n } else {\r\n index = exportCodes.map((exportCode) => exportCode.code);\r\n }\r\n\r\n const indexPath = path.join(targetPath, indexFileName);\r\n if (!dryRun) {\r\n // indexファイルの出力\r\n fs.writeFileSync(indexPath, index.join('\\r\\n') + '\\r\\n', {\r\n encoding: 'utf8',\r\n });\r\n console.info(indexPath);\r\n } else {\r\n console.info(indexPath + '-------------------------------------');\r\n console.info(index.join('\\r\\n') + '\\r\\n');\r\n }\r\n }\r\n\r\n return items;\r\n}\r\n\r\nfunction _createRegex(str: string) {\r\n return new RegExp(\r\n `^${str.replace(/[.*+?^=!:${}()|\\[\\]\\/\\\\]/g, '\\\\$&')}$`,\r\n 'i',\r\n );\r\n}\r\n"],"mappings":";;;;;;;AAaA,MAAM,UAAU;CACd,WAAW;EACT,MAAM;EACN,WAAW,SAAiB,oBAAoB,KAAK;CACvD;CACA,aAAa;EACX,MAAM;EACN,WAAW,SAAiB,eAAe,KAAK,WAAW,KAAK;CAClE;CACA,eAAe;EACb,MAAM;EACN,WAAW,SAAiB,8BAA8B,KAAK;CACjE;CACA,iBAAiB;EACf,MAAM;EACN,WAAW,SACT,uBAAuB,KAAK,aAAa,KAAK;CAClD;CACA,eAAe;EACb,MAAM;EACN,WAAW,SAAiB,yBAAyB,KAAK;CAC5D;AACF;;;;;;AAOA,SAAwB,QAAQ,UAA0B,CAAC,GAAG;CAC5D,MAAM,EACJ,UAAU,OACV,gBAAgB,YAChB,UAAU,iBACV,UAAU,iBACV,YAAY,oBACZ,cAAc,uBACd,gBAAgB,wBAChB,gBAAgB,yBAChB,GAAG,SACD;CAIJ,SAAS,SAHU,aAAa,aAGL,GAAG;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA;EACA,GAAG;CACL,CAAC;AACH;AAEA,SAAS,SACP,YACA,YACA,SACA;CACA,MAAM,EACJ,gBAAgB,YAChB,SACA,SACA,yBACA,WACA,aACA,eACA,iBACA,eACA,WACE;CACJ,MAAM,gBAAgB;EACpB;EACA;EACA;EACA;EACA;CACF;CAEA,IAAI,CADS,GAAG,SAAS,UACjB,EAAE,YAAY,GACpB,QAAQ,MAAM,IAAI,WAAW,oBAAoB;CAEnD,MAAM,QAAQ,GAAG,YAAY,UAAU;CACvC,MAAM,MAAM,GAAG,MAAO,EAAE,YAAY,IAAI,EAAE,YAAY,IAAI,IAAI,EAAG;CACjE,MAAM,cAAc,CAAC;CACrB,IAAI,mBAAmB;CACvB,IAAI,iBAAiB;CAErB,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,WAAWA,MAAK,KAAK,YAAY,IAAI;EAC3C,MAAM,EAAE,SAASA,MAAK,MAAM,QAAQ;EACpC,MAAM,OAAO,GAAG,SAAS,QAAQ;EAEjC,IAAI;EACJ,IAAI,KAAK,YAAY,GAEnB,WAAW,SAAS,UAAU,YAAY,OAAO;EAEnD,MAAM,wBAAwB,EAC5B,kBAAkB;GAAE;GAAY;EAAS,EAC3C;EAEA,IACE,CAAC,WAAW,KAAK,IAAI,KACrB,eAAe,UAAU,SAAS,qBAAqB,KACvD,CAAC,eAAe,UAAU,SAAS,qBAAqB,GACxD;GAEA,IAAI,aAAa;GACjB,KAAK,MAAM,QAAQ,SAAS;IAC1B,MAAM,aAAa;IACnB,MAAM,eAAe,cAAc;IACnC,IACE,gBACA,eAAe,UAAU,cAAc,qBAAqB,GAC5D;KAEA,MAAM,SAAS,QAAQ;KACvB,YAAY,KAAK;MACf,MAAM,OAAO;MACb,MAAM,OAAO,SAAS,IAAI;KAC5B,CAAC;KAED,IAAI,OAAO,SAAS,SAClB,iBAAiB;UACZ,IAAI,OAAO,SAAS,WACzB,mBAAmB;KAErB,aAAa;KACb;IACF;GACF;GACA,IAAI,CAAC,YAAY;IAEf,YAAY,KAAK;KACf,MAAM,QAAQ,gBAAgB;KAC9B,MAAM,QAAQ,gBAAgB,SAAS,IAAI;IAC7C,CAAC;IACD,iBAAiB;GACnB;EACF;CACF;CAEA,IAAI,YAAY,QAAQ;EACtB,IAAI;EACJ,IAAI,oBAAoB,kBAAkB,CAAC,yBAEzC,QAAQ,YAAY,QAAkB,QAAQ,eAAe;GAC3D,IAAI,WAAW,SAAS,SACtB,OAAO,KAAK,WAAW,IAAI;GAE7B,OAAO;EACT,GAAG,CAAC,CAAC;OAEL,QAAQ,YAAY,KAAK,eAAe,WAAW,IAAI;EAGzD,MAAM,YAAYA,MAAK,KAAK,YAAY,aAAa;EACrD,IAAI,CAAC,QAAQ;GAEX,GAAG,cAAc,WAAW,MAAM,KAAK,MAAM,IAAI,QAAQ,EACvD,UAAU,OACZ,CAAC;GACD,QAAQ,KAAK,SAAS;EACxB,OAAO;GACL,QAAQ,KAAK,YAAY,uCAAuC;GAChE,QAAQ,KAAK,MAAM,KAAK,MAAM,IAAI,MAAM;EAC1C;CACF;CAEA,OAAO;AACT;AAEA,SAAS,aAAa,KAAa;CACjC,OAAO,IAAI,OACT,IAAI,IAAI,QAAQ,6BAA6B,MAAM,EAAE,IACrD,GACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installFromLocal.cjs","names":["checkExistence","fs"],"sources":["../../src/installFromLocal/installFromLocal.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport { reduce } from 'remeda';\r\nimport checkExistence from '../checkExistence';\r\nimport type { InstallFromLocalOptions } from './types';\r\n\r\n/**\r\n * ローカルに配置されたパッケージを差し替える\r\n * @param localNodeModulesPath ローカルのnode_modulesディレクトリのパス\r\n * @param options オプション\r\n */\r\nexport default function installFromLocal(\r\n localNodeModulesPath: string,\r\n options: InstallFromLocalOptions = {},\r\n) {\r\n const {\r\n packageJsonPath = './package.json',\r\n nodeModulesPath = './node_modules',\r\n dryRun,\r\n } = options;\r\n const resolvedLocalNodeModulesPath = path.resolve(localNodeModulesPath);\r\n const resolvedPackageJsonPath = path.resolve(packageJsonPath);\r\n\r\n if (!checkExistence(resolvedLocalNodeModulesPath, resolvedPackageJsonPath)) {\r\n return;\r\n }\r\n\r\n console.info(`${localNodeModulesPath} -> ${nodeModulesPath}`);\r\n\r\n // package.jsonからローカルのnode_modulesにあるパッケージを取得\r\n const packageJson = fs.readJSONSync(resolvedPackageJsonPath);\r\n const localPackages = reduce(\r\n { ...packageJson.dependencies, ...packageJson.devDependencies },\r\n (result: Record<string, string>, value: string, key) => {\r\n if (value.startsWith(localNodeModulesPath)) {\r\n result[key] = value;\r\n } else if (value.startsWith(`file:${localNodeModulesPath}`)) {\r\n result[key] = value.substring(5);\r\n }\r\n return result;\r\n },\r\n {},\r\n );\r\n\r\n for (const packageName in localPackages) {\r\n // ローカルパッケージの確認\r\n const localPackagePath = path.resolve(localPackages[packageName]);\r\n if (fs.existsSync(localPackagePath)) {\r\n // ローカルパッケージがある場合のみ処理\r\n const installedPackagePath = path.resolve(nodeModulesPath, packageName);\r\n if (!dryRun) {\r\n // コピーを行う\r\n if (fs.existsSync(installedPackagePath)) {\r\n // 古いパッケージは削除\r\n fs.removeSync(installedPackagePath);\r\n }\r\n // パッケージをコピー\r\n fs.copySync(localPackagePath, installedPackagePath);\r\n }\r\n console.info(`${packageName} is being copied...`);\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;AAWA,SAAwB,iBACtB,sBACA,UAAmC,
|
|
1
|
+
{"version":3,"file":"installFromLocal.cjs","names":["checkExistence","fs"],"sources":["../../src/installFromLocal/installFromLocal.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport { reduce } from 'remeda';\r\nimport checkExistence from '../checkExistence';\r\nimport type { InstallFromLocalOptions } from './types';\r\n\r\n/**\r\n * ローカルに配置されたパッケージを差し替える\r\n * @param localNodeModulesPath ローカルのnode_modulesディレクトリのパス\r\n * @param options オプション\r\n */\r\nexport default function installFromLocal(\r\n localNodeModulesPath: string,\r\n options: InstallFromLocalOptions = {},\r\n) {\r\n const {\r\n packageJsonPath = './package.json',\r\n nodeModulesPath = './node_modules',\r\n dryRun,\r\n } = options;\r\n const resolvedLocalNodeModulesPath = path.resolve(localNodeModulesPath);\r\n const resolvedPackageJsonPath = path.resolve(packageJsonPath);\r\n\r\n if (!checkExistence(resolvedLocalNodeModulesPath, resolvedPackageJsonPath)) {\r\n return;\r\n }\r\n\r\n console.info(`${localNodeModulesPath} -> ${nodeModulesPath}`);\r\n\r\n // package.jsonからローカルのnode_modulesにあるパッケージを取得\r\n const packageJson = fs.readJSONSync(resolvedPackageJsonPath);\r\n const localPackages = reduce(\r\n { ...packageJson.dependencies, ...packageJson.devDependencies },\r\n (result: Record<string, string>, value: string, key) => {\r\n if (value.startsWith(localNodeModulesPath)) {\r\n result[key] = value;\r\n } else if (value.startsWith(`file:${localNodeModulesPath}`)) {\r\n result[key] = value.substring(5);\r\n }\r\n return result;\r\n },\r\n {},\r\n );\r\n\r\n for (const packageName in localPackages) {\r\n // ローカルパッケージの確認\r\n const localPackagePath = path.resolve(localPackages[packageName]);\r\n if (fs.existsSync(localPackagePath)) {\r\n // ローカルパッケージがある場合のみ処理\r\n const installedPackagePath = path.resolve(nodeModulesPath, packageName);\r\n if (!dryRun) {\r\n // コピーを行う\r\n if (fs.existsSync(installedPackagePath)) {\r\n // 古いパッケージは削除\r\n fs.removeSync(installedPackagePath);\r\n }\r\n // パッケージをコピー\r\n fs.copySync(localPackagePath, installedPackagePath);\r\n }\r\n console.info(`${packageName} is being copied...`);\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;AAWA,SAAwB,iBACtB,sBACA,UAAmC,CAAC,GACpC;CACA,MAAM,EACJ,kBAAkB,kBAClB,kBAAkB,kBAClB,WACE;CACJ,MAAM,+BAA+B,aAAK,QAAQ,oBAAoB;CACtE,MAAM,0BAA0B,aAAK,QAAQ,eAAe;CAE5D,IAAI,CAACA,sCAAe,8BAA8B,uBAAuB,GACvE;CAGF,QAAQ,KAAK,GAAG,qBAAqB,MAAM,iBAAiB;CAG5D,MAAM,cAAcC,iBAAG,aAAa,uBAAuB;CAC3D,MAAM,mCACJ;EAAE,GAAG,YAAY;EAAc,GAAG,YAAY;CAAgB,IAC7D,QAAgC,OAAe,QAAQ;EACtD,IAAI,MAAM,WAAW,oBAAoB,GACvC,OAAO,OAAO;OACT,IAAI,MAAM,WAAW,QAAQ,sBAAsB,GACxD,OAAO,OAAO,MAAM,UAAU,CAAC;EAEjC,OAAO;CACT,GACA,CAAC,CACH;CAEA,KAAK,MAAM,eAAe,eAAe;EAEvC,MAAM,mBAAmB,aAAK,QAAQ,cAAc,YAAY;EAChE,IAAIA,iBAAG,WAAW,gBAAgB,GAAG;GAEnC,MAAM,uBAAuB,aAAK,QAAQ,iBAAiB,WAAW;GACtE,IAAI,CAAC,QAAQ;IAEX,IAAIA,iBAAG,WAAW,oBAAoB,GAEpC,iBAAG,WAAW,oBAAoB;IAGpC,iBAAG,SAAS,kBAAkB,oBAAoB;GACpD;GACA,QAAQ,KAAK,GAAG,YAAY,oBAAoB;EAClD;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installFromLocal.mjs","names":[],"sources":["../../src/installFromLocal/installFromLocal.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport { reduce } from 'remeda';\r\nimport checkExistence from '../checkExistence';\r\nimport type { InstallFromLocalOptions } from './types';\r\n\r\n/**\r\n * ローカルに配置されたパッケージを差し替える\r\n * @param localNodeModulesPath ローカルのnode_modulesディレクトリのパス\r\n * @param options オプション\r\n */\r\nexport default function installFromLocal(\r\n localNodeModulesPath: string,\r\n options: InstallFromLocalOptions = {},\r\n) {\r\n const {\r\n packageJsonPath = './package.json',\r\n nodeModulesPath = './node_modules',\r\n dryRun,\r\n } = options;\r\n const resolvedLocalNodeModulesPath = path.resolve(localNodeModulesPath);\r\n const resolvedPackageJsonPath = path.resolve(packageJsonPath);\r\n\r\n if (!checkExistence(resolvedLocalNodeModulesPath, resolvedPackageJsonPath)) {\r\n return;\r\n }\r\n\r\n console.info(`${localNodeModulesPath} -> ${nodeModulesPath}`);\r\n\r\n // package.jsonからローカルのnode_modulesにあるパッケージを取得\r\n const packageJson = fs.readJSONSync(resolvedPackageJsonPath);\r\n const localPackages = reduce(\r\n { ...packageJson.dependencies, ...packageJson.devDependencies },\r\n (result: Record<string, string>, value: string, key) => {\r\n if (value.startsWith(localNodeModulesPath)) {\r\n result[key] = value;\r\n } else if (value.startsWith(`file:${localNodeModulesPath}`)) {\r\n result[key] = value.substring(5);\r\n }\r\n return result;\r\n },\r\n {},\r\n );\r\n\r\n for (const packageName in localPackages) {\r\n // ローカルパッケージの確認\r\n const localPackagePath = path.resolve(localPackages[packageName]);\r\n if (fs.existsSync(localPackagePath)) {\r\n // ローカルパッケージがある場合のみ処理\r\n const installedPackagePath = path.resolve(nodeModulesPath, packageName);\r\n if (!dryRun) {\r\n // コピーを行う\r\n if (fs.existsSync(installedPackagePath)) {\r\n // 古いパッケージは削除\r\n fs.removeSync(installedPackagePath);\r\n }\r\n // パッケージをコピー\r\n fs.copySync(localPackagePath, installedPackagePath);\r\n }\r\n console.info(`${packageName} is being copied...`);\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;AAWA,SAAwB,iBACtB,sBACA,UAAmC,
|
|
1
|
+
{"version":3,"file":"installFromLocal.mjs","names":[],"sources":["../../src/installFromLocal/installFromLocal.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport { reduce } from 'remeda';\r\nimport checkExistence from '../checkExistence';\r\nimport type { InstallFromLocalOptions } from './types';\r\n\r\n/**\r\n * ローカルに配置されたパッケージを差し替える\r\n * @param localNodeModulesPath ローカルのnode_modulesディレクトリのパス\r\n * @param options オプション\r\n */\r\nexport default function installFromLocal(\r\n localNodeModulesPath: string,\r\n options: InstallFromLocalOptions = {},\r\n) {\r\n const {\r\n packageJsonPath = './package.json',\r\n nodeModulesPath = './node_modules',\r\n dryRun,\r\n } = options;\r\n const resolvedLocalNodeModulesPath = path.resolve(localNodeModulesPath);\r\n const resolvedPackageJsonPath = path.resolve(packageJsonPath);\r\n\r\n if (!checkExistence(resolvedLocalNodeModulesPath, resolvedPackageJsonPath)) {\r\n return;\r\n }\r\n\r\n console.info(`${localNodeModulesPath} -> ${nodeModulesPath}`);\r\n\r\n // package.jsonからローカルのnode_modulesにあるパッケージを取得\r\n const packageJson = fs.readJSONSync(resolvedPackageJsonPath);\r\n const localPackages = reduce(\r\n { ...packageJson.dependencies, ...packageJson.devDependencies },\r\n (result: Record<string, string>, value: string, key) => {\r\n if (value.startsWith(localNodeModulesPath)) {\r\n result[key] = value;\r\n } else if (value.startsWith(`file:${localNodeModulesPath}`)) {\r\n result[key] = value.substring(5);\r\n }\r\n return result;\r\n },\r\n {},\r\n );\r\n\r\n for (const packageName in localPackages) {\r\n // ローカルパッケージの確認\r\n const localPackagePath = path.resolve(localPackages[packageName]);\r\n if (fs.existsSync(localPackagePath)) {\r\n // ローカルパッケージがある場合のみ処理\r\n const installedPackagePath = path.resolve(nodeModulesPath, packageName);\r\n if (!dryRun) {\r\n // コピーを行う\r\n if (fs.existsSync(installedPackagePath)) {\r\n // 古いパッケージは削除\r\n fs.removeSync(installedPackagePath);\r\n }\r\n // パッケージをコピー\r\n fs.copySync(localPackagePath, installedPackagePath);\r\n }\r\n console.info(`${packageName} is being copied...`);\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;AAWA,SAAwB,iBACtB,sBACA,UAAmC,CAAC,GACpC;CACA,MAAM,EACJ,kBAAkB,kBAClB,kBAAkB,kBAClB,WACE;CACJ,MAAM,+BAA+B,KAAK,QAAQ,oBAAoB;CACtE,MAAM,0BAA0B,KAAK,QAAQ,eAAe;CAE5D,IAAI,CAAC,eAAe,8BAA8B,uBAAuB,GACvE;CAGF,QAAQ,KAAK,GAAG,qBAAqB,MAAM,iBAAiB;CAG5D,MAAM,cAAc,GAAG,aAAa,uBAAuB;CAC3D,MAAM,gBAAgB,OACpB;EAAE,GAAG,YAAY;EAAc,GAAG,YAAY;CAAgB,IAC7D,QAAgC,OAAe,QAAQ;EACtD,IAAI,MAAM,WAAW,oBAAoB,GACvC,OAAO,OAAO;OACT,IAAI,MAAM,WAAW,QAAQ,sBAAsB,GACxD,OAAO,OAAO,MAAM,UAAU,CAAC;EAEjC,OAAO;CACT,GACA,CAAC,CACH;CAEA,KAAK,MAAM,eAAe,eAAe;EAEvC,MAAM,mBAAmB,KAAK,QAAQ,cAAc,YAAY;EAChE,IAAI,GAAG,WAAW,gBAAgB,GAAG;GAEnC,MAAM,uBAAuB,KAAK,QAAQ,iBAAiB,WAAW;GACtE,IAAI,CAAC,QAAQ;IAEX,IAAI,GAAG,WAAW,oBAAoB,GAEpC,GAAG,WAAW,oBAAoB;IAGpC,GAAG,SAAS,kBAAkB,oBAAoB;GACpD;GACA,QAAQ,KAAK,GAAG,YAAY,oBAAoB;EAClD;CACF;AACF"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ConditionConfig, ConditionFn, ConditionFnOptions, ConditionValues, IsMatchingPathCondition, IsMatchingPathOptions } from "./types.cjs";
|
|
2
2
|
import isMatchingPath from "./isMatchingPath.cjs";
|
|
3
|
-
export { ConditionConfig, ConditionFn, ConditionFnOptions, ConditionValues, IsMatchingPathCondition, IsMatchingPathOptions, isMatchingPath as default };
|
|
3
|
+
export { type ConditionConfig, type ConditionFn, type ConditionFnOptions, type ConditionValues, type IsMatchingPathCondition, type IsMatchingPathOptions, isMatchingPath as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ConditionConfig, ConditionFn, ConditionFnOptions, ConditionValues, IsMatchingPathCondition, IsMatchingPathOptions } from "./types.mjs";
|
|
2
2
|
import isMatchingPath from "./isMatchingPath.mjs";
|
|
3
|
-
export { ConditionConfig, ConditionFn, ConditionFnOptions, ConditionValues, IsMatchingPathCondition, IsMatchingPathOptions, isMatchingPath as default };
|
|
3
|
+
export { type ConditionConfig, type ConditionFn, type ConditionFnOptions, type ConditionValues, type IsMatchingPathCondition, type IsMatchingPathOptions, isMatchingPath as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isMatchingPath.cjs","names":["fs"],"sources":["../../src/isMatchingPath/isMatchingPath.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport { posix as path } from 'path';\r\nimport { isFunction, isString } from 'remeda';\r\nimport type {\r\n ConditionFnOptions,\r\n ConditionValues,\r\n IsMatchingPathCondition,\r\n IsMatchingPathOptions,\r\n} from './types';\r\n\r\n/**\r\n * 処理対象のパスか判定する\r\n * @param targetPath 検査対象のパス\r\n * @param conditions 一致条件\r\n * @param options オプション\r\n * @returns 一致するか\r\n */\r\nexport default function isMatchingPath<\r\n O extends ConditionFnOptions = ConditionFnOptions,\r\n>(\r\n targetPath: string,\r\n conditions:\r\n | IsMatchingPathCondition<O>\r\n | IsMatchingPathCondition<O>[]\r\n | null\r\n | undefined,\r\n options: IsMatchingPathOptions<O> = {},\r\n) {\r\n if (!conditions) {\r\n return false;\r\n }\r\n const conditionList = Array.isArray(conditions) ? conditions : [conditions];\r\n // パスは'/'区切り\r\n const posixPath = path.normalize(targetPath);\r\n const parsedPath = path.parse(posixPath);\r\n const parsedDir = path.parse(parsedPath.dir);\r\n const values = {\r\n path: posixPath,\r\n ...parsedPath,\r\n dirpath: parsedPath.dir,\r\n dirbase: parsedDir.base,\r\n dirname: parsedDir.name,\r\n dirext: parsedDir.ext,\r\n };\r\n values.path = posixPath;\r\n\r\n for (const condition of conditionList) {\r\n if (_isMatching(values.path, values, condition, options)) {\r\n // conditionの内の何れかがtrueならば一致\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction _isMatching<O extends ConditionFnOptions = ConditionFnOptions>(\r\n value: string,\r\n values: ConditionValues,\r\n condition: IsMatchingPathCondition<O>,\r\n options: IsMatchingPathOptions<O>,\r\n): boolean {\r\n if (isString(condition)) {\r\n // 条件が文字列\r\n if (value.includes(condition)) {\r\n return true;\r\n }\r\n } else if (condition instanceof RegExp) {\r\n // 条件が正規表現\r\n if (condition.test(value)) {\r\n return true;\r\n }\r\n } else if (isFunction(condition)) {\r\n // 条件が関数\r\n return condition(values, (options.conditionOptions ?? {}) as O);\r\n } else {\r\n // 条件が設定\r\n const { valueType = 'path', entryType = 'both', conditions } = condition;\r\n if (entryType !== 'both') {\r\n const stat = fs.statSync(values.path);\r\n if (\r\n (stat.isDirectory() && entryType !== 'dir') ||\r\n (stat.isFile() && entryType !== 'file')\r\n ) {\r\n return false;\r\n }\r\n }\r\n const conditionList = Array.isArray(conditions) ? conditions : [conditions];\r\n // 設定配下のconditionsはand条件\r\n return conditionList.every((cond) =>\r\n _isMatching(values[valueType], values, cond, options),\r\n );\r\n }\r\n return false;\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;AAiBA,SAAwB,eAGtB,YACA,YAKA,UAAoC,
|
|
1
|
+
{"version":3,"file":"isMatchingPath.cjs","names":["fs"],"sources":["../../src/isMatchingPath/isMatchingPath.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport { posix as path } from 'path';\r\nimport { isFunction, isString } from 'remeda';\r\nimport type {\r\n ConditionFnOptions,\r\n ConditionValues,\r\n IsMatchingPathCondition,\r\n IsMatchingPathOptions,\r\n} from './types';\r\n\r\n/**\r\n * 処理対象のパスか判定する\r\n * @param targetPath 検査対象のパス\r\n * @param conditions 一致条件\r\n * @param options オプション\r\n * @returns 一致するか\r\n */\r\nexport default function isMatchingPath<\r\n O extends ConditionFnOptions = ConditionFnOptions,\r\n>(\r\n targetPath: string,\r\n conditions:\r\n | IsMatchingPathCondition<O>\r\n | IsMatchingPathCondition<O>[]\r\n | null\r\n | undefined,\r\n options: IsMatchingPathOptions<O> = {},\r\n) {\r\n if (!conditions) {\r\n return false;\r\n }\r\n const conditionList = Array.isArray(conditions) ? conditions : [conditions];\r\n // パスは'/'区切り\r\n const posixPath = path.normalize(targetPath);\r\n const parsedPath = path.parse(posixPath);\r\n const parsedDir = path.parse(parsedPath.dir);\r\n const values = {\r\n path: posixPath,\r\n ...parsedPath,\r\n dirpath: parsedPath.dir,\r\n dirbase: parsedDir.base,\r\n dirname: parsedDir.name,\r\n dirext: parsedDir.ext,\r\n };\r\n values.path = posixPath;\r\n\r\n for (const condition of conditionList) {\r\n if (_isMatching(values.path, values, condition, options)) {\r\n // conditionの内の何れかがtrueならば一致\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction _isMatching<O extends ConditionFnOptions = ConditionFnOptions>(\r\n value: string,\r\n values: ConditionValues,\r\n condition: IsMatchingPathCondition<O>,\r\n options: IsMatchingPathOptions<O>,\r\n): boolean {\r\n if (isString(condition)) {\r\n // 条件が文字列\r\n if (value.includes(condition)) {\r\n return true;\r\n }\r\n } else if (condition instanceof RegExp) {\r\n // 条件が正規表現\r\n if (condition.test(value)) {\r\n return true;\r\n }\r\n } else if (isFunction(condition)) {\r\n // 条件が関数\r\n return condition(values, (options.conditionOptions ?? {}) as O);\r\n } else {\r\n // 条件が設定\r\n const { valueType = 'path', entryType = 'both', conditions } = condition;\r\n if (entryType !== 'both') {\r\n const stat = fs.statSync(values.path);\r\n if (\r\n (stat.isDirectory() && entryType !== 'dir') ||\r\n (stat.isFile() && entryType !== 'file')\r\n ) {\r\n return false;\r\n }\r\n }\r\n const conditionList = Array.isArray(conditions) ? conditions : [conditions];\r\n // 設定配下のconditionsはand条件\r\n return conditionList.every((cond) =>\r\n _isMatching(values[valueType], values, cond, options),\r\n );\r\n }\r\n return false;\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;AAiBA,SAAwB,eAGtB,YACA,YAKA,UAAoC,CAAC,GACrC;CACA,IAAI,CAAC,YACH,OAAO;CAET,MAAM,gBAAgB,MAAM,QAAQ,UAAU,IAAI,aAAa,CAAC,UAAU;CAE1E,MAAM,YAAY,WAAK,UAAU,UAAU;CAC3C,MAAM,aAAa,WAAK,MAAM,SAAS;CACvC,MAAM,YAAY,WAAK,MAAM,WAAW,GAAG;CAC3C,MAAM,SAAS;EACb,MAAM;EACN,GAAG;EACH,SAAS,WAAW;EACpB,SAAS,UAAU;EACnB,SAAS,UAAU;EACnB,QAAQ,UAAU;CACpB;CACA,OAAO,OAAO;CAEd,KAAK,MAAM,aAAa,eACtB,IAAI,YAAY,OAAO,MAAM,QAAQ,WAAW,OAAO,GAErD,OAAO;CAGX,OAAO;AACT;AAEA,SAAS,YACP,OACA,QACA,WACA,SACS;CACT,yBAAa,SAAS,GAEpB;MAAI,MAAM,SAAS,SAAS,GAC1B,OAAO;CACT,OACK,IAAI,qBAAqB,QAE9B;MAAI,UAAU,KAAK,KAAK,GACtB,OAAO;CACT,OACK,2BAAe,SAAS,GAE7B,OAAO,UAAU,QAAS,QAAQ,oBAAoB,CAAC,CAAO;MACzD;EAEL,MAAM,EAAE,YAAY,QAAQ,YAAY,QAAQ,eAAe;EAC/D,IAAI,cAAc,QAAQ;GACxB,MAAM,OAAOA,iBAAG,SAAS,OAAO,IAAI;GACpC,IACG,KAAK,YAAY,KAAK,cAAc,SACpC,KAAK,OAAO,KAAK,cAAc,QAEhC,OAAO;EAEX;EAGA,QAFsB,MAAM,QAAQ,UAAU,IAAI,aAAa,CAAC,UAAU,GAErD,OAAO,SAC1B,YAAY,OAAO,YAAY,QAAQ,MAAM,OAAO,CACtD;CACF;CACA,OAAO;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isMatchingPath.mjs","names":["path"],"sources":["../../src/isMatchingPath/isMatchingPath.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport { posix as path } from 'path';\r\nimport { isFunction, isString } from 'remeda';\r\nimport type {\r\n ConditionFnOptions,\r\n ConditionValues,\r\n IsMatchingPathCondition,\r\n IsMatchingPathOptions,\r\n} from './types';\r\n\r\n/**\r\n * 処理対象のパスか判定する\r\n * @param targetPath 検査対象のパス\r\n * @param conditions 一致条件\r\n * @param options オプション\r\n * @returns 一致するか\r\n */\r\nexport default function isMatchingPath<\r\n O extends ConditionFnOptions = ConditionFnOptions,\r\n>(\r\n targetPath: string,\r\n conditions:\r\n | IsMatchingPathCondition<O>\r\n | IsMatchingPathCondition<O>[]\r\n | null\r\n | undefined,\r\n options: IsMatchingPathOptions<O> = {},\r\n) {\r\n if (!conditions) {\r\n return false;\r\n }\r\n const conditionList = Array.isArray(conditions) ? conditions : [conditions];\r\n // パスは'/'区切り\r\n const posixPath = path.normalize(targetPath);\r\n const parsedPath = path.parse(posixPath);\r\n const parsedDir = path.parse(parsedPath.dir);\r\n const values = {\r\n path: posixPath,\r\n ...parsedPath,\r\n dirpath: parsedPath.dir,\r\n dirbase: parsedDir.base,\r\n dirname: parsedDir.name,\r\n dirext: parsedDir.ext,\r\n };\r\n values.path = posixPath;\r\n\r\n for (const condition of conditionList) {\r\n if (_isMatching(values.path, values, condition, options)) {\r\n // conditionの内の何れかがtrueならば一致\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction _isMatching<O extends ConditionFnOptions = ConditionFnOptions>(\r\n value: string,\r\n values: ConditionValues,\r\n condition: IsMatchingPathCondition<O>,\r\n options: IsMatchingPathOptions<O>,\r\n): boolean {\r\n if (isString(condition)) {\r\n // 条件が文字列\r\n if (value.includes(condition)) {\r\n return true;\r\n }\r\n } else if (condition instanceof RegExp) {\r\n // 条件が正規表現\r\n if (condition.test(value)) {\r\n return true;\r\n }\r\n } else if (isFunction(condition)) {\r\n // 条件が関数\r\n return condition(values, (options.conditionOptions ?? {}) as O);\r\n } else {\r\n // 条件が設定\r\n const { valueType = 'path', entryType = 'both', conditions } = condition;\r\n if (entryType !== 'both') {\r\n const stat = fs.statSync(values.path);\r\n if (\r\n (stat.isDirectory() && entryType !== 'dir') ||\r\n (stat.isFile() && entryType !== 'file')\r\n ) {\r\n return false;\r\n }\r\n }\r\n const conditionList = Array.isArray(conditions) ? conditions : [conditions];\r\n // 設定配下のconditionsはand条件\r\n return conditionList.every((cond) =>\r\n _isMatching(values[valueType], values, cond, options),\r\n );\r\n }\r\n return false;\r\n}\r\n"],"mappings":";;;;;;;;;;;;AAiBA,SAAwB,eAGtB,YACA,YAKA,UAAoC,
|
|
1
|
+
{"version":3,"file":"isMatchingPath.mjs","names":["path"],"sources":["../../src/isMatchingPath/isMatchingPath.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport { posix as path } from 'path';\r\nimport { isFunction, isString } from 'remeda';\r\nimport type {\r\n ConditionFnOptions,\r\n ConditionValues,\r\n IsMatchingPathCondition,\r\n IsMatchingPathOptions,\r\n} from './types';\r\n\r\n/**\r\n * 処理対象のパスか判定する\r\n * @param targetPath 検査対象のパス\r\n * @param conditions 一致条件\r\n * @param options オプション\r\n * @returns 一致するか\r\n */\r\nexport default function isMatchingPath<\r\n O extends ConditionFnOptions = ConditionFnOptions,\r\n>(\r\n targetPath: string,\r\n conditions:\r\n | IsMatchingPathCondition<O>\r\n | IsMatchingPathCondition<O>[]\r\n | null\r\n | undefined,\r\n options: IsMatchingPathOptions<O> = {},\r\n) {\r\n if (!conditions) {\r\n return false;\r\n }\r\n const conditionList = Array.isArray(conditions) ? conditions : [conditions];\r\n // パスは'/'区切り\r\n const posixPath = path.normalize(targetPath);\r\n const parsedPath = path.parse(posixPath);\r\n const parsedDir = path.parse(parsedPath.dir);\r\n const values = {\r\n path: posixPath,\r\n ...parsedPath,\r\n dirpath: parsedPath.dir,\r\n dirbase: parsedDir.base,\r\n dirname: parsedDir.name,\r\n dirext: parsedDir.ext,\r\n };\r\n values.path = posixPath;\r\n\r\n for (const condition of conditionList) {\r\n if (_isMatching(values.path, values, condition, options)) {\r\n // conditionの内の何れかがtrueならば一致\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction _isMatching<O extends ConditionFnOptions = ConditionFnOptions>(\r\n value: string,\r\n values: ConditionValues,\r\n condition: IsMatchingPathCondition<O>,\r\n options: IsMatchingPathOptions<O>,\r\n): boolean {\r\n if (isString(condition)) {\r\n // 条件が文字列\r\n if (value.includes(condition)) {\r\n return true;\r\n }\r\n } else if (condition instanceof RegExp) {\r\n // 条件が正規表現\r\n if (condition.test(value)) {\r\n return true;\r\n }\r\n } else if (isFunction(condition)) {\r\n // 条件が関数\r\n return condition(values, (options.conditionOptions ?? {}) as O);\r\n } else {\r\n // 条件が設定\r\n const { valueType = 'path', entryType = 'both', conditions } = condition;\r\n if (entryType !== 'both') {\r\n const stat = fs.statSync(values.path);\r\n if (\r\n (stat.isDirectory() && entryType !== 'dir') ||\r\n (stat.isFile() && entryType !== 'file')\r\n ) {\r\n return false;\r\n }\r\n }\r\n const conditionList = Array.isArray(conditions) ? conditions : [conditions];\r\n // 設定配下のconditionsはand条件\r\n return conditionList.every((cond) =>\r\n _isMatching(values[valueType], values, cond, options),\r\n );\r\n }\r\n return false;\r\n}\r\n"],"mappings":";;;;;;;;;;;;AAiBA,SAAwB,eAGtB,YACA,YAKA,UAAoC,CAAC,GACrC;CACA,IAAI,CAAC,YACH,OAAO;CAET,MAAM,gBAAgB,MAAM,QAAQ,UAAU,IAAI,aAAa,CAAC,UAAU;CAE1E,MAAM,YAAYA,MAAK,UAAU,UAAU;CAC3C,MAAM,aAAaA,MAAK,MAAM,SAAS;CACvC,MAAM,YAAYA,MAAK,MAAM,WAAW,GAAG;CAC3C,MAAM,SAAS;EACb,MAAM;EACN,GAAG;EACH,SAAS,WAAW;EACpB,SAAS,UAAU;EACnB,SAAS,UAAU;EACnB,QAAQ,UAAU;CACpB;CACA,OAAO,OAAO;CAEd,KAAK,MAAM,aAAa,eACtB,IAAI,YAAY,OAAO,MAAM,QAAQ,WAAW,OAAO,GAErD,OAAO;CAGX,OAAO;AACT;AAEA,SAAS,YACP,OACA,QACA,WACA,SACS;CACT,IAAI,SAAS,SAAS,GAEpB;MAAI,MAAM,SAAS,SAAS,GAC1B,OAAO;CACT,OACK,IAAI,qBAAqB,QAE9B;MAAI,UAAU,KAAK,KAAK,GACtB,OAAO;CACT,OACK,IAAI,WAAW,SAAS,GAE7B,OAAO,UAAU,QAAS,QAAQ,oBAAoB,CAAC,CAAO;MACzD;EAEL,MAAM,EAAE,YAAY,QAAQ,YAAY,QAAQ,eAAe;EAC/D,IAAI,cAAc,QAAQ;GACxB,MAAM,OAAO,GAAG,SAAS,OAAO,IAAI;GACpC,IACG,KAAK,YAAY,KAAK,cAAc,SACpC,KAAK,OAAO,KAAK,cAAc,QAEhC,OAAO;EAEX;EAGA,QAFsB,MAAM,QAAQ,UAAU,IAAI,aAAa,CAAC,UAAU,GAErD,OAAO,SAC1B,YAAY,OAAO,YAAY,QAAQ,MAAM,OAAO,CACtD;CACF;CACA,OAAO;AACT"}
|
package/isTargetPath/index.d.cts
CHANGED
package/isTargetPath/index.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isTargetPath.cjs","names":["fs","isMatchingPath"],"sources":["../../src/isTargetPath/isTargetPath.ts"],"sourcesContent":["import fs, { Stats } from 'fs-extra';\r\nimport type { ConditionFnOptions } from '../isMatchingPath';\r\nimport isMatchingPath from '../isMatchingPath';\r\nimport type { IsTargetPathOptions } from './types';\r\n\r\nconst IS_TARGET_TYPE = {\r\n file: (stat: Stats) => stat.isFile(),\r\n dir: (stat: Stats) => stat.isDirectory(),\r\n both: (stat: Stats) => stat.isFile() || stat.isDirectory(),\r\n} as const;\r\n\r\nexport default async function isTargetPath<\r\n O extends ConditionFnOptions = ConditionFnOptions,\r\n>(itemPath: string, options: IsTargetPathOptions<O> = {}) {\r\n const {\r\n itemType = 'file',\r\n defaultInclude,\r\n defaultExclude,\r\n include = defaultInclude,\r\n exclude = defaultExclude,\r\n ...rest\r\n } = options;\r\n const stat = fs.statSync(itemPath);\r\n\r\n return (\r\n IS_TARGET_TYPE[itemType](stat) &&\r\n (!include || isMatchingPath(itemPath, include, rest)) &&\r\n (!exclude || !isMatchingPath(itemPath, exclude, rest))\r\n );\r\n}\r\n"],"mappings":";;;;;;;AAKA,MAAM,iBAAiB;CACrB,OAAO,SAAgB,KAAK,
|
|
1
|
+
{"version":3,"file":"isTargetPath.cjs","names":["fs","isMatchingPath"],"sources":["../../src/isTargetPath/isTargetPath.ts"],"sourcesContent":["import fs, { Stats } from 'fs-extra';\r\nimport type { ConditionFnOptions } from '../isMatchingPath';\r\nimport isMatchingPath from '../isMatchingPath';\r\nimport type { IsTargetPathOptions } from './types';\r\n\r\nconst IS_TARGET_TYPE = {\r\n file: (stat: Stats) => stat.isFile(),\r\n dir: (stat: Stats) => stat.isDirectory(),\r\n both: (stat: Stats) => stat.isFile() || stat.isDirectory(),\r\n} as const;\r\n\r\nexport default async function isTargetPath<\r\n O extends ConditionFnOptions = ConditionFnOptions,\r\n>(itemPath: string, options: IsTargetPathOptions<O> = {}) {\r\n const {\r\n itemType = 'file',\r\n defaultInclude,\r\n defaultExclude,\r\n include = defaultInclude,\r\n exclude = defaultExclude,\r\n ...rest\r\n } = options;\r\n const stat = fs.statSync(itemPath);\r\n\r\n return (\r\n IS_TARGET_TYPE[itemType](stat) &&\r\n (!include || isMatchingPath(itemPath, include, rest)) &&\r\n (!exclude || !isMatchingPath(itemPath, exclude, rest))\r\n );\r\n}\r\n"],"mappings":";;;;;;;AAKA,MAAM,iBAAiB;CACrB,OAAO,SAAgB,KAAK,OAAO;CACnC,MAAM,SAAgB,KAAK,YAAY;CACvC,OAAO,SAAgB,KAAK,OAAO,KAAK,KAAK,YAAY;AAC3D;AAEA,eAA8B,aAE5B,UAAkB,UAAkC,CAAC,GAAG;CACxD,MAAM,EACJ,WAAW,QACX,gBACA,gBACA,UAAU,gBACV,UAAU,gBACV,GAAG,SACD;CACJ,MAAM,OAAOA,iBAAG,SAAS,QAAQ;CAEjC,OACE,eAAe,UAAU,IAAI,MAC5B,CAAC,WAAWC,sCAAe,UAAU,SAAS,IAAI,OAClD,CAAC,WAAW,CAACA,sCAAe,UAAU,SAAS,IAAI;AAExD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isTargetPath.mjs","names":[],"sources":["../../src/isTargetPath/isTargetPath.ts"],"sourcesContent":["import fs, { Stats } from 'fs-extra';\r\nimport type { ConditionFnOptions } from '../isMatchingPath';\r\nimport isMatchingPath from '../isMatchingPath';\r\nimport type { IsTargetPathOptions } from './types';\r\n\r\nconst IS_TARGET_TYPE = {\r\n file: (stat: Stats) => stat.isFile(),\r\n dir: (stat: Stats) => stat.isDirectory(),\r\n both: (stat: Stats) => stat.isFile() || stat.isDirectory(),\r\n} as const;\r\n\r\nexport default async function isTargetPath<\r\n O extends ConditionFnOptions = ConditionFnOptions,\r\n>(itemPath: string, options: IsTargetPathOptions<O> = {}) {\r\n const {\r\n itemType = 'file',\r\n defaultInclude,\r\n defaultExclude,\r\n include = defaultInclude,\r\n exclude = defaultExclude,\r\n ...rest\r\n } = options;\r\n const stat = fs.statSync(itemPath);\r\n\r\n return (\r\n IS_TARGET_TYPE[itemType](stat) &&\r\n (!include || isMatchingPath(itemPath, include, rest)) &&\r\n (!exclude || !isMatchingPath(itemPath, exclude, rest))\r\n );\r\n}\r\n"],"mappings":";;;;;AAKA,MAAM,iBAAiB;CACrB,OAAO,SAAgB,KAAK,
|
|
1
|
+
{"version":3,"file":"isTargetPath.mjs","names":[],"sources":["../../src/isTargetPath/isTargetPath.ts"],"sourcesContent":["import fs, { Stats } from 'fs-extra';\r\nimport type { ConditionFnOptions } from '../isMatchingPath';\r\nimport isMatchingPath from '../isMatchingPath';\r\nimport type { IsTargetPathOptions } from './types';\r\n\r\nconst IS_TARGET_TYPE = {\r\n file: (stat: Stats) => stat.isFile(),\r\n dir: (stat: Stats) => stat.isDirectory(),\r\n both: (stat: Stats) => stat.isFile() || stat.isDirectory(),\r\n} as const;\r\n\r\nexport default async function isTargetPath<\r\n O extends ConditionFnOptions = ConditionFnOptions,\r\n>(itemPath: string, options: IsTargetPathOptions<O> = {}) {\r\n const {\r\n itemType = 'file',\r\n defaultInclude,\r\n defaultExclude,\r\n include = defaultInclude,\r\n exclude = defaultExclude,\r\n ...rest\r\n } = options;\r\n const stat = fs.statSync(itemPath);\r\n\r\n return (\r\n IS_TARGET_TYPE[itemType](stat) &&\r\n (!include || isMatchingPath(itemPath, include, rest)) &&\r\n (!exclude || !isMatchingPath(itemPath, exclude, rest))\r\n );\r\n}\r\n"],"mappings":";;;;;AAKA,MAAM,iBAAiB;CACrB,OAAO,SAAgB,KAAK,OAAO;CACnC,MAAM,SAAgB,KAAK,YAAY;CACvC,OAAO,SAAgB,KAAK,OAAO,KAAK,KAAK,YAAY;AAC3D;AAEA,eAA8B,aAE5B,UAAkB,UAAkC,CAAC,GAAG;CACxD,MAAM,EACJ,WAAW,QACX,gBACA,gBACA,UAAU,gBACV,UAAU,gBACV,GAAG,SACD;CACJ,MAAM,OAAO,GAAG,SAAS,QAAQ;CAEjC,OACE,eAAe,UAAU,IAAI,MAC5B,CAAC,WAAW,eAAe,UAAU,SAAS,IAAI,OAClD,CAAC,WAAW,CAAC,eAAe,UAAU,SAAS,IAAI;AAExD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moveFilesToSubdir.cjs","names":["fs","isTargetPath"],"sources":["../../src/moveFilesToSubdir/moveFilesToSubdir.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport isTargetPath from '../isTargetPath';\r\nimport type { MoveFilesToSubdirOptions } from './types';\r\n\r\n/**\r\n * 対象のディレクトリ直下のファイルを、拡張子を除いた同名のサブディレクトリ直下に移動する\r\n * @param dirPath 対象のディレクトリのパス\r\n */\r\nexport default async function moveFilesToSubdir(\r\n dirPath: string,\r\n options: MoveFilesToSubdirOptions = {},\r\n) {\r\n const { process, index, ...rest } = options;\r\n const items = await fs.readdir(dirPath);\r\n for (const item of items) {\r\n const itemPath = path.join(dirPath, item);\r\n if (isTargetPath(itemPath, rest)) {\r\n const { name, ext } = path.parse(item);\r\n // 移動先のディレクトリパスを生成\r\n const subdirPath = path.join(dirPath, name);\r\n // 移動先のディレクトリが存在しなければ作成\r\n fs.ensureDirSync(subdirPath);\r\n // 移動\r\n fs.moveSync(itemPath, path.join(subdirPath, item));\r\n if (index) {\r\n fs.writeFileSync(\r\n path.join(subdirPath, `index${ext}`),\r\n `export { default } from './${name}';`,\r\n {\r\n encoding: 'utf8',\r\n },\r\n );\r\n }\r\n if (process) {\r\n process(subdirPath, item);\r\n }\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;AASA,eAA8B,kBAC5B,SACA,UAAoC,
|
|
1
|
+
{"version":3,"file":"moveFilesToSubdir.cjs","names":["fs","isTargetPath"],"sources":["../../src/moveFilesToSubdir/moveFilesToSubdir.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport isTargetPath from '../isTargetPath';\r\nimport type { MoveFilesToSubdirOptions } from './types';\r\n\r\n/**\r\n * 対象のディレクトリ直下のファイルを、拡張子を除いた同名のサブディレクトリ直下に移動する\r\n * @param dirPath 対象のディレクトリのパス\r\n */\r\nexport default async function moveFilesToSubdir(\r\n dirPath: string,\r\n options: MoveFilesToSubdirOptions = {},\r\n) {\r\n const { process, index, ...rest } = options;\r\n const items = await fs.readdir(dirPath);\r\n for (const item of items) {\r\n const itemPath = path.join(dirPath, item);\r\n if (isTargetPath(itemPath, rest)) {\r\n const { name, ext } = path.parse(item);\r\n // 移動先のディレクトリパスを生成\r\n const subdirPath = path.join(dirPath, name);\r\n // 移動先のディレクトリが存在しなければ作成\r\n fs.ensureDirSync(subdirPath);\r\n // 移動\r\n fs.moveSync(itemPath, path.join(subdirPath, item));\r\n if (index) {\r\n fs.writeFileSync(\r\n path.join(subdirPath, `index${ext}`),\r\n `export { default } from './${name}';`,\r\n {\r\n encoding: 'utf8',\r\n },\r\n );\r\n }\r\n if (process) {\r\n process(subdirPath, item);\r\n }\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;AASA,eAA8B,kBAC5B,SACA,UAAoC,CAAC,GACrC;CACA,MAAM,EAAE,SAAS,OAAO,GAAG,SAAS;CACpC,MAAM,QAAQ,MAAMA,iBAAG,QAAQ,OAAO;CACtC,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,WAAW,aAAK,KAAK,SAAS,IAAI;EACxC,IAAIC,kCAAa,UAAU,IAAI,GAAG;GAChC,MAAM,EAAE,MAAM,QAAQ,aAAK,MAAM,IAAI;GAErC,MAAM,aAAa,aAAK,KAAK,SAAS,IAAI;GAE1C,iBAAG,cAAc,UAAU;GAE3B,iBAAG,SAAS,UAAU,aAAK,KAAK,YAAY,IAAI,CAAC;GACjD,IAAI,OACF,iBAAG,cACD,aAAK,KAAK,YAAY,QAAQ,KAAK,GACnC,8BAA8B,KAAK,KACnC,EACE,UAAU,OACZ,CACF;GAEF,IAAI,SACF,QAAQ,YAAY,IAAI;EAE5B;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moveFilesToSubdir.mjs","names":[],"sources":["../../src/moveFilesToSubdir/moveFilesToSubdir.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport isTargetPath from '../isTargetPath';\r\nimport type { MoveFilesToSubdirOptions } from './types';\r\n\r\n/**\r\n * 対象のディレクトリ直下のファイルを、拡張子を除いた同名のサブディレクトリ直下に移動する\r\n * @param dirPath 対象のディレクトリのパス\r\n */\r\nexport default async function moveFilesToSubdir(\r\n dirPath: string,\r\n options: MoveFilesToSubdirOptions = {},\r\n) {\r\n const { process, index, ...rest } = options;\r\n const items = await fs.readdir(dirPath);\r\n for (const item of items) {\r\n const itemPath = path.join(dirPath, item);\r\n if (isTargetPath(itemPath, rest)) {\r\n const { name, ext } = path.parse(item);\r\n // 移動先のディレクトリパスを生成\r\n const subdirPath = path.join(dirPath, name);\r\n // 移動先のディレクトリが存在しなければ作成\r\n fs.ensureDirSync(subdirPath);\r\n // 移動\r\n fs.moveSync(itemPath, path.join(subdirPath, item));\r\n if (index) {\r\n fs.writeFileSync(\r\n path.join(subdirPath, `index${ext}`),\r\n `export { default } from './${name}';`,\r\n {\r\n encoding: 'utf8',\r\n },\r\n );\r\n }\r\n if (process) {\r\n process(subdirPath, item);\r\n }\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;AASA,eAA8B,kBAC5B,SACA,UAAoC,
|
|
1
|
+
{"version":3,"file":"moveFilesToSubdir.mjs","names":[],"sources":["../../src/moveFilesToSubdir/moveFilesToSubdir.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport isTargetPath from '../isTargetPath';\r\nimport type { MoveFilesToSubdirOptions } from './types';\r\n\r\n/**\r\n * 対象のディレクトリ直下のファイルを、拡張子を除いた同名のサブディレクトリ直下に移動する\r\n * @param dirPath 対象のディレクトリのパス\r\n */\r\nexport default async function moveFilesToSubdir(\r\n dirPath: string,\r\n options: MoveFilesToSubdirOptions = {},\r\n) {\r\n const { process, index, ...rest } = options;\r\n const items = await fs.readdir(dirPath);\r\n for (const item of items) {\r\n const itemPath = path.join(dirPath, item);\r\n if (isTargetPath(itemPath, rest)) {\r\n const { name, ext } = path.parse(item);\r\n // 移動先のディレクトリパスを生成\r\n const subdirPath = path.join(dirPath, name);\r\n // 移動先のディレクトリが存在しなければ作成\r\n fs.ensureDirSync(subdirPath);\r\n // 移動\r\n fs.moveSync(itemPath, path.join(subdirPath, item));\r\n if (index) {\r\n fs.writeFileSync(\r\n path.join(subdirPath, `index${ext}`),\r\n `export { default } from './${name}';`,\r\n {\r\n encoding: 'utf8',\r\n },\r\n );\r\n }\r\n if (process) {\r\n process(subdirPath, item);\r\n }\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;AASA,eAA8B,kBAC5B,SACA,UAAoC,CAAC,GACrC;CACA,MAAM,EAAE,SAAS,OAAO,GAAG,SAAS;CACpC,MAAM,QAAQ,MAAM,GAAG,QAAQ,OAAO;CACtC,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,WAAW,KAAK,KAAK,SAAS,IAAI;EACxC,IAAI,aAAa,UAAU,IAAI,GAAG;GAChC,MAAM,EAAE,MAAM,QAAQ,KAAK,MAAM,IAAI;GAErC,MAAM,aAAa,KAAK,KAAK,SAAS,IAAI;GAE1C,GAAG,cAAc,UAAU;GAE3B,GAAG,SAAS,UAAU,KAAK,KAAK,YAAY,IAAI,CAAC;GACjD,IAAI,OACF,GAAG,cACD,KAAK,KAAK,YAAY,QAAQ,KAAK,GACnC,8BAA8B,KAAK,KACnC,EACE,UAAU,OACZ,CACF;GAEF,IAAI,SACF,QAAQ,YAAY,IAAI;EAE5B;CACF;AACF"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeFiles.cjs","names":["fs"],"sources":["../../src/removeFiles/removeFiles.ts"],"sourcesContent":["import fg from 'fast-glob';\r\nimport type { Options, Pattern } from 'fast-glob/out/index';\r\nimport fs from 'fs-extra';\r\n\r\nexport default async function removeFiles(\r\n source: Pattern | Pattern[],\r\n options: Options = {},\r\n) {\r\n const files = await fg(source, options);\r\n await Promise.all(files.map((file) => fs.remove(file)));\r\n}\r\n"],"mappings":";;;;;;;AAIA,eAA8B,YAC5B,QACA,UAAmB,
|
|
1
|
+
{"version":3,"file":"removeFiles.cjs","names":["fs"],"sources":["../../src/removeFiles/removeFiles.ts"],"sourcesContent":["import fg from 'fast-glob';\r\nimport type { Options, Pattern } from 'fast-glob/out/index';\r\nimport fs from 'fs-extra';\r\n\r\nexport default async function removeFiles(\r\n source: Pattern | Pattern[],\r\n options: Options = {},\r\n) {\r\n const files = await fg(source, options);\r\n await Promise.all(files.map((file) => fs.remove(file)));\r\n}\r\n"],"mappings":";;;;;;;AAIA,eAA8B,YAC5B,QACA,UAAmB,CAAC,GACpB;CACA,MAAM,QAAQ,6BAAS,QAAQ,OAAO;CACtC,MAAM,QAAQ,IAAI,MAAM,KAAK,SAASA,iBAAG,OAAO,IAAI,CAAC,CAAC;AACxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeFiles.mjs","names":[],"sources":["../../src/removeFiles/removeFiles.ts"],"sourcesContent":["import fg from 'fast-glob';\r\nimport type { Options, Pattern } from 'fast-glob/out/index';\r\nimport fs from 'fs-extra';\r\n\r\nexport default async function removeFiles(\r\n source: Pattern | Pattern[],\r\n options: Options = {},\r\n) {\r\n const files = await fg(source, options);\r\n await Promise.all(files.map((file) => fs.remove(file)));\r\n}\r\n"],"mappings":";;;;AAIA,eAA8B,YAC5B,QACA,UAAmB,
|
|
1
|
+
{"version":3,"file":"removeFiles.mjs","names":[],"sources":["../../src/removeFiles/removeFiles.ts"],"sourcesContent":["import fg from 'fast-glob';\r\nimport type { Options, Pattern } from 'fast-glob/out/index';\r\nimport fs from 'fs-extra';\r\n\r\nexport default async function removeFiles(\r\n source: Pattern | Pattern[],\r\n options: Options = {},\r\n) {\r\n const files = await fg(source, options);\r\n await Promise.all(files.map((file) => fs.remove(file)));\r\n}\r\n"],"mappings":";;;;AAIA,eAA8B,YAC5B,QACA,UAAmB,CAAC,GACpB;CACA,MAAM,QAAQ,MAAM,GAAG,QAAQ,OAAO;CACtC,MAAM,QAAQ,IAAI,MAAM,KAAK,SAAS,GAAG,OAAO,IAAI,CAAC,CAAC;AACxD"}
|
package/ver/index.d.cts
CHANGED
package/ver/index.d.mts
CHANGED
package/ver/ver.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ver.cjs","names":["fs"],"sources":["../../src/ver/ver.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport type { VerOptions } from './types';\r\n\r\n/**\r\n * ワークスペースのパッケージにバージョンを反映する\r\n * @param version バージョン\r\n * @param options オプション\r\n */\r\nexport default async function ver(version: string, options: VerOptions = {}) {\r\n const {\r\n workspacePackageJsonPath = 'package.json',\r\n packagesPath = 'packages',\r\n } = options;\r\n\r\n if (fs.existsSync(workspacePackageJsonPath)) {\r\n // ワークスペースのpackage.jsonを更新\r\n _updatePkgJson(version, workspacePackageJsonPath);\r\n }\r\n const pkgs = fs.readdirSync(packagesPath);\r\n for (const pkg of pkgs) {\r\n const packagePath = path.join(packagesPath, pkg);\r\n const packageJsonPath = path.join(packagePath, 'package.json');\r\n if (fs.existsSync(packageJsonPath)) {\r\n // 各パッケージのpackage.jsonを更新\r\n _updatePkgJson(version, packageJsonPath);\r\n }\r\n }\r\n}\r\n\r\nfunction _updatePkgJson(version: string, packageJsonPath: string) {\r\n const packageJson = fs.readJsonSync(packageJsonPath, { encoding: 'utf8' });\r\n packageJson.version = version;\r\n fs.writeJsonSync(packageJsonPath, packageJson, {\r\n encoding: 'utf8',\r\n spaces: 2,\r\n });\r\n}\r\n"],"mappings":";;;;;;;;;;;;AASA,eAA8B,IAAI,SAAiB,UAAsB,
|
|
1
|
+
{"version":3,"file":"ver.cjs","names":["fs"],"sources":["../../src/ver/ver.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport type { VerOptions } from './types';\r\n\r\n/**\r\n * ワークスペースのパッケージにバージョンを反映する\r\n * @param version バージョン\r\n * @param options オプション\r\n */\r\nexport default async function ver(version: string, options: VerOptions = {}) {\r\n const {\r\n workspacePackageJsonPath = 'package.json',\r\n packagesPath = 'packages',\r\n } = options;\r\n\r\n if (fs.existsSync(workspacePackageJsonPath)) {\r\n // ワークスペースのpackage.jsonを更新\r\n _updatePkgJson(version, workspacePackageJsonPath);\r\n }\r\n const pkgs = fs.readdirSync(packagesPath);\r\n for (const pkg of pkgs) {\r\n const packagePath = path.join(packagesPath, pkg);\r\n const packageJsonPath = path.join(packagePath, 'package.json');\r\n if (fs.existsSync(packageJsonPath)) {\r\n // 各パッケージのpackage.jsonを更新\r\n _updatePkgJson(version, packageJsonPath);\r\n }\r\n }\r\n}\r\n\r\nfunction _updatePkgJson(version: string, packageJsonPath: string) {\r\n const packageJson = fs.readJsonSync(packageJsonPath, { encoding: 'utf8' });\r\n packageJson.version = version;\r\n fs.writeJsonSync(packageJsonPath, packageJson, {\r\n encoding: 'utf8',\r\n spaces: 2,\r\n });\r\n}\r\n"],"mappings":";;;;;;;;;;;;AASA,eAA8B,IAAI,SAAiB,UAAsB,CAAC,GAAG;CAC3E,MAAM,EACJ,2BAA2B,gBAC3B,eAAe,eACb;CAEJ,IAAIA,iBAAG,WAAW,wBAAwB,GAExC,eAAe,SAAS,wBAAwB;CAElD,MAAM,OAAOA,iBAAG,YAAY,YAAY;CACxC,KAAK,MAAM,OAAO,MAAM;EACtB,MAAM,cAAc,aAAK,KAAK,cAAc,GAAG;EAC/C,MAAM,kBAAkB,aAAK,KAAK,aAAa,cAAc;EAC7D,IAAIA,iBAAG,WAAW,eAAe,GAE/B,eAAe,SAAS,eAAe;CAE3C;AACF;AAEA,SAAS,eAAe,SAAiB,iBAAyB;CAChE,MAAM,cAAcA,iBAAG,aAAa,iBAAiB,EAAE,UAAU,OAAO,CAAC;CACzE,YAAY,UAAU;CACtB,iBAAG,cAAc,iBAAiB,aAAa;EAC7C,UAAU;EACV,QAAQ;CACV,CAAC;AACH"}
|
package/ver/ver.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ver.mjs","names":[],"sources":["../../src/ver/ver.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport type { VerOptions } from './types';\r\n\r\n/**\r\n * ワークスペースのパッケージにバージョンを反映する\r\n * @param version バージョン\r\n * @param options オプション\r\n */\r\nexport default async function ver(version: string, options: VerOptions = {}) {\r\n const {\r\n workspacePackageJsonPath = 'package.json',\r\n packagesPath = 'packages',\r\n } = options;\r\n\r\n if (fs.existsSync(workspacePackageJsonPath)) {\r\n // ワークスペースのpackage.jsonを更新\r\n _updatePkgJson(version, workspacePackageJsonPath);\r\n }\r\n const pkgs = fs.readdirSync(packagesPath);\r\n for (const pkg of pkgs) {\r\n const packagePath = path.join(packagesPath, pkg);\r\n const packageJsonPath = path.join(packagePath, 'package.json');\r\n if (fs.existsSync(packageJsonPath)) {\r\n // 各パッケージのpackage.jsonを更新\r\n _updatePkgJson(version, packageJsonPath);\r\n }\r\n }\r\n}\r\n\r\nfunction _updatePkgJson(version: string, packageJsonPath: string) {\r\n const packageJson = fs.readJsonSync(packageJsonPath, { encoding: 'utf8' });\r\n packageJson.version = version;\r\n fs.writeJsonSync(packageJsonPath, packageJson, {\r\n encoding: 'utf8',\r\n spaces: 2,\r\n });\r\n}\r\n"],"mappings":";;;;;;;;;AASA,eAA8B,IAAI,SAAiB,UAAsB,
|
|
1
|
+
{"version":3,"file":"ver.mjs","names":[],"sources":["../../src/ver/ver.ts"],"sourcesContent":["import fs from 'fs-extra';\r\nimport path from 'path';\r\nimport type { VerOptions } from './types';\r\n\r\n/**\r\n * ワークスペースのパッケージにバージョンを反映する\r\n * @param version バージョン\r\n * @param options オプション\r\n */\r\nexport default async function ver(version: string, options: VerOptions = {}) {\r\n const {\r\n workspacePackageJsonPath = 'package.json',\r\n packagesPath = 'packages',\r\n } = options;\r\n\r\n if (fs.existsSync(workspacePackageJsonPath)) {\r\n // ワークスペースのpackage.jsonを更新\r\n _updatePkgJson(version, workspacePackageJsonPath);\r\n }\r\n const pkgs = fs.readdirSync(packagesPath);\r\n for (const pkg of pkgs) {\r\n const packagePath = path.join(packagesPath, pkg);\r\n const packageJsonPath = path.join(packagePath, 'package.json');\r\n if (fs.existsSync(packageJsonPath)) {\r\n // 各パッケージのpackage.jsonを更新\r\n _updatePkgJson(version, packageJsonPath);\r\n }\r\n }\r\n}\r\n\r\nfunction _updatePkgJson(version: string, packageJsonPath: string) {\r\n const packageJson = fs.readJsonSync(packageJsonPath, { encoding: 'utf8' });\r\n packageJson.version = version;\r\n fs.writeJsonSync(packageJsonPath, packageJson, {\r\n encoding: 'utf8',\r\n spaces: 2,\r\n });\r\n}\r\n"],"mappings":";;;;;;;;;AASA,eAA8B,IAAI,SAAiB,UAAsB,CAAC,GAAG;CAC3E,MAAM,EACJ,2BAA2B,gBAC3B,eAAe,eACb;CAEJ,IAAI,GAAG,WAAW,wBAAwB,GAExC,eAAe,SAAS,wBAAwB;CAElD,MAAM,OAAO,GAAG,YAAY,YAAY;CACxC,KAAK,MAAM,OAAO,MAAM;EACtB,MAAM,cAAc,KAAK,KAAK,cAAc,GAAG;EAC/C,MAAM,kBAAkB,KAAK,KAAK,aAAa,cAAc;EAC7D,IAAI,GAAG,WAAW,eAAe,GAE/B,eAAe,SAAS,eAAe;CAE3C;AACF;AAEA,SAAS,eAAe,SAAiB,iBAAyB;CAChE,MAAM,cAAc,GAAG,aAAa,iBAAiB,EAAE,UAAU,OAAO,CAAC;CACzE,YAAY,UAAU;CACtB,GAAG,cAAc,iBAAiB,aAAa;EAC7C,UAAU;EACV,QAAQ;CACV,CAAC;AACH"}
|