@sanity/pkg-utils 6.8.10-canary.1 → 6.8.10-canary.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks-cjs/init.cjs +39 -12
- package/dist/_chunks-cjs/init.cjs.map +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/index.js +41 -15
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var fs = require("node:fs/promises"), path = require("node:path"), mkdirp = require("mkdirp"), prompts = require("prompts"), logger = require("./logger.cjs"),
|
|
2
|
+
var fs = require("node:fs/promises"), path = require("node:path"), mkdirp = require("mkdirp"), prompts = require("prompts"), logger = require("./logger.cjs"), getLatestVersion = require("get-latest-version"), gitUrlParse = require("git-url-parse"), outdent = require("outdent"), parseGitConfig = require("parse-git-config"), prettier = require("prettier");
|
|
3
3
|
function _interopDefaultCompat(e) {
|
|
4
4
|
return e && typeof e == "object" && "default" in e ? e : { default: e };
|
|
5
5
|
}
|
|
6
|
-
var prompts__default = /* @__PURE__ */ _interopDefaultCompat(prompts),
|
|
6
|
+
var prompts__default = /* @__PURE__ */ _interopDefaultCompat(prompts), getLatestVersion__default = /* @__PURE__ */ _interopDefaultCompat(getLatestVersion), gitUrlParse__default = /* @__PURE__ */ _interopDefaultCompat(gitUrlParse), parseGitConfig__default = /* @__PURE__ */ _interopDefaultCompat(parseGitConfig), prettier__default = /* @__PURE__ */ _interopDefaultCompat(prettier);
|
|
7
7
|
const promptsTypes = {
|
|
8
8
|
string: "text"
|
|
9
9
|
};
|
|
@@ -51,7 +51,34 @@ function defineTemplateOption(option) {
|
|
|
51
51
|
async function isEmptyDirectory(dirPath) {
|
|
52
52
|
return (await fs.readdir(dirPath)).length === 0;
|
|
53
53
|
}
|
|
54
|
-
const
|
|
54
|
+
const overridableDefaults = {
|
|
55
|
+
endOfLine: "lf",
|
|
56
|
+
tabWidth: 2,
|
|
57
|
+
useTabs: !1
|
|
58
|
+
}, config = {
|
|
59
|
+
...overridableDefaults,
|
|
60
|
+
printWidth: 100,
|
|
61
|
+
semi: !1,
|
|
62
|
+
singleQuote: !0,
|
|
63
|
+
quoteProps: "consistent",
|
|
64
|
+
bracketSpacing: !1,
|
|
65
|
+
plugins: ["prettier-plugin-packagejson"],
|
|
66
|
+
overrides: [
|
|
67
|
+
{
|
|
68
|
+
files: ["*.json5"],
|
|
69
|
+
options: {
|
|
70
|
+
quoteProps: "preserve",
|
|
71
|
+
singleQuote: !1
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
files: ["*.yml"],
|
|
76
|
+
options: {
|
|
77
|
+
singleQuote: !1
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
}, RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/i, defaultTemplate = async ({ cwd, logger: logger$1, packagePath }) => {
|
|
55
82
|
const gitConfig = await parseGitConfig__default.default({ cwd, type: "global" });
|
|
56
83
|
return {
|
|
57
84
|
options: [
|
|
@@ -318,7 +345,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
318
345
|
/** @type import('eslint').Linter.Config */
|
|
319
346
|
module.exports = ${JSON.stringify(eslintConfig, null, 2)}
|
|
320
347
|
`,
|
|
321
|
-
|
|
348
|
+
config
|
|
322
349
|
)
|
|
323
350
|
});
|
|
324
351
|
}
|
|
@@ -358,7 +385,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
358
385
|
}
|
|
359
386
|
}
|
|
360
387
|
`,
|
|
361
|
-
|
|
388
|
+
config
|
|
362
389
|
)
|
|
363
390
|
}), files.push({
|
|
364
391
|
name: "tsconfig.dist.json",
|
|
@@ -376,7 +403,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
376
403
|
}
|
|
377
404
|
}
|
|
378
405
|
`,
|
|
379
|
-
|
|
406
|
+
config
|
|
380
407
|
)
|
|
381
408
|
}), files.push({
|
|
382
409
|
name: "tsconfig.json",
|
|
@@ -396,7 +423,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
396
423
|
}
|
|
397
424
|
}
|
|
398
425
|
`,
|
|
399
|
-
|
|
426
|
+
config
|
|
400
427
|
)
|
|
401
428
|
})), features.typescript ? (files.push({
|
|
402
429
|
name: "package.config.ts",
|
|
@@ -411,7 +438,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
411
438
|
tsconfig: 'tsconfig.dist.json',
|
|
412
439
|
})
|
|
413
440
|
`,
|
|
414
|
-
|
|
441
|
+
config
|
|
415
442
|
)
|
|
416
443
|
}), files.push({
|
|
417
444
|
name: "src/index.ts",
|
|
@@ -423,7 +450,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
423
450
|
//
|
|
424
451
|
}
|
|
425
452
|
`,
|
|
426
|
-
|
|
453
|
+
config
|
|
427
454
|
)
|
|
428
455
|
})) : (files.push({
|
|
429
456
|
name: "package.config.js",
|
|
@@ -441,7 +468,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
441
468
|
},
|
|
442
469
|
})
|
|
443
470
|
`,
|
|
444
|
-
|
|
471
|
+
config
|
|
445
472
|
)
|
|
446
473
|
}), files.push({
|
|
447
474
|
name: "src/index.js",
|
|
@@ -453,7 +480,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
453
480
|
//
|
|
454
481
|
}
|
|
455
482
|
`,
|
|
456
|
-
|
|
483
|
+
config
|
|
457
484
|
)
|
|
458
485
|
}));
|
|
459
486
|
try {
|
|
@@ -471,7 +498,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
471
498
|
contents: await format(
|
|
472
499
|
path.resolve(packagePath, "package.json"),
|
|
473
500
|
JSON.stringify(pkgJson, null, 2),
|
|
474
|
-
|
|
501
|
+
config
|
|
475
502
|
)
|
|
476
503
|
}), files;
|
|
477
504
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.cjs","sources":["../../src/node/core/template/createFromTemplate.ts","../../src/node/core/template/define.ts","../../src/node/isEmptyDirectory.ts","../../src/node/templates/default/template.ts","../../src/node/init.ts"],"sourcesContent":["import {writeFile} from 'node:fs/promises'\nimport {dirname, relative, resolve} from 'node:path'\n\nimport {mkdirp} from 'mkdirp'\nimport prompts from 'prompts'\n\nimport type {Logger} from '../../logger'\nimport type {PkgTemplate} from './types'\n\nconst promptsTypes = {\n string: 'text' as const,\n}\n\n/** @internal */\nexport async function createFromTemplate(options: {\n cwd: string\n logger: Logger\n packagePath: string\n template: PkgTemplate\n}): Promise<void> {\n const {cwd, logger, packagePath, template: templateOrResolver} = options\n\n const template =\n typeof templateOrResolver === 'function'\n ? await templateOrResolver({cwd, logger, packagePath})\n : templateOrResolver\n\n logger.log('create new package at', relative(cwd, packagePath))\n\n const templateOptions: Record<string, string> = {}\n\n for (const templateOption of template.options) {\n const templateValidate = templateOption.validate\n\n const res = await prompts(\n {\n type: promptsTypes[templateOption.type],\n name: templateOption.name,\n message: templateOption.description,\n validate: templateValidate ? (prev) => templateValidate(prev) : undefined,\n initial:\n typeof templateOption.initial === 'function'\n ? templateOption.initial(templateOptions)\n : templateOption.initial,\n },\n {onCancel: () => process.exit(0)},\n )\n\n templateOptions[templateOption.name] = templateOption.parse\n ? templateOption.parse(res[templateOption.name])\n : res[templateOption.name]\n }\n\n const features: Record<string, boolean> = {}\n\n for (const templateFeature of template.features) {\n const res = templateFeature.optional\n ? await prompts(\n {\n type: 'confirm',\n name: 'confirm',\n message: `use ${templateFeature.name}?`,\n initial: templateFeature.initial,\n },\n {onCancel: () => process.exit(0)},\n )\n : undefined\n\n features[templateFeature.name] = res?.confirm || !templateFeature.optional\n }\n\n const files = await template.getFiles(templateOptions, features)\n\n files.sort((a, b) => {\n return a.name.localeCompare(b.name)\n })\n\n for (const file of files) {\n const filePath = resolve(packagePath, file.name)\n\n await mkdirp(dirname(filePath))\n await writeFile(filePath, file.contents.trim() + '\\n')\n\n logger.success(`wrote ${relative(cwd, filePath)}`)\n }\n}\n","import type {PkgTemplateOption} from './types'\n\n/** @public */\nexport function defineTemplateOption<T>(option: PkgTemplateOption<T>): PkgTemplateOption<T> {\n return option\n}\n","import {readdir} from 'node:fs/promises'\n\nexport async function isEmptyDirectory(dirPath: string): Promise<boolean> {\n return (await readdir(dirPath)).length === 0\n}\n","import {resolve} from 'node:path'\n\nimport prettierConfig from '@sanity/prettier-config'\nimport getLatestVersion from 'get-latest-version'\nimport gitUrlParse from 'git-url-parse'\nimport {outdent} from 'outdent'\nimport parseGitConfig from 'parse-git-config'\nimport prettier, {type Config as PrettierConfig} from 'prettier'\n\nimport {\n defineTemplateOption,\n isRecord,\n type PackageJSON,\n type PkgTemplate,\n type PkgTemplateFile,\n} from '../../core'\n\nconst RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\\/)?[a-z0-9-~][a-z0-9-._~]*$/i\n\nexport const defaultTemplate: PkgTemplate = async ({cwd, logger, packagePath}) => {\n const gitConfig = await parseGitConfig({cwd, type: 'global'})\n\n return {\n options: [\n defineTemplateOption<{owner: string; name: string}>({\n name: 'repo',\n type: 'string',\n description: 'git url',\n validate: (v) => {\n if (!v) return true\n\n try {\n gitUrlParse(v)\n\n return true\n } catch (err) {\n return 'invalid git url'\n }\n },\n parse: (v) => {\n if (!v) return null\n\n const result = gitUrlParse(v)\n\n return {source: result.source, owner: result.owner, name: result.name}\n },\n }),\n defineTemplateOption({\n name: 'pkgName',\n type: 'string',\n description: 'package name',\n initial: (options) => options['repo']?.name || undefined,\n validate: (v) => {\n if (!v) return 'package name is required'\n\n const match = RE_NAME.exec(v)\n\n if (!match) {\n return 'invalid package name'\n }\n\n return true\n },\n parse: (v) => {\n if (!v) {\n throw new Error('package name is required')\n }\n\n const match = RE_NAME.exec(v)\n\n if (!match) {\n throw new Error('invalid package name')\n }\n\n const [scope, name] = v.split('/')\n\n return {scope, name, fullName: v}\n },\n }),\n defineTemplateOption({\n name: 'description',\n type: 'string',\n description: 'package description',\n }),\n defineTemplateOption({\n name: 'authorName',\n type: 'string',\n description: 'package author name',\n initial: gitConfig?.['user']?.name,\n }),\n defineTemplateOption({\n name: 'authorEmail',\n type: 'string',\n description: 'package author email',\n initial: gitConfig?.['user']?.email,\n }),\n defineTemplateOption({\n name: 'license',\n type: 'string',\n description: 'package license',\n initial: 'MIT',\n validate: (v) => {\n if (!v) return 'license is required'\n\n return true\n },\n }),\n ],\n\n features: [\n {\n name: 'eslint',\n optional: true,\n initial: true,\n },\n {\n name: 'prettier',\n optional: true,\n initial: true,\n },\n {\n name: 'typescript',\n optional: true,\n initial: true,\n },\n ],\n\n async getFiles(options, features) {\n const {pkgName, repo} = options\n const {fullName: name} = pkgName\n\n const author =\n [options['authorName'], options['authorEmail'] && `<${options['authorEmail']}>`]\n .filter(Boolean)\n .join(' ') ?? undefined\n\n const pkgJson: PackageJSON & {\n prettier?: '@sanity/prettier-config'\n ['lint-staged']?: Record<string, string[]>\n } = {\n name,\n 'version': '0.0.0',\n 'description': options['description'] ?? undefined,\n 'keywords': [],\n 'homepage': undefined,\n 'bugs': undefined,\n 'repository': undefined,\n 'license': options['license'],\n author,\n 'sideEffects': false,\n 'type': 'module',\n 'exports': {\n '.': {\n source: features['typescript'] ? './src/index.ts' : './src/index.js',\n require: './dist/index.cjs',\n default: './dist/index.js',\n },\n './package.json': './package.json',\n },\n 'main': './dist/index.cjs',\n 'module': './dist/index.js',\n 'types': undefined,\n 'files': ['dist', 'src'],\n 'scripts': {\n build: 'pkg build --strict --clean --check',\n format: features['prettier'] ? 'prettier --write --cache --ignore-unknown .' : undefined,\n },\n 'lint-staged': features['prettier']\n ? {\n '*': ['prettier --write --cache --ignore-unknown'],\n }\n : undefined,\n 'browserslist': 'extends @sanity/browserslist-config',\n 'prettier': features['prettier'] ? '@sanity/prettier-config' : undefined,\n 'dependencies': {},\n 'devDependencies': {\n '@sanity/pkg-utils': '^6',\n '@sanity/prettier-config': features['prettier'] ? '^1' : undefined,\n '@typescript-eslint/eslint-plugin': undefined,\n '@typescript-eslint/parser': undefined,\n 'eslint': undefined,\n 'eslint-config-prettier': undefined,\n 'eslint-plugin-import': undefined,\n 'eslint-plugin-prettier': undefined,\n 'eslint-plugin-simple-import-sort': undefined,\n 'lint-staged': '^15',\n 'prettier': features['prettier'] ? '^3' : undefined,\n 'typescript': undefined,\n },\n 'engines': {\n node: '>=18.0.0',\n },\n }\n\n const files: PkgTemplateFile[] = []\n\n // .editorconfig\n files.push({\n name: '.editorconfig',\n contents: outdent`\n root = true\n\n [*]\n charset = utf-8\n indent_style = space\n indent_size = 2\n end_of_line = lf\n insert_final_newline = true\n trim_trailing_whitespace = true\n `,\n })\n\n // .gitignore\n files.push({\n name: '.gitignore',\n contents: outdent`\n *.local\n *.log\n *.tgz\n\n .DS_Store\n dist\n etc\n node_modules\n `,\n })\n\n if (features['prettier']) {\n files.push({\n name: '.prettierignore',\n contents: outdent`\n dist\n pnpm-lock.yaml\n `,\n })\n }\n\n if (repo) {\n pkgJson.repository = {\n type: 'git',\n url: `git+ssh://git@${repo.source}/${repo.owner}/${repo.name}.git`,\n }\n pkgJson.bugs = {\n url: `https://${repo.source}/${repo.owner}/${repo.name}/issues`,\n }\n pkgJson.homepage = `https://${repo.source}/${repo.owner}/${repo.name}#readme`\n }\n\n if (features['typescript']) {\n pkgJson.types = './dist/index.d.ts'\n\n pkgJson.scripts = {\n ...pkgJson.scripts,\n ['ts:check']: 'tsc --build',\n }\n\n const devDependencies = pkgJson.devDependencies\n\n if (isRecord(devDependencies)) {\n devDependencies['typescript'] = '^5.4'\n }\n }\n\n if (features['eslint']) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const eslintConfig: any = {\n root: true,\n env: {\n browser: true,\n es6: true,\n node: true,\n },\n extends: [\n 'eslint:recommended',\n features['prettier'] ? 'plugin:prettier/recommended' : undefined,\n ].filter(Boolean),\n parserOptions: {\n ecmaVersion: 2020,\n sourceType: 'module',\n },\n plugins: [\n 'import',\n 'simple-import-sort',\n features['prettier'] ? 'prettier' : undefined,\n ].filter(Boolean),\n rules: {\n 'no-console': 'error',\n 'no-shadow': 'error',\n 'no-warning-comments': ['warn', {location: 'start', terms: ['todo', 'fixme']}],\n 'quote-props': ['warn', 'consistent-as-needed'],\n 'simple-import-sort/exports': 'warn',\n 'simple-import-sort/imports': 'warn',\n 'strict': ['warn', 'global'],\n },\n }\n\n files.push({\n name: '.eslintignore',\n contents: outdent`\n dist\n `,\n })\n\n pkgJson.scripts = {\n ...pkgJson.scripts,\n lint: features['typescript']\n ? 'eslint . --ext .cjs,.js,.ts,.tsx'\n : 'eslint . --ext .cjs,.js',\n }\n\n pkgJson.devDependencies = {\n ...pkgJson.devDependencies,\n 'eslint': '^8',\n 'eslint-config-prettier': features['prettier'] ? '^9' : undefined,\n 'eslint-plugin-import': '^2',\n 'eslint-plugin-prettier': features['prettier'] ? '^5' : undefined,\n 'eslint-plugin-simple-import-sort': '^12',\n }\n\n if (features['typescript']) {\n pkgJson.devDependencies = {\n ...pkgJson.devDependencies,\n '@typescript-eslint/eslint-plugin': '^7',\n '@typescript-eslint/parser': '^7',\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const eslintConfigOverride: any = {\n files: ['**/*.ts', '**/*.tsx'],\n parser: '@typescript-eslint/parser',\n parserOptions: {\n project: ['./tsconfig.json'],\n },\n extends: [\n 'eslint:recommended',\n features['prettier'] ? 'plugin:prettier/recommended' : undefined,\n 'plugin:@typescript-eslint/eslint-recommended',\n 'plugin:@typescript-eslint/recommended',\n ].filter(Boolean),\n plugins: [\n 'import',\n '@typescript-eslint',\n 'simple-import-sort',\n features['prettier'] ? 'prettier' : undefined,\n ].filter(Boolean),\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/interface-name-prefix': 'off',\n '@typescript-eslint/member-delimiter-style': 'off',\n '@typescript-eslint/no-empty-interface': 'off',\n },\n }\n\n eslintConfig.overrides = [eslintConfigOverride]\n }\n\n files.push({\n name: '.eslintrc.cjs',\n contents: await format(\n resolve(packagePath, '.eslintrc.cjs'),\n outdent`\n 'use strict'\n\n /** @type import('eslint').Linter.Config */\n module.exports = ${JSON.stringify(eslintConfig, null, 2)}\n `,\n prettierConfig,\n ),\n })\n }\n\n if (features['typescript']) {\n files.push({\n name: 'tsconfig.settings.json',\n contents: await format(\n resolve(packagePath, 'tsconfig.settings.json'),\n outdent`\n {\n \"compilerOptions\": {\n // Completeness\n \"skipLibCheck\": true,\n\n // Interop constraints\n \"allowSyntheticDefaultImports\": true,\n \"esModuleInterop\": true,\n\n // Language and environment\n \"target\": \"ES2020\",\n\n // Modules\n \"module\": \"ES2020\",\n \"moduleResolution\": \"Node\",\n\n // Type checking\n \"alwaysStrict\": true,\n \"noFallthroughCasesInSwitch\": true,\n \"noImplicitAny\": true,\n \"noImplicitReturns\": true,\n \"noImplicitThis\": true,\n \"noUnusedLocals\": true,\n \"noUnusedParameters\": true,\n \"strict\": true,\n \"strictFunctionTypes\": true,\n \"strictNullChecks\": true,\n \"strictPropertyInitialization\": true\n }\n }\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'tsconfig.dist.json',\n contents: await format(\n resolve(packagePath, 'tsconfig.dist.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./src\"],\n \"exclude\": [\"./src/**/*.test.ts\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"resolveJsonModule\": true\n }\n }\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'tsconfig.json',\n contents: await format(\n resolve(packagePath, 'tsconfig.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./**/*.cjs\", \"./**/*.ts\", \"./**/*.tsx\"],\n \"exclude\": [\"./node_modules\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"noEmit\": true,\n \"allowJs\": true,\n \"resolveJsonModule\": true,\n }\n }\n `,\n prettierConfig,\n ),\n })\n }\n\n // source file\n if (features['typescript']) {\n files.push({\n name: 'package.config.ts',\n contents: await format(\n resolve(packagePath, 'package.config.ts'),\n outdent`\n import {defineConfig} from '@sanity/pkg-utils'\n\n // https://github.com/sanity-io/pkg-utils#configuration\n export default defineConfig({\n // the path to the tsconfig file for distributed builds\n tsconfig: 'tsconfig.dist.json',\n })\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'src/index.ts',\n contents: await format(\n resolve(packagePath, 'src/index.ts'),\n outdent`\n /** @public */\n export function main(): void {\n //\n }\n `,\n prettierConfig,\n ),\n })\n } else {\n files.push({\n name: 'package.config.js',\n contents: await format(\n resolve(packagePath, 'package.config.js'),\n outdent`\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with \\`_\\`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n })\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'src/index.js',\n contents: await format(\n resolve(packagePath, 'src/index.js'),\n outdent`\n /** @public */\n export function main() {\n //\n }\n `,\n prettierConfig,\n ),\n })\n }\n\n // Resolve latest dependencies\n try {\n pkgJson.dependencies = await resolveLatestDeps(pkgJson.dependencies ?? {})\n } catch (error) {\n logger.warn(error instanceof Error ? error.message : error)\n }\n\n // Resolve latest devDependencies\n try {\n pkgJson.devDependencies = await resolveLatestDeps(pkgJson.devDependencies ?? {})\n } catch (error) {\n logger.warn(error instanceof Error ? error.message : error)\n }\n\n files.push({\n name: 'package.json',\n contents: await format(\n resolve(packagePath, 'package.json'),\n JSON.stringify(pkgJson, null, 2),\n prettierConfig,\n ),\n })\n\n return files\n },\n }\n}\n\nfunction format(filepath: string, input: string, prettierOptions: PrettierConfig | undefined) {\n return prettier.format(input, {...prettierOptions, plugins: [], filepath})\n}\n\nasync function resolveLatestDeps(deps: Record<string, string | undefined>) {\n const depsEntries = Object.entries(deps)\n const latestDeps: Record<string, string> = {}\n\n for (const entry of depsEntries) {\n const [name, version] = entry\n\n if (version) {\n const latestVersion = await getLatestVersion(name, version)\n\n latestDeps[name] = latestVersion ? `^${latestVersion}` : version\n }\n }\n\n return latestDeps\n}\n","import {lstat} from 'node:fs/promises'\nimport {resolve} from 'node:path'\n\nimport {mkdirp} from 'mkdirp'\n\nimport {createFromTemplate} from './core/template'\nimport {fileExists} from './fileExists'\nimport {isEmptyDirectory} from './isEmptyDirectory'\nimport {createLogger} from './logger'\nimport {defaultTemplate} from './templates'\n\n/** @public */\nexport async function init(options: {cwd: string; path: string}): Promise<void> {\n if (!options.cwd) {\n throw new Error('Missing required option: cwd')\n }\n\n if (!options.path) {\n throw new Error('Missing required option: path')\n }\n\n const logger = createLogger()\n\n const packagePath = resolve(options.cwd, options.path)\n\n await ensurePackagePath(packagePath)\n\n await createFromTemplate({\n cwd: options.cwd,\n logger,\n template: defaultTemplate,\n packagePath,\n })\n}\n\nasync function ensurePackagePath(packagePath: string): Promise<void> {\n const exists = fileExists(packagePath)\n\n if (!exists) {\n await mkdirp(packagePath)\n\n return\n }\n\n const dir = (await lstat(packagePath)).isDirectory()\n\n if (!dir) {\n throw new Error('the package path is a file, not a directory')\n }\n\n const empty = await isEmptyDirectory(packagePath)\n\n if (!empty) {\n throw new Error('the package directory is not empty')\n }\n}\n"],"names":["logger","relative","prompts","resolve","mkdirp","dirname","writeFile","readdir","parseGitConfig","gitUrlParse","outdent","isRecord","prettierConfig","prettier","getLatestVersion","createLogger","fileExists","lstat"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.cjs","sources":["../../src/node/core/template/createFromTemplate.ts","../../src/node/core/template/define.ts","../../src/node/isEmptyDirectory.ts","../../node_modules/.pnpm/@sanity+prettier-config@1.0.2_prettier@3.2.5/node_modules/@sanity/prettier-config/dist/index.js","../../src/node/templates/default/template.ts","../../src/node/init.ts"],"sourcesContent":["import {writeFile} from 'node:fs/promises'\nimport {dirname, relative, resolve} from 'node:path'\n\nimport {mkdirp} from 'mkdirp'\nimport prompts from 'prompts'\n\nimport type {Logger} from '../../logger'\nimport type {PkgTemplate} from './types'\n\nconst promptsTypes = {\n string: 'text' as const,\n}\n\n/** @internal */\nexport async function createFromTemplate(options: {\n cwd: string\n logger: Logger\n packagePath: string\n template: PkgTemplate\n}): Promise<void> {\n const {cwd, logger, packagePath, template: templateOrResolver} = options\n\n const template =\n typeof templateOrResolver === 'function'\n ? await templateOrResolver({cwd, logger, packagePath})\n : templateOrResolver\n\n logger.log('create new package at', relative(cwd, packagePath))\n\n const templateOptions: Record<string, string> = {}\n\n for (const templateOption of template.options) {\n const templateValidate = templateOption.validate\n\n const res = await prompts(\n {\n type: promptsTypes[templateOption.type],\n name: templateOption.name,\n message: templateOption.description,\n validate: templateValidate ? (prev) => templateValidate(prev) : undefined,\n initial:\n typeof templateOption.initial === 'function'\n ? templateOption.initial(templateOptions)\n : templateOption.initial,\n },\n {onCancel: () => process.exit(0)},\n )\n\n templateOptions[templateOption.name] = templateOption.parse\n ? templateOption.parse(res[templateOption.name])\n : res[templateOption.name]\n }\n\n const features: Record<string, boolean> = {}\n\n for (const templateFeature of template.features) {\n const res = templateFeature.optional\n ? await prompts(\n {\n type: 'confirm',\n name: 'confirm',\n message: `use ${templateFeature.name}?`,\n initial: templateFeature.initial,\n },\n {onCancel: () => process.exit(0)},\n )\n : undefined\n\n features[templateFeature.name] = res?.confirm || !templateFeature.optional\n }\n\n const files = await template.getFiles(templateOptions, features)\n\n files.sort((a, b) => {\n return a.name.localeCompare(b.name)\n })\n\n for (const file of files) {\n const filePath = resolve(packagePath, file.name)\n\n await mkdirp(dirname(filePath))\n await writeFile(filePath, file.contents.trim() + '\\n')\n\n logger.success(`wrote ${relative(cwd, filePath)}`)\n }\n}\n","import type {PkgTemplateOption} from './types'\n\n/** @public */\nexport function defineTemplateOption<T>(option: PkgTemplateOption<T>): PkgTemplateOption<T> {\n return option\n}\n","import {readdir} from 'node:fs/promises'\n\nexport async function isEmptyDirectory(dirPath: string): Promise<boolean> {\n return (await readdir(dirPath)).length === 0\n}\n","const overridableDefaults = {\n endOfLine: \"lf\",\n tabWidth: 2,\n useTabs: !1\n}, config = {\n ...overridableDefaults,\n printWidth: 100,\n semi: !1,\n singleQuote: !0,\n quoteProps: \"consistent\",\n bracketSpacing: !1,\n plugins: [\"prettier-plugin-packagejson\"],\n overrides: [\n {\n files: [\"*.json5\"],\n options: {\n quoteProps: \"preserve\",\n singleQuote: !1\n }\n },\n {\n files: [\"*.yml\"],\n options: {\n singleQuote: !1\n }\n }\n ]\n};\nexport {\n config as default\n};\n//# sourceMappingURL=index.js.map\n","import {resolve} from 'node:path'\n\nimport prettierConfig from '@sanity/prettier-config'\nimport getLatestVersion from 'get-latest-version'\nimport gitUrlParse from 'git-url-parse'\nimport {outdent} from 'outdent'\nimport parseGitConfig from 'parse-git-config'\nimport prettier, {type Config as PrettierConfig} from 'prettier'\n\nimport {\n defineTemplateOption,\n isRecord,\n type PackageJSON,\n type PkgTemplate,\n type PkgTemplateFile,\n} from '../../core'\n\nconst RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\\/)?[a-z0-9-~][a-z0-9-._~]*$/i\n\nexport const defaultTemplate: PkgTemplate = async ({cwd, logger, packagePath}) => {\n const gitConfig = await parseGitConfig({cwd, type: 'global'})\n\n return {\n options: [\n defineTemplateOption<{owner: string; name: string}>({\n name: 'repo',\n type: 'string',\n description: 'git url',\n validate: (v) => {\n if (!v) return true\n\n try {\n gitUrlParse(v)\n\n return true\n } catch (err) {\n return 'invalid git url'\n }\n },\n parse: (v) => {\n if (!v) return null\n\n const result = gitUrlParse(v)\n\n return {source: result.source, owner: result.owner, name: result.name}\n },\n }),\n defineTemplateOption({\n name: 'pkgName',\n type: 'string',\n description: 'package name',\n initial: (options) => options['repo']?.name || undefined,\n validate: (v) => {\n if (!v) return 'package name is required'\n\n const match = RE_NAME.exec(v)\n\n if (!match) {\n return 'invalid package name'\n }\n\n return true\n },\n parse: (v) => {\n if (!v) {\n throw new Error('package name is required')\n }\n\n const match = RE_NAME.exec(v)\n\n if (!match) {\n throw new Error('invalid package name')\n }\n\n const [scope, name] = v.split('/')\n\n return {scope, name, fullName: v}\n },\n }),\n defineTemplateOption({\n name: 'description',\n type: 'string',\n description: 'package description',\n }),\n defineTemplateOption({\n name: 'authorName',\n type: 'string',\n description: 'package author name',\n initial: gitConfig?.['user']?.name,\n }),\n defineTemplateOption({\n name: 'authorEmail',\n type: 'string',\n description: 'package author email',\n initial: gitConfig?.['user']?.email,\n }),\n defineTemplateOption({\n name: 'license',\n type: 'string',\n description: 'package license',\n initial: 'MIT',\n validate: (v) => {\n if (!v) return 'license is required'\n\n return true\n },\n }),\n ],\n\n features: [\n {\n name: 'eslint',\n optional: true,\n initial: true,\n },\n {\n name: 'prettier',\n optional: true,\n initial: true,\n },\n {\n name: 'typescript',\n optional: true,\n initial: true,\n },\n ],\n\n async getFiles(options, features) {\n const {pkgName, repo} = options\n const {fullName: name} = pkgName\n\n const author =\n [options['authorName'], options['authorEmail'] && `<${options['authorEmail']}>`]\n .filter(Boolean)\n .join(' ') ?? undefined\n\n const pkgJson: PackageJSON & {\n prettier?: '@sanity/prettier-config'\n ['lint-staged']?: Record<string, string[]>\n } = {\n name,\n 'version': '0.0.0',\n 'description': options['description'] ?? undefined,\n 'keywords': [],\n 'homepage': undefined,\n 'bugs': undefined,\n 'repository': undefined,\n 'license': options['license'],\n author,\n 'sideEffects': false,\n 'type': 'module',\n 'exports': {\n '.': {\n source: features['typescript'] ? './src/index.ts' : './src/index.js',\n require: './dist/index.cjs',\n default: './dist/index.js',\n },\n './package.json': './package.json',\n },\n 'main': './dist/index.cjs',\n 'module': './dist/index.js',\n 'types': undefined,\n 'files': ['dist', 'src'],\n 'scripts': {\n build: 'pkg build --strict --clean --check',\n format: features['prettier'] ? 'prettier --write --cache --ignore-unknown .' : undefined,\n },\n 'lint-staged': features['prettier']\n ? {\n '*': ['prettier --write --cache --ignore-unknown'],\n }\n : undefined,\n 'browserslist': 'extends @sanity/browserslist-config',\n 'prettier': features['prettier'] ? '@sanity/prettier-config' : undefined,\n 'dependencies': {},\n 'devDependencies': {\n '@sanity/pkg-utils': '^6',\n '@sanity/prettier-config': features['prettier'] ? '^1' : undefined,\n '@typescript-eslint/eslint-plugin': undefined,\n '@typescript-eslint/parser': undefined,\n 'eslint': undefined,\n 'eslint-config-prettier': undefined,\n 'eslint-plugin-import': undefined,\n 'eslint-plugin-prettier': undefined,\n 'eslint-plugin-simple-import-sort': undefined,\n 'lint-staged': '^15',\n 'prettier': features['prettier'] ? '^3' : undefined,\n 'typescript': undefined,\n },\n 'engines': {\n node: '>=18.0.0',\n },\n }\n\n const files: PkgTemplateFile[] = []\n\n // .editorconfig\n files.push({\n name: '.editorconfig',\n contents: outdent`\n root = true\n\n [*]\n charset = utf-8\n indent_style = space\n indent_size = 2\n end_of_line = lf\n insert_final_newline = true\n trim_trailing_whitespace = true\n `,\n })\n\n // .gitignore\n files.push({\n name: '.gitignore',\n contents: outdent`\n *.local\n *.log\n *.tgz\n\n .DS_Store\n dist\n etc\n node_modules\n `,\n })\n\n if (features['prettier']) {\n files.push({\n name: '.prettierignore',\n contents: outdent`\n dist\n pnpm-lock.yaml\n `,\n })\n }\n\n if (repo) {\n pkgJson.repository = {\n type: 'git',\n url: `git+ssh://git@${repo.source}/${repo.owner}/${repo.name}.git`,\n }\n pkgJson.bugs = {\n url: `https://${repo.source}/${repo.owner}/${repo.name}/issues`,\n }\n pkgJson.homepage = `https://${repo.source}/${repo.owner}/${repo.name}#readme`\n }\n\n if (features['typescript']) {\n pkgJson.types = './dist/index.d.ts'\n\n pkgJson.scripts = {\n ...pkgJson.scripts,\n ['ts:check']: 'tsc --build',\n }\n\n const devDependencies = pkgJson.devDependencies\n\n if (isRecord(devDependencies)) {\n devDependencies['typescript'] = '^5.4'\n }\n }\n\n if (features['eslint']) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const eslintConfig: any = {\n root: true,\n env: {\n browser: true,\n es6: true,\n node: true,\n },\n extends: [\n 'eslint:recommended',\n features['prettier'] ? 'plugin:prettier/recommended' : undefined,\n ].filter(Boolean),\n parserOptions: {\n ecmaVersion: 2020,\n sourceType: 'module',\n },\n plugins: [\n 'import',\n 'simple-import-sort',\n features['prettier'] ? 'prettier' : undefined,\n ].filter(Boolean),\n rules: {\n 'no-console': 'error',\n 'no-shadow': 'error',\n 'no-warning-comments': ['warn', {location: 'start', terms: ['todo', 'fixme']}],\n 'quote-props': ['warn', 'consistent-as-needed'],\n 'simple-import-sort/exports': 'warn',\n 'simple-import-sort/imports': 'warn',\n 'strict': ['warn', 'global'],\n },\n }\n\n files.push({\n name: '.eslintignore',\n contents: outdent`\n dist\n `,\n })\n\n pkgJson.scripts = {\n ...pkgJson.scripts,\n lint: features['typescript']\n ? 'eslint . --ext .cjs,.js,.ts,.tsx'\n : 'eslint . --ext .cjs,.js',\n }\n\n pkgJson.devDependencies = {\n ...pkgJson.devDependencies,\n 'eslint': '^8',\n 'eslint-config-prettier': features['prettier'] ? '^9' : undefined,\n 'eslint-plugin-import': '^2',\n 'eslint-plugin-prettier': features['prettier'] ? '^5' : undefined,\n 'eslint-plugin-simple-import-sort': '^12',\n }\n\n if (features['typescript']) {\n pkgJson.devDependencies = {\n ...pkgJson.devDependencies,\n '@typescript-eslint/eslint-plugin': '^7',\n '@typescript-eslint/parser': '^7',\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const eslintConfigOverride: any = {\n files: ['**/*.ts', '**/*.tsx'],\n parser: '@typescript-eslint/parser',\n parserOptions: {\n project: ['./tsconfig.json'],\n },\n extends: [\n 'eslint:recommended',\n features['prettier'] ? 'plugin:prettier/recommended' : undefined,\n 'plugin:@typescript-eslint/eslint-recommended',\n 'plugin:@typescript-eslint/recommended',\n ].filter(Boolean),\n plugins: [\n 'import',\n '@typescript-eslint',\n 'simple-import-sort',\n features['prettier'] ? 'prettier' : undefined,\n ].filter(Boolean),\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/interface-name-prefix': 'off',\n '@typescript-eslint/member-delimiter-style': 'off',\n '@typescript-eslint/no-empty-interface': 'off',\n },\n }\n\n eslintConfig.overrides = [eslintConfigOverride]\n }\n\n files.push({\n name: '.eslintrc.cjs',\n contents: await format(\n resolve(packagePath, '.eslintrc.cjs'),\n outdent`\n 'use strict'\n\n /** @type import('eslint').Linter.Config */\n module.exports = ${JSON.stringify(eslintConfig, null, 2)}\n `,\n prettierConfig,\n ),\n })\n }\n\n if (features['typescript']) {\n files.push({\n name: 'tsconfig.settings.json',\n contents: await format(\n resolve(packagePath, 'tsconfig.settings.json'),\n outdent`\n {\n \"compilerOptions\": {\n // Completeness\n \"skipLibCheck\": true,\n\n // Interop constraints\n \"allowSyntheticDefaultImports\": true,\n \"esModuleInterop\": true,\n\n // Language and environment\n \"target\": \"ES2020\",\n\n // Modules\n \"module\": \"ES2020\",\n \"moduleResolution\": \"Node\",\n\n // Type checking\n \"alwaysStrict\": true,\n \"noFallthroughCasesInSwitch\": true,\n \"noImplicitAny\": true,\n \"noImplicitReturns\": true,\n \"noImplicitThis\": true,\n \"noUnusedLocals\": true,\n \"noUnusedParameters\": true,\n \"strict\": true,\n \"strictFunctionTypes\": true,\n \"strictNullChecks\": true,\n \"strictPropertyInitialization\": true\n }\n }\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'tsconfig.dist.json',\n contents: await format(\n resolve(packagePath, 'tsconfig.dist.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./src\"],\n \"exclude\": [\"./src/**/*.test.ts\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"resolveJsonModule\": true\n }\n }\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'tsconfig.json',\n contents: await format(\n resolve(packagePath, 'tsconfig.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./**/*.cjs\", \"./**/*.ts\", \"./**/*.tsx\"],\n \"exclude\": [\"./node_modules\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"noEmit\": true,\n \"allowJs\": true,\n \"resolveJsonModule\": true,\n }\n }\n `,\n prettierConfig,\n ),\n })\n }\n\n // source file\n if (features['typescript']) {\n files.push({\n name: 'package.config.ts',\n contents: await format(\n resolve(packagePath, 'package.config.ts'),\n outdent`\n import {defineConfig} from '@sanity/pkg-utils'\n\n // https://github.com/sanity-io/pkg-utils#configuration\n export default defineConfig({\n // the path to the tsconfig file for distributed builds\n tsconfig: 'tsconfig.dist.json',\n })\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'src/index.ts',\n contents: await format(\n resolve(packagePath, 'src/index.ts'),\n outdent`\n /** @public */\n export function main(): void {\n //\n }\n `,\n prettierConfig,\n ),\n })\n } else {\n files.push({\n name: 'package.config.js',\n contents: await format(\n resolve(packagePath, 'package.config.js'),\n outdent`\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with \\`_\\`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n })\n `,\n prettierConfig,\n ),\n })\n\n files.push({\n name: 'src/index.js',\n contents: await format(\n resolve(packagePath, 'src/index.js'),\n outdent`\n /** @public */\n export function main() {\n //\n }\n `,\n prettierConfig,\n ),\n })\n }\n\n // Resolve latest dependencies\n try {\n pkgJson.dependencies = await resolveLatestDeps(pkgJson.dependencies ?? {})\n } catch (error) {\n logger.warn(error instanceof Error ? error.message : error)\n }\n\n // Resolve latest devDependencies\n try {\n pkgJson.devDependencies = await resolveLatestDeps(pkgJson.devDependencies ?? {})\n } catch (error) {\n logger.warn(error instanceof Error ? error.message : error)\n }\n\n files.push({\n name: 'package.json',\n contents: await format(\n resolve(packagePath, 'package.json'),\n JSON.stringify(pkgJson, null, 2),\n prettierConfig,\n ),\n })\n\n return files\n },\n }\n}\n\nfunction format(filepath: string, input: string, prettierOptions: PrettierConfig | undefined) {\n return prettier.format(input, {...prettierOptions, plugins: [], filepath})\n}\n\nasync function resolveLatestDeps(deps: Record<string, string | undefined>) {\n const depsEntries = Object.entries(deps)\n const latestDeps: Record<string, string> = {}\n\n for (const entry of depsEntries) {\n const [name, version] = entry\n\n if (version) {\n const latestVersion = await getLatestVersion(name, version)\n\n latestDeps[name] = latestVersion ? `^${latestVersion}` : version\n }\n }\n\n return latestDeps\n}\n","import {lstat} from 'node:fs/promises'\nimport {resolve} from 'node:path'\n\nimport {mkdirp} from 'mkdirp'\n\nimport {createFromTemplate} from './core/template'\nimport {fileExists} from './fileExists'\nimport {isEmptyDirectory} from './isEmptyDirectory'\nimport {createLogger} from './logger'\nimport {defaultTemplate} from './templates'\n\n/** @public */\nexport async function init(options: {cwd: string; path: string}): Promise<void> {\n if (!options.cwd) {\n throw new Error('Missing required option: cwd')\n }\n\n if (!options.path) {\n throw new Error('Missing required option: path')\n }\n\n const logger = createLogger()\n\n const packagePath = resolve(options.cwd, options.path)\n\n await ensurePackagePath(packagePath)\n\n await createFromTemplate({\n cwd: options.cwd,\n logger,\n template: defaultTemplate,\n packagePath,\n })\n}\n\nasync function ensurePackagePath(packagePath: string): Promise<void> {\n const exists = fileExists(packagePath)\n\n if (!exists) {\n await mkdirp(packagePath)\n\n return\n }\n\n const dir = (await lstat(packagePath)).isDirectory()\n\n if (!dir) {\n throw new Error('the package path is a file, not a directory')\n }\n\n const empty = await isEmptyDirectory(packagePath)\n\n if (!empty) {\n throw new Error('the package directory is not empty')\n }\n}\n"],"names":["logger","relative","prompts","resolve","mkdirp","dirname","writeFile","readdir","parseGitConfig","gitUrlParse","outdent","isRecord","prettierConfig","prettier","getLatestVersion","createLogger","fileExists","lstat"],"mappings":"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","x_google_ignoreList":[3]}
|
package/dist/cli.cjs
CHANGED
|
@@ -3,7 +3,7 @@ var cac = require("cac");
|
|
|
3
3
|
function _interopDefaultCompat(e) {
|
|
4
4
|
return e && typeof e == "object" && "default" in e ? e : { default: e };
|
|
5
5
|
}
|
|
6
|
-
var cac__default = /* @__PURE__ */ _interopDefaultCompat(cac), version = "6.8.10-canary.
|
|
6
|
+
var cac__default = /* @__PURE__ */ _interopDefaultCompat(cac), version = "6.8.10-canary.2";
|
|
7
7
|
const cli = cac__default.default();
|
|
8
8
|
cli.command("", "Check").alias("check").option("--strict", "Strict mode").option("--tsconfig [tsconfig]", "[string] tsconfig.json").action(async (options) => {
|
|
9
9
|
const { checkAction } = await Promise.resolve().then(function() {
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import { z, ZodError } from "zod";
|
|
|
8
8
|
import chalk from "chalk";
|
|
9
9
|
import fs, { writeFile, readFile, readdir, lstat } from "node:fs/promises";
|
|
10
10
|
import browserslist from "browserslist";
|
|
11
|
-
import config from "@sanity/browserslist-config";
|
|
11
|
+
import config$1 from "@sanity/browserslist-config";
|
|
12
12
|
import ts from "typescript";
|
|
13
13
|
import { errorMap } from "zod-validation-error";
|
|
14
14
|
import { Observable, switchMap } from "rxjs";
|
|
@@ -33,7 +33,6 @@ import esbuild$1 from "esbuild";
|
|
|
33
33
|
import treeify from "treeify";
|
|
34
34
|
import prettyBytes from "pretty-bytes";
|
|
35
35
|
import prompts from "prompts";
|
|
36
|
-
import prettierConfig from "@sanity/prettier-config";
|
|
37
36
|
import getLatestVersion from "get-latest-version";
|
|
38
37
|
import gitUrlParse from "git-url-parse";
|
|
39
38
|
import { outdent } from "outdent";
|
|
@@ -82,7 +81,7 @@ async function loadConfig(options) {
|
|
|
82
81
|
function resolveConfigProperty(prop, initialValue) {
|
|
83
82
|
return prop ? typeof prop == "function" ? prop(initialValue) : prop : initialValue;
|
|
84
83
|
}
|
|
85
|
-
const DEFAULT_BROWSERSLIST_QUERY = config;
|
|
84
|
+
const DEFAULT_BROWSERSLIST_QUERY = config$1;
|
|
86
85
|
function isRecord(value) {
|
|
87
86
|
return !!value && !Array.isArray(value) && typeof value == "object";
|
|
88
87
|
}
|
|
@@ -1036,7 +1035,7 @@ async function extractTypes(options) {
|
|
|
1036
1035
|
messageCallback(message) {
|
|
1037
1036
|
messages.push(message), message.handled = !0;
|
|
1038
1037
|
}
|
|
1039
|
-
}), typesPath = path.resolve(distPath, filePath), typesBuf = await fs.readFile(typesPath),
|
|
1038
|
+
}), typesPath = path.resolve(distPath, filePath), typesBuf = await fs.readFile(typesPath), prettierConfig = await prettier.resolveConfig(typesPath);
|
|
1040
1039
|
await mkdirp(path.dirname(typesPath));
|
|
1041
1040
|
const moduleBlocks = await extractModuleBlocksFromTypes({
|
|
1042
1041
|
extractResult: extractorResult,
|
|
@@ -1044,7 +1043,7 @@ async function extractTypes(options) {
|
|
|
1044
1043
|
}), code = [typesBuf.toString(), ...moduleBlocks].join(`
|
|
1045
1044
|
|
|
1046
1045
|
`), prettyCode = await prettier.format(code, {
|
|
1047
|
-
...
|
|
1046
|
+
...prettierConfig,
|
|
1048
1047
|
filepath: typesPath
|
|
1049
1048
|
});
|
|
1050
1049
|
for (const expFilePath of filePaths) {
|
|
@@ -1592,7 +1591,34 @@ function printEsbuildMessage(log, msg) {
|
|
|
1592
1591
|
async function isEmptyDirectory(dirPath) {
|
|
1593
1592
|
return (await readdir(dirPath)).length === 0;
|
|
1594
1593
|
}
|
|
1595
|
-
const
|
|
1594
|
+
const overridableDefaults = {
|
|
1595
|
+
endOfLine: "lf",
|
|
1596
|
+
tabWidth: 2,
|
|
1597
|
+
useTabs: !1
|
|
1598
|
+
}, config = {
|
|
1599
|
+
...overridableDefaults,
|
|
1600
|
+
printWidth: 100,
|
|
1601
|
+
semi: !1,
|
|
1602
|
+
singleQuote: !0,
|
|
1603
|
+
quoteProps: "consistent",
|
|
1604
|
+
bracketSpacing: !1,
|
|
1605
|
+
plugins: ["prettier-plugin-packagejson"],
|
|
1606
|
+
overrides: [
|
|
1607
|
+
{
|
|
1608
|
+
files: ["*.json5"],
|
|
1609
|
+
options: {
|
|
1610
|
+
quoteProps: "preserve",
|
|
1611
|
+
singleQuote: !1
|
|
1612
|
+
}
|
|
1613
|
+
},
|
|
1614
|
+
{
|
|
1615
|
+
files: ["*.yml"],
|
|
1616
|
+
options: {
|
|
1617
|
+
singleQuote: !1
|
|
1618
|
+
}
|
|
1619
|
+
}
|
|
1620
|
+
]
|
|
1621
|
+
}, RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/i, defaultTemplate = async ({ cwd, logger, packagePath }) => {
|
|
1596
1622
|
const gitConfig = await parseGitConfig({ cwd, type: "global" });
|
|
1597
1623
|
return {
|
|
1598
1624
|
options: [
|
|
@@ -1859,7 +1885,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
1859
1885
|
/** @type import('eslint').Linter.Config */
|
|
1860
1886
|
module.exports = ${JSON.stringify(eslintConfig, null, 2)}
|
|
1861
1887
|
`,
|
|
1862
|
-
|
|
1888
|
+
config
|
|
1863
1889
|
)
|
|
1864
1890
|
});
|
|
1865
1891
|
}
|
|
@@ -1899,7 +1925,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
1899
1925
|
}
|
|
1900
1926
|
}
|
|
1901
1927
|
`,
|
|
1902
|
-
|
|
1928
|
+
config
|
|
1903
1929
|
)
|
|
1904
1930
|
}), files.push({
|
|
1905
1931
|
name: "tsconfig.dist.json",
|
|
@@ -1917,7 +1943,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
1917
1943
|
}
|
|
1918
1944
|
}
|
|
1919
1945
|
`,
|
|
1920
|
-
|
|
1946
|
+
config
|
|
1921
1947
|
)
|
|
1922
1948
|
}), files.push({
|
|
1923
1949
|
name: "tsconfig.json",
|
|
@@ -1937,7 +1963,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
1937
1963
|
}
|
|
1938
1964
|
}
|
|
1939
1965
|
`,
|
|
1940
|
-
|
|
1966
|
+
config
|
|
1941
1967
|
)
|
|
1942
1968
|
})), features.typescript ? (files.push({
|
|
1943
1969
|
name: "package.config.ts",
|
|
@@ -1952,7 +1978,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
1952
1978
|
tsconfig: 'tsconfig.dist.json',
|
|
1953
1979
|
})
|
|
1954
1980
|
`,
|
|
1955
|
-
|
|
1981
|
+
config
|
|
1956
1982
|
)
|
|
1957
1983
|
}), files.push({
|
|
1958
1984
|
name: "src/index.ts",
|
|
@@ -1964,7 +1990,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
1964
1990
|
//
|
|
1965
1991
|
}
|
|
1966
1992
|
`,
|
|
1967
|
-
|
|
1993
|
+
config
|
|
1968
1994
|
)
|
|
1969
1995
|
})) : (files.push({
|
|
1970
1996
|
name: "package.config.js",
|
|
@@ -1982,7 +2008,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
1982
2008
|
},
|
|
1983
2009
|
})
|
|
1984
2010
|
`,
|
|
1985
|
-
|
|
2011
|
+
config
|
|
1986
2012
|
)
|
|
1987
2013
|
}), files.push({
|
|
1988
2014
|
name: "src/index.js",
|
|
@@ -1994,7 +2020,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
1994
2020
|
//
|
|
1995
2021
|
}
|
|
1996
2022
|
`,
|
|
1997
|
-
|
|
2023
|
+
config
|
|
1998
2024
|
)
|
|
1999
2025
|
}));
|
|
2000
2026
|
try {
|
|
@@ -2012,7 +2038,7 @@ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/
|
|
|
2012
2038
|
contents: await format(
|
|
2013
2039
|
resolve(packagePath, "package.json"),
|
|
2014
2040
|
JSON.stringify(pkgJson, null, 2),
|
|
2015
|
-
|
|
2041
|
+
config
|
|
2016
2042
|
)
|
|
2017
2043
|
}), files;
|
|
2018
2044
|
}
|