commit
a1acf26ef6
@ -0,0 +1 @@ |
|||||||
|
node_modules/ |
@ -0,0 +1,74 @@ |
|||||||
|
import prompts from 'prompts'; |
||||||
|
import kebabCase from 'lodash.kebabcase'; |
||||||
|
import sanitize from 'sanitize-filename'; |
||||||
|
import util from 'util'; |
||||||
|
import fs from 'fs-extra'; |
||||||
|
import path from 'path'; |
||||||
|
import { sortPackageJson } from 'sort-package-json'; |
||||||
|
const exec = util.promisify(require('child_process').exec); |
||||||
|
const repoUrls = { |
||||||
|
js: '/Users/ck/dev/js-tinkr-plugin-boilerplate', //'https://git.tinkr.site/jeffi/js-tinkrplugin-boilerplate.git',
|
||||||
|
ts: '/Users/ck/dev/ts-tinkr-plugin-boilerplate', //'https://git.tinkr.site/jeffi/ts-tinkr-plugin-boilerplate.git',
|
||||||
|
}; |
||||||
|
const invalidName = ` |
||||||
|
It is recommended to keep your plugin name short. |
||||||
|
`.trim();
|
||||||
|
const invalidVersion = ` |
||||||
|
A valid version has one to four dot-separated integers. |
||||||
|
Examples: "1", "1.0", "2.0.3", "3.4.7.219" |
||||||
|
`.trim();
|
||||||
|
prompts([ |
||||||
|
{ |
||||||
|
type: 'text', |
||||||
|
name: 'name', |
||||||
|
message: 'Tinkr plugin package name:', |
||||||
|
validate: (n) => n.length < 32 || invalidName, |
||||||
|
}, |
||||||
|
{ |
||||||
|
type: 'text', |
||||||
|
name: 'version', |
||||||
|
message: 'First version number:', |
||||||
|
initial: '1.0.0', |
||||||
|
validate: (v) => !/[^.\d]/.test(v) || invalidVersion, |
||||||
|
}, |
||||||
|
{ |
||||||
|
type: 'text', |
||||||
|
name: 'author', |
||||||
|
message: 'Author name:', |
||||||
|
}, |
||||||
|
{ |
||||||
|
type: 'text', |
||||||
|
name: 'description', |
||||||
|
message: 'Description:', |
||||||
|
}, |
||||||
|
{ |
||||||
|
type: 'select', |
||||||
|
name: 'lang', |
||||||
|
message: 'Which do you want to use?', |
||||||
|
choices: [ |
||||||
|
{ title: 'JavaScript', value: 'js' }, |
||||||
|
{ title: 'TypeScript', value: 'ts' }, |
||||||
|
], |
||||||
|
initial: 0, |
||||||
|
}, |
||||||
|
]).then(async ({ name, version, author, description, lang }) => { |
||||||
|
const packageName = kebabCase(sanitize(name, { replacement: '-' })); |
||||||
|
console.log(`Creating a Tinkr plugin in ./${packageName}`); |
||||||
|
await exec(`git clone ${repoUrls[lang]} ${packageName}`); |
||||||
|
const packageDir = path.join(process.cwd(), packageName); |
||||||
|
const packageJsonPath = path.join(packageDir, 'package.json'); |
||||||
|
const { bugs, homepage, keywords, license, repository, ...packageJson } = await fs.readJSON(packageJsonPath); |
||||||
|
await fs.writeJSON(packageJsonPath, sortPackageJson({ |
||||||
|
...packageJson, |
||||||
|
author, |
||||||
|
description, |
||||||
|
name: packageName, |
||||||
|
version, |
||||||
|
}), { spaces: 2 }); |
||||||
|
const gitFolderPath = path.join(packageDir, '.git'); |
||||||
|
await fs.remove(gitFolderPath); |
||||||
|
console.log('Success: Now just `npm install` using your favorite package manager and create your Tinkr plugin!'); |
||||||
|
}).catch((error) => { |
||||||
|
console.error(error); |
||||||
|
process.exit(1); |
||||||
|
}); |
@ -0,0 +1,582 @@ |
|||||||
|
{ |
||||||
|
"name": "create-tinkr-plugin", |
||||||
|
"version": "1.0.0", |
||||||
|
"lockfileVersion": 3, |
||||||
|
"requires": true, |
||||||
|
"packages": { |
||||||
|
"": { |
||||||
|
"name": "create-tinkr-plugin", |
||||||
|
"version": "1.0.0", |
||||||
|
"license": "ISC", |
||||||
|
"dependencies": { |
||||||
|
"fs-extra": "^11.2.0", |
||||||
|
"lodash.kebabcase": "^4.1.1", |
||||||
|
"prompts": "^2.4.2", |
||||||
|
"sanitize-filename": "^1.6.3", |
||||||
|
"sort-package-json": "^2.10.1" |
||||||
|
}, |
||||||
|
"devDependencies": { |
||||||
|
"@types/fs-extra": "^11.0.4", |
||||||
|
"@types/lodash.kebabcase": "^4.1.9", |
||||||
|
"@types/prompts": "^2.4.9", |
||||||
|
"typescript": "^5.6.2" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/@nodelib/fs.scandir": { |
||||||
|
"version": "2.1.5", |
||||||
|
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", |
||||||
|
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"@nodelib/fs.stat": "2.0.5", |
||||||
|
"run-parallel": "^1.1.9" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">= 8" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/@nodelib/fs.stat": { |
||||||
|
"version": "2.0.5", |
||||||
|
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", |
||||||
|
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": ">= 8" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/@nodelib/fs.walk": { |
||||||
|
"version": "1.2.8", |
||||||
|
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", |
||||||
|
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"@nodelib/fs.scandir": "2.1.5", |
||||||
|
"fastq": "^1.6.0" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">= 8" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/@types/fs-extra": { |
||||||
|
"version": "11.0.4", |
||||||
|
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", |
||||||
|
"integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", |
||||||
|
"dev": true, |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"@types/jsonfile": "*", |
||||||
|
"@types/node": "*" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/@types/jsonfile": { |
||||||
|
"version": "6.1.4", |
||||||
|
"resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", |
||||||
|
"integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", |
||||||
|
"dev": true, |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"@types/node": "*" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/@types/lodash": { |
||||||
|
"version": "4.17.7", |
||||||
|
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", |
||||||
|
"integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", |
||||||
|
"dev": true, |
||||||
|
"license": "MIT" |
||||||
|
}, |
||||||
|
"node_modules/@types/lodash.kebabcase": { |
||||||
|
"version": "4.1.9", |
||||||
|
"resolved": "https://registry.npmjs.org/@types/lodash.kebabcase/-/lodash.kebabcase-4.1.9.tgz", |
||||||
|
"integrity": "sha512-kPrrmcVOhSsjAVRovN0lRfrbuidfg0wYsrQa5IYuoQO1fpHHGSme66oyiYA/5eQPVl8Z95OA3HG0+d2SvYC85w==", |
||||||
|
"dev": true, |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"@types/lodash": "*" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/@types/node": { |
||||||
|
"version": "22.5.5", |
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz", |
||||||
|
"integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==", |
||||||
|
"dev": true, |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"undici-types": "~6.19.2" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/@types/prompts": { |
||||||
|
"version": "2.4.9", |
||||||
|
"resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.9.tgz", |
||||||
|
"integrity": "sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==", |
||||||
|
"dev": true, |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"@types/node": "*", |
||||||
|
"kleur": "^3.0.3" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/braces": { |
||||||
|
"version": "3.0.3", |
||||||
|
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", |
||||||
|
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"fill-range": "^7.1.1" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">=8" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/detect-indent": { |
||||||
|
"version": "7.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-7.0.1.tgz", |
||||||
|
"integrity": "sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": ">=12.20" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/detect-newline": { |
||||||
|
"version": "4.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-4.0.1.tgz", |
||||||
|
"integrity": "sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": "^12.20.0 || ^14.13.1 || >=16.0.0" |
||||||
|
}, |
||||||
|
"funding": { |
||||||
|
"url": "https://github.com/sponsors/sindresorhus" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/dir-glob": { |
||||||
|
"version": "3.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", |
||||||
|
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"path-type": "^4.0.0" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">=8" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/fast-glob": { |
||||||
|
"version": "3.3.2", |
||||||
|
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", |
||||||
|
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"@nodelib/fs.stat": "^2.0.2", |
||||||
|
"@nodelib/fs.walk": "^1.2.3", |
||||||
|
"glob-parent": "^5.1.2", |
||||||
|
"merge2": "^1.3.0", |
||||||
|
"micromatch": "^4.0.4" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">=8.6.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/fastq": { |
||||||
|
"version": "1.17.1", |
||||||
|
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", |
||||||
|
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", |
||||||
|
"license": "ISC", |
||||||
|
"dependencies": { |
||||||
|
"reusify": "^1.0.4" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/fill-range": { |
||||||
|
"version": "7.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", |
||||||
|
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"to-regex-range": "^5.0.1" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">=8" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/fs-extra": { |
||||||
|
"version": "11.2.0", |
||||||
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", |
||||||
|
"integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"graceful-fs": "^4.2.0", |
||||||
|
"jsonfile": "^6.0.1", |
||||||
|
"universalify": "^2.0.0" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">=14.14" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/get-stdin": { |
||||||
|
"version": "9.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", |
||||||
|
"integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": ">=12" |
||||||
|
}, |
||||||
|
"funding": { |
||||||
|
"url": "https://github.com/sponsors/sindresorhus" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/git-hooks-list": { |
||||||
|
"version": "3.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-3.1.0.tgz", |
||||||
|
"integrity": "sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==", |
||||||
|
"license": "MIT", |
||||||
|
"funding": { |
||||||
|
"url": "https://github.com/fisker/git-hooks-list?sponsor=1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/glob-parent": { |
||||||
|
"version": "5.1.2", |
||||||
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", |
||||||
|
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", |
||||||
|
"license": "ISC", |
||||||
|
"dependencies": { |
||||||
|
"is-glob": "^4.0.1" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">= 6" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/globby": { |
||||||
|
"version": "13.2.2", |
||||||
|
"resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", |
||||||
|
"integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"dir-glob": "^3.0.1", |
||||||
|
"fast-glob": "^3.3.0", |
||||||
|
"ignore": "^5.2.4", |
||||||
|
"merge2": "^1.4.1", |
||||||
|
"slash": "^4.0.0" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": "^12.20.0 || ^14.13.1 || >=16.0.0" |
||||||
|
}, |
||||||
|
"funding": { |
||||||
|
"url": "https://github.com/sponsors/sindresorhus" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/graceful-fs": { |
||||||
|
"version": "4.2.11", |
||||||
|
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", |
||||||
|
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", |
||||||
|
"license": "ISC" |
||||||
|
}, |
||||||
|
"node_modules/ignore": { |
||||||
|
"version": "5.3.2", |
||||||
|
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", |
||||||
|
"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": ">= 4" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/is-extglob": { |
||||||
|
"version": "2.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", |
||||||
|
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": ">=0.10.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/is-glob": { |
||||||
|
"version": "4.0.3", |
||||||
|
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", |
||||||
|
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"is-extglob": "^2.1.1" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">=0.10.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/is-number": { |
||||||
|
"version": "7.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", |
||||||
|
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": ">=0.12.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/is-plain-obj": { |
||||||
|
"version": "4.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", |
||||||
|
"integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": ">=12" |
||||||
|
}, |
||||||
|
"funding": { |
||||||
|
"url": "https://github.com/sponsors/sindresorhus" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/jsonfile": { |
||||||
|
"version": "6.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", |
||||||
|
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"universalify": "^2.0.0" |
||||||
|
}, |
||||||
|
"optionalDependencies": { |
||||||
|
"graceful-fs": "^4.1.6" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/kleur": { |
||||||
|
"version": "3.0.3", |
||||||
|
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", |
||||||
|
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": ">=6" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/lodash.kebabcase": { |
||||||
|
"version": "4.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", |
||||||
|
"integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", |
||||||
|
"license": "MIT" |
||||||
|
}, |
||||||
|
"node_modules/merge2": { |
||||||
|
"version": "1.4.1", |
||||||
|
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", |
||||||
|
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": ">= 8" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/micromatch": { |
||||||
|
"version": "4.0.8", |
||||||
|
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", |
||||||
|
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"braces": "^3.0.3", |
||||||
|
"picomatch": "^2.3.1" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">=8.6" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/path-type": { |
||||||
|
"version": "4.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", |
||||||
|
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": ">=8" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/picomatch": { |
||||||
|
"version": "2.3.1", |
||||||
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", |
||||||
|
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": ">=8.6" |
||||||
|
}, |
||||||
|
"funding": { |
||||||
|
"url": "https://github.com/sponsors/jonschlinkert" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/prompts": { |
||||||
|
"version": "2.4.2", |
||||||
|
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", |
||||||
|
"integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"kleur": "^3.0.3", |
||||||
|
"sisteransi": "^1.0.5" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">= 6" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/queue-microtask": { |
||||||
|
"version": "1.2.3", |
||||||
|
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", |
||||||
|
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", |
||||||
|
"funding": [ |
||||||
|
{ |
||||||
|
"type": "github", |
||||||
|
"url": "https://github.com/sponsors/feross" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"type": "patreon", |
||||||
|
"url": "https://www.patreon.com/feross" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"type": "consulting", |
||||||
|
"url": "https://feross.org/support" |
||||||
|
} |
||||||
|
], |
||||||
|
"license": "MIT" |
||||||
|
}, |
||||||
|
"node_modules/reusify": { |
||||||
|
"version": "1.0.4", |
||||||
|
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", |
||||||
|
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"iojs": ">=1.0.0", |
||||||
|
"node": ">=0.10.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/run-parallel": { |
||||||
|
"version": "1.2.0", |
||||||
|
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", |
||||||
|
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", |
||||||
|
"funding": [ |
||||||
|
{ |
||||||
|
"type": "github", |
||||||
|
"url": "https://github.com/sponsors/feross" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"type": "patreon", |
||||||
|
"url": "https://www.patreon.com/feross" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"type": "consulting", |
||||||
|
"url": "https://feross.org/support" |
||||||
|
} |
||||||
|
], |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"queue-microtask": "^1.2.2" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/sanitize-filename": { |
||||||
|
"version": "1.6.3", |
||||||
|
"resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", |
||||||
|
"integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", |
||||||
|
"license": "WTFPL OR ISC", |
||||||
|
"dependencies": { |
||||||
|
"truncate-utf8-bytes": "^1.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/semver": { |
||||||
|
"version": "7.6.3", |
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", |
||||||
|
"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", |
||||||
|
"license": "ISC", |
||||||
|
"bin": { |
||||||
|
"semver": "bin/semver.js" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">=10" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/sisteransi": { |
||||||
|
"version": "1.0.5", |
||||||
|
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", |
||||||
|
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", |
||||||
|
"license": "MIT" |
||||||
|
}, |
||||||
|
"node_modules/slash": { |
||||||
|
"version": "4.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", |
||||||
|
"integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": ">=12" |
||||||
|
}, |
||||||
|
"funding": { |
||||||
|
"url": "https://github.com/sponsors/sindresorhus" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/sort-object-keys": { |
||||||
|
"version": "1.1.3", |
||||||
|
"resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz", |
||||||
|
"integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", |
||||||
|
"license": "MIT" |
||||||
|
}, |
||||||
|
"node_modules/sort-package-json": { |
||||||
|
"version": "2.10.1", |
||||||
|
"resolved": "https://registry.npmjs.org/sort-package-json/-/sort-package-json-2.10.1.tgz", |
||||||
|
"integrity": "sha512-d76wfhgUuGypKqY72Unm5LFnMpACbdxXsLPcL27pOsSrmVqH3PztFp1uq+Z22suk15h7vXmTesuh2aEjdCqb5w==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"detect-indent": "^7.0.1", |
||||||
|
"detect-newline": "^4.0.0", |
||||||
|
"get-stdin": "^9.0.0", |
||||||
|
"git-hooks-list": "^3.0.0", |
||||||
|
"globby": "^13.1.2", |
||||||
|
"is-plain-obj": "^4.1.0", |
||||||
|
"semver": "^7.6.0", |
||||||
|
"sort-object-keys": "^1.1.3" |
||||||
|
}, |
||||||
|
"bin": { |
||||||
|
"sort-package-json": "cli.js" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/to-regex-range": { |
||||||
|
"version": "5.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", |
||||||
|
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", |
||||||
|
"license": "MIT", |
||||||
|
"dependencies": { |
||||||
|
"is-number": "^7.0.0" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">=8.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/truncate-utf8-bytes": { |
||||||
|
"version": "1.0.2", |
||||||
|
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", |
||||||
|
"integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", |
||||||
|
"license": "WTFPL", |
||||||
|
"dependencies": { |
||||||
|
"utf8-byte-length": "^1.0.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/typescript": { |
||||||
|
"version": "5.6.2", |
||||||
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", |
||||||
|
"integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", |
||||||
|
"dev": true, |
||||||
|
"license": "Apache-2.0", |
||||||
|
"bin": { |
||||||
|
"tsc": "bin/tsc", |
||||||
|
"tsserver": "bin/tsserver" |
||||||
|
}, |
||||||
|
"engines": { |
||||||
|
"node": ">=14.17" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/undici-types": { |
||||||
|
"version": "6.19.8", |
||||||
|
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", |
||||||
|
"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", |
||||||
|
"dev": true, |
||||||
|
"license": "MIT" |
||||||
|
}, |
||||||
|
"node_modules/universalify": { |
||||||
|
"version": "2.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", |
||||||
|
"integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", |
||||||
|
"license": "MIT", |
||||||
|
"engines": { |
||||||
|
"node": ">= 10.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"node_modules/utf8-byte-length": { |
||||||
|
"version": "1.0.5", |
||||||
|
"resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", |
||||||
|
"integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==", |
||||||
|
"license": "(WTFPL OR MIT)" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
{ |
||||||
|
"name": "create-tinkr-plugin", |
||||||
|
"version": "1.0.0", |
||||||
|
"main": "index.js", |
||||||
|
"scripts": { |
||||||
|
"test": "echo \"Error: no test specified\" && exit 1", |
||||||
|
"build": "tsc -p tsconfig.json" |
||||||
|
}, |
||||||
|
"author": "", |
||||||
|
"license": "ISC", |
||||||
|
"description": "", |
||||||
|
"devDependencies": { |
||||||
|
"@types/fs-extra": "^11.0.4", |
||||||
|
"@types/lodash.kebabcase": "^4.1.9", |
||||||
|
"@types/prompts": "^2.4.9", |
||||||
|
"typescript": "^5.6.2" |
||||||
|
}, |
||||||
|
"dependencies": { |
||||||
|
"fs-extra": "^11.2.0", |
||||||
|
"lodash.kebabcase": "^4.1.1", |
||||||
|
"prompts": "^2.4.2", |
||||||
|
"sanitize-filename": "^1.6.3", |
||||||
|
"sort-package-json": "^2.10.1" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,90 @@ |
|||||||
|
import prompts from 'prompts'; |
||||||
|
import kebabCase from 'lodash.kebabcase'; |
||||||
|
import sanitize from 'sanitize-filename'; |
||||||
|
import util from 'util'; |
||||||
|
import fs from 'fs-extra'; |
||||||
|
import path from 'path'; |
||||||
|
import { sortPackageJson } from 'sort-package-json'; |
||||||
|
|
||||||
|
const exec = util.promisify(require('child_process').exec); |
||||||
|
|
||||||
|
const repoUrls = { |
||||||
|
js: 'https://git.tinkr.site/jeffi/js-tinkrplugin-boilerplate.git', |
||||||
|
ts: 'https://git.tinkr.site/jeffi/ts-tinkr-plugin-boilerplate.git', |
||||||
|
} |
||||||
|
|
||||||
|
const invalidName = ` |
||||||
|
It is recommended to keep your plugin name short. |
||||||
|
`.trim()
|
||||||
|
|
||||||
|
const invalidVersion = ` |
||||||
|
A valid version has one to four dot-separated integers. |
||||||
|
Examples: "1", "1.0", "2.0.3", "3.4.7.219" |
||||||
|
`.trim()
|
||||||
|
|
||||||
|
prompts([ |
||||||
|
{ |
||||||
|
type: 'text', |
||||||
|
name: 'name', |
||||||
|
message: 'Tinkr plugin package name:', |
||||||
|
validate: (n) => n.length < 32 || invalidName, |
||||||
|
}, |
||||||
|
{ |
||||||
|
type: 'text', |
||||||
|
name: 'version', |
||||||
|
message: 'First version number:', |
||||||
|
initial: '1.0.0', |
||||||
|
validate: (v) => !/[^.\d]/.test(v) || invalidVersion, |
||||||
|
}, |
||||||
|
{ |
||||||
|
type: 'text', |
||||||
|
name: 'author', |
||||||
|
message: 'Author name:', |
||||||
|
}, |
||||||
|
{ |
||||||
|
type: 'text', |
||||||
|
name: 'description', |
||||||
|
message: 'Description:', |
||||||
|
}, |
||||||
|
{ |
||||||
|
type: 'select', |
||||||
|
name: 'lang', |
||||||
|
message: 'Which do you want to use?', |
||||||
|
choices: [ |
||||||
|
{ title: 'JavaScript', value: 'js' }, |
||||||
|
{ title: 'TypeScript', value: 'ts' }, |
||||||
|
], |
||||||
|
initial: 0, |
||||||
|
}, |
||||||
|
]).then(async ({ name, version, author, description, lang }: {name: string, version: string, author: string, description: string, lang: 'js'|'ts'}) => { |
||||||
|
const packageName = kebabCase(sanitize(name, { replacement: '-' })) |
||||||
|
|
||||||
|
console.log(`Creating a Tinkr plugin in ./${packageName}`) |
||||||
|
|
||||||
|
await exec(`git clone ${repoUrls[lang]} ${packageName}`) |
||||||
|
|
||||||
|
const packageDir = path.join(process.cwd(), packageName) |
||||||
|
const packageJsonPath = path.join(packageDir, 'package.json') |
||||||
|
|
||||||
|
const { bugs, homepage, keywords, license, repository, ...packageJson } = await fs.readJSON(packageJsonPath) |
||||||
|
|
||||||
|
await fs.writeJSON( |
||||||
|
packageJsonPath, |
||||||
|
sortPackageJson({ |
||||||
|
...packageJson, |
||||||
|
author, |
||||||
|
description, |
||||||
|
name: packageName, |
||||||
|
version, |
||||||
|
}), |
||||||
|
{ spaces: 2 }, |
||||||
|
) |
||||||
|
|
||||||
|
const gitFolderPath = path.join(packageDir, '.git') |
||||||
|
await fs.remove(gitFolderPath) |
||||||
|
|
||||||
|
console.log('Success: Now just `npm install` using your favorite package manager and create your Tinkr plugin!',) |
||||||
|
}).catch((error) => { |
||||||
|
console.error(error) |
||||||
|
process.exit(1) |
||||||
|
}) |
@ -0,0 +1,112 @@ |
|||||||
|
{ |
||||||
|
"compilerOptions": { |
||||||
|
/* Visit https://aka.ms/tsconfig to read more about this file */ |
||||||
|
|
||||||
|
/* Projects */ |
||||||
|
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ |
||||||
|
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ |
||||||
|
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ |
||||||
|
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ |
||||||
|
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ |
||||||
|
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ |
||||||
|
|
||||||
|
/* Language and Environment */ |
||||||
|
"target": "es2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ |
||||||
|
"lib": ["ES2022"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ |
||||||
|
// "jsx": "preserve", /* Specify what JSX code is generated. */ |
||||||
|
// "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ |
||||||
|
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ |
||||||
|
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ |
||||||
|
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ |
||||||
|
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ |
||||||
|
// "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ |
||||||
|
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ |
||||||
|
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ |
||||||
|
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ |
||||||
|
|
||||||
|
/* Modules */ |
||||||
|
"module": "ESNext", /* Specify what module code is generated. */ |
||||||
|
"rootDir": "./src", /* Specify the root folder within your source files. */ |
||||||
|
"moduleResolution": "Bundler", /* Specify how TypeScript looks up a file from a given module specifier. */ |
||||||
|
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ |
||||||
|
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ |
||||||
|
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ |
||||||
|
// "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ |
||||||
|
// "types": [], /* Specify type package names to be included without being referenced in a source file. */ |
||||||
|
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ |
||||||
|
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ |
||||||
|
// "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ |
||||||
|
// "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ |
||||||
|
// "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ |
||||||
|
// "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ |
||||||
|
// "noUncheckedSideEffectImports": true, /* Check side effect imports. */ |
||||||
|
// "resolveJsonModule": true, /* Enable importing .json files. */ |
||||||
|
// "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ |
||||||
|
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */ |
||||||
|
|
||||||
|
/* JavaScript Support */ |
||||||
|
// "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ |
||||||
|
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ |
||||||
|
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ |
||||||
|
|
||||||
|
/* Emit */ |
||||||
|
// "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ |
||||||
|
// "declarationMap": true, /* Create sourcemaps for d.ts files. */ |
||||||
|
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ |
||||||
|
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */ |
||||||
|
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ |
||||||
|
// "noEmit": true, /* Disable emitting files from a compilation. */ |
||||||
|
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ |
||||||
|
"outDir": "./", /* Specify an output folder for all emitted files. */ |
||||||
|
// "removeComments": true, /* Disable emitting comments. */ |
||||||
|
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ |
||||||
|
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ |
||||||
|
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ |
||||||
|
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ |
||||||
|
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ |
||||||
|
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ |
||||||
|
// "newLine": "crlf", /* Set the newline character for emitting files. */ |
||||||
|
// "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ |
||||||
|
// "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ |
||||||
|
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ |
||||||
|
// "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ |
||||||
|
// "declarationDir": "./", /* Specify the output directory for generated declaration files. */ |
||||||
|
|
||||||
|
/* Interop Constraints */ |
||||||
|
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ |
||||||
|
// "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ |
||||||
|
// "isolatedDeclarations": true, /* Require sufficient annotation on exports so other tools can trivially generate declaration files. */ |
||||||
|
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ |
||||||
|
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ |
||||||
|
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ |
||||||
|
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ |
||||||
|
|
||||||
|
/* Type Checking */ |
||||||
|
"strict": true, /* Enable all strict type-checking options. */ |
||||||
|
// "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ |
||||||
|
// "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ |
||||||
|
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ |
||||||
|
// "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ |
||||||
|
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ |
||||||
|
// "strictBuiltinIteratorReturn": true, /* Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'. */ |
||||||
|
// "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ |
||||||
|
// "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ |
||||||
|
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ |
||||||
|
// "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ |
||||||
|
// "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ |
||||||
|
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ |
||||||
|
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ |
||||||
|
// "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ |
||||||
|
// "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ |
||||||
|
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ |
||||||
|
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ |
||||||
|
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ |
||||||
|
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ |
||||||
|
|
||||||
|
/* Completeness */ |
||||||
|
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ |
||||||
|
"skipLibCheck": true /* Skip type checking all .d.ts files. */ |
||||||
|
}, |
||||||
|
"include": ["src/**/*"], |
||||||
|
"exclude": ["*.js"] |
||||||
|
} |
Loading…
Reference in new issue