@strapi/generators 5.49.0 → 5.50.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -3
- package/dist/index.mjs.map +1 -1
- package/dist/plopfile.d.ts.map +1 -1
- package/dist/plops/api.d.ts.map +1 -1
- package/dist/plops/api.js +6 -10
- package/dist/plops/api.js.map +1 -1
- package/dist/plops/api.mjs +6 -9
- package/dist/plops/api.mjs.map +1 -1
- package/dist/plops/content-type.d.ts.map +1 -1
- package/dist/plops/content-type.js +5 -9
- package/dist/plops/content-type.js.map +1 -1
- package/dist/plops/content-type.mjs +5 -8
- package/dist/plops/content-type.mjs.map +1 -1
- package/dist/plops/controller.d.ts.map +1 -1
- package/dist/plops/controller.js +5 -9
- package/dist/plops/controller.js.map +1 -1
- package/dist/plops/controller.mjs +5 -8
- package/dist/plops/controller.mjs.map +1 -1
- package/dist/plops/middleware.d.ts.map +1 -1
- package/dist/plops/middleware.js +5 -9
- package/dist/plops/middleware.js.map +1 -1
- package/dist/plops/middleware.mjs +5 -8
- package/dist/plops/middleware.mjs.map +1 -1
- package/dist/plops/migration.d.ts.map +1 -1
- package/dist/plops/policy.d.ts.map +1 -1
- package/dist/plops/policy.js +5 -9
- package/dist/plops/policy.js.map +1 -1
- package/dist/plops/policy.mjs +5 -8
- package/dist/plops/policy.mjs.map +1 -1
- package/dist/plops/prompts/get-attributes-prompts.d.ts.map +1 -1
- package/dist/plops/prompts/get-destination-prompts.d.ts +0 -1
- package/dist/plops/prompts/get-destination-prompts.d.ts.map +1 -1
- package/dist/plops/service.d.ts.map +1 -1
- package/dist/plops/service.js +5 -9
- package/dist/plops/service.js.map +1 -1
- package/dist/plops/service.mjs +5 -8
- package/dist/plops/service.mjs.map +1 -1
- package/dist/plops/utils/extend-plugin-index-files.d.ts.map +1 -1
- package/dist/plops/utils/get-file-path.d.ts.map +1 -1
- package/dist/plops/utils/get-formatted-date.d.ts.map +1 -1
- package/dist/plops/utils/get-generator-language.d.ts +15 -0
- package/dist/plops/utils/get-generator-language.d.ts.map +1 -0
- package/dist/plops/utils/get-generator-language.js +26 -0
- package/dist/plops/utils/get-generator-language.js.map +1 -0
- package/dist/plops/utils/get-generator-language.mjs +20 -0
- package/dist/plops/utils/get-generator-language.mjs.map +1 -0
- package/dist/plops/utils/validate-attribute-input.d.ts.map +1 -1
- package/dist/plops/utils/validate-file-name-input.d.ts.map +1 -1
- package/dist/plops/utils/validate-input.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-type.mjs","sources":["../../src/plops/content-type.ts"],"sourcesContent":["import { join } from 'path';\nimport type { NodePlopAPI, ActionType } from 'plop';\nimport slugify from '@sindresorhus/slugify';\nimport fs from 'fs-extra';\nimport { strings } from '@strapi/utils';\nimport tsUtils from '@strapi/typescript-utils';\n\nimport getDestinationPrompts from './prompts/get-destination-prompts';\nimport getFilePath from './utils/get-file-path';\nimport ctNamesPrompts from './prompts/ct-names-prompts';\nimport kindPrompts from './prompts/kind-prompts';\nimport getAttributesPrompts from './prompts/get-attributes-prompts';\nimport bootstrapApiPrompts from './prompts/bootstrap-api-prompts';\nimport { appendToFile } from './utils/extend-plugin-index-files';\n\nexport default (plop: NodePlopAPI) => {\n // Model generator\n plop.setGenerator('content-type', {\n description: 'Generate a content type for an API',\n async prompts(inquirer) {\n const config = await inquirer.prompt([...ctNamesPrompts, ...kindPrompts]);\n const attributes = await getAttributesPrompts(inquirer);\n\n const api = await inquirer.prompt([\n ...getDestinationPrompts('model', plop.getDestBasePath()),\n {\n when: (answers) => answers.destination === 'new',\n type: 'input',\n name: 'id',\n default: config.singularName,\n message: 'Name of the new API?',\n async validate(input) {\n if (!strings.isKebabCase(input)) {\n return 'Value must be in kebab-case';\n }\n\n const apiPath = join(plop.getDestBasePath(), 'api');\n const exists = await fs.pathExists(apiPath);\n\n if (!exists) {\n return true;\n }\n\n const apiDir = await fs.readdir(apiPath, { withFileTypes: true });\n const apiDirContent = apiDir.filter((fd) => fd.isDirectory());\n\n if (apiDirContent.findIndex((dir) => dir.name === input) !== -1) {\n throw new Error('This name is already taken.');\n }\n\n return true;\n },\n },\n ...bootstrapApiPrompts,\n ]);\n\n return {\n ...config,\n ...api,\n attributes,\n };\n },\n actions(answers) {\n if (!answers) {\n return [];\n }\n\n const attributes = answers.attributes.reduce((object: any, answer: any) => {\n const val: any = { type: answer.attributeType };\n\n if (answer.attributeType === 'enumeration') {\n val.enum = answer.enum.split(',').map((item: string) => item.trim());\n }\n\n if (answer.attributeType === 'media') {\n val.allowedTypes = ['images', 'files', 'videos', 'audios'];\n val.multiple = answer.multiple;\n }\n\n return Object.assign(object, { [answer.attributeName]: val }, {});\n }, {});\n\n const filePath = getFilePath(answers.destination);\n const currentDir = process.cwd();\n let language = tsUtils.isUsingTypeScriptSync(currentDir) ? 'ts' : 'js';\n\n if (answers.plugin) {\n // The tsconfig in plugins is located just outside the server src, not in the root of the plugin.\n const pluginServerDir = join(\n currentDir,\n 'src',\n filePath.replace('{{ plugin }}', answers.plugin),\n '../'\n );\n language = tsUtils.isUsingTypeScriptSync(pluginServerDir) ? 'ts' : 'js';\n }\n\n const baseActions: Array<ActionType> = [\n {\n type: 'add',\n path: `${filePath}/content-types/{{ singularName }}/schema.json`,\n templateFile: `templates/${language}/content-type.schema.json.hbs`,\n data: {\n collectionName: slugify(answers.pluralName, { separator: '_' }),\n },\n },\n ];\n\n if (Object.entries(attributes).length > 0) {\n baseActions.push({\n type: 'modify',\n path: `${filePath}/content-types/{{ singularName }}/schema.json`,\n transform(template: string) {\n const parsedTemplate = JSON.parse(template);\n parsedTemplate.attributes = attributes;\n return JSON.stringify(parsedTemplate, null, 2);\n },\n });\n }\n\n if (answers.plugin) {\n const indexPath = join(\n plop.getDestBasePath(),\n `${filePath}/content-types/index.${language}`\n );\n const exists = fs.existsSync(indexPath);\n\n if (!exists) {\n // Create index file if it doesn't exist\n baseActions.push({\n type: 'add',\n path: `${filePath}/content-types/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.index.${language}.hbs`,\n skipIfExists: true,\n });\n }\n\n // Append the new content type to the index.ts file\n baseActions.push({\n type: 'modify',\n path: `${filePath}/content-types/index.${language}`,\n transform(template: string) {\n return appendToFile(template, {\n type: 'content-type',\n singularName: answers.singularName,\n });\n },\n });\n }\n\n if (answers.bootstrapApi) {\n const { singularName } = answers;\n\n let uid;\n if (answers.destination === 'new') {\n uid = `api::${answers.id}.${singularName}`;\n } else if (answers.api) {\n uid = `api::${answers.api}.${singularName}`;\n } else if (answers.plugin) {\n uid = `plugin::${answers.plugin}.${singularName}`;\n }\n\n baseActions.push(\n {\n type: 'add',\n path: `${filePath}/controllers/{{ singularName }}.${language}`,\n templateFile: `templates/${language}/core-controller.${language}.hbs`,\n data: { uid },\n },\n {\n type: 'add',\n path: `${filePath}/services/{{ singularName }}.${language}`,\n templateFile: `templates/${language}/core-service.${language}.hbs`,\n data: { uid },\n },\n {\n type: 'add',\n path: `${filePath}/routes/${answers.plugin ? 'content-api/' : ''}{{ singularName }}.${language}`,\n templateFile: `templates/${language}/core-router.${language}.hbs`,\n data: { uid },\n }\n );\n\n if (answers.plugin) {\n const indexFiles = ['controllers', 'services', 'routes'];\n\n indexFiles.forEach((type) => {\n const indexPath = join(plop.getDestBasePath(), `${filePath}/${type}/index.${language}`);\n const exists = fs.existsSync(indexPath);\n\n if (!exists && type !== 'routes') {\n baseActions.push({\n type: 'add',\n path: `${filePath}/${type}/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.index.${language}.hbs`,\n skipIfExists: true,\n });\n }\n\n if (type === 'routes') {\n const indexPath = join(\n plop.getDestBasePath(),\n `${filePath}/${type}/index.${language}`\n );\n const exists = fs.existsSync(indexPath);\n\n if (!exists) {\n baseActions.push({\n type: 'add',\n path: `${filePath}/${type}/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.routes.index.${language}.hbs`,\n skipIfExists: true,\n });\n }\n\n const routeIndexFiles = ['content-api', 'admin'];\n\n routeIndexFiles.forEach((routeType) => {\n const routeTypeIndexPath = join(\n plop.getDestBasePath(),\n `${filePath}/${type}/${routeType}/index.${language}`\n );\n const routeTypeExists = fs.existsSync(routeTypeIndexPath);\n\n if (!routeTypeExists) {\n baseActions.push({\n type: 'add',\n path: `${filePath}/${type}/${routeType}/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.routes.type.index.${language}.hbs`,\n data: { type: routeType },\n skipIfExists: true,\n });\n }\n });\n }\n\n baseActions.push({\n type: 'modify',\n path: `${filePath}/${type}/${type === 'routes' ? 'content-api/' : ''}index.${language}`,\n transform(template: string) {\n if (type === 'routes') {\n return appendToFile(template, {\n type: 'routes',\n singularName: answers.singularName,\n });\n }\n\n return appendToFile(template, {\n type: 'index',\n singularName: answers.singularName,\n });\n },\n });\n });\n }\n }\n\n return baseActions;\n },\n });\n};\n"],"names":["plop","setGenerator","description","prompts","inquirer","config","prompt","ctNamesPrompts","kindPrompts","attributes","getAttributesPrompts","api","getDestinationPrompts","getDestBasePath","when","answers","destination","type","name","default","singularName","message","validate","input","strings","isKebabCase","apiPath","join","exists","fs","pathExists","apiDir","readdir","withFileTypes","apiDirContent","filter","fd","isDirectory","findIndex","dir","Error","bootstrapApiPrompts","actions","reduce","object","answer","val","attributeType","enum","split","map","item","trim","allowedTypes","multiple","Object","assign","attributeName","filePath","getFilePath","currentDir","process","cwd","language","tsUtils","isUsingTypeScriptSync","plugin","pluginServerDir","replace","baseActions","path","templateFile","data","collectionName","slugify","pluralName","separator","entries","length","push","transform","template","parsedTemplate","JSON","parse","stringify","indexPath","existsSync","skipIfExists","appendToFile","bootstrapApi","uid","id","indexFiles","forEach","routeIndexFiles","routeType","routeTypeIndexPath","routeTypeExists"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"content-type.mjs","sources":["../../src/plops/content-type.ts"],"sourcesContent":["import { join } from 'path';\nimport type { NodePlopAPI, ActionType } from 'plop';\nimport slugify from '@sindresorhus/slugify';\nimport fs from 'fs-extra';\nimport { strings } from '@strapi/utils';\n\nimport getDestinationPrompts from './prompts/get-destination-prompts';\nimport getFilePath from './utils/get-file-path';\nimport getGeneratorLanguage from './utils/get-generator-language';\nimport ctNamesPrompts from './prompts/ct-names-prompts';\nimport kindPrompts from './prompts/kind-prompts';\nimport getAttributesPrompts from './prompts/get-attributes-prompts';\nimport bootstrapApiPrompts from './prompts/bootstrap-api-prompts';\nimport { appendToFile } from './utils/extend-plugin-index-files';\n\nexport default (plop: NodePlopAPI) => {\n // Model generator\n plop.setGenerator('content-type', {\n description: 'Generate a content type for an API',\n async prompts(inquirer) {\n const config = await inquirer.prompt([...ctNamesPrompts, ...kindPrompts]);\n const attributes = await getAttributesPrompts(inquirer);\n\n const api = await inquirer.prompt([\n ...getDestinationPrompts('model', plop.getDestBasePath()),\n {\n when: (answers) => answers.destination === 'new',\n type: 'input',\n name: 'id',\n default: config.singularName,\n message: 'Name of the new API?',\n async validate(input) {\n if (!strings.isKebabCase(input)) {\n return 'Value must be in kebab-case';\n }\n\n const apiPath = join(plop.getDestBasePath(), 'api');\n const exists = await fs.pathExists(apiPath);\n\n if (!exists) {\n return true;\n }\n\n const apiDir = await fs.readdir(apiPath, { withFileTypes: true });\n const apiDirContent = apiDir.filter((fd) => fd.isDirectory());\n\n if (apiDirContent.findIndex((dir) => dir.name === input) !== -1) {\n throw new Error('This name is already taken.');\n }\n\n return true;\n },\n },\n ...bootstrapApiPrompts,\n ]);\n\n return {\n ...config,\n ...api,\n attributes,\n };\n },\n actions(answers) {\n if (!answers) {\n return [];\n }\n\n const attributes = answers.attributes.reduce((object: any, answer: any) => {\n const val: any = { type: answer.attributeType };\n\n if (answer.attributeType === 'enumeration') {\n val.enum = answer.enum.split(',').map((item: string) => item.trim());\n }\n\n if (answer.attributeType === 'media') {\n val.allowedTypes = ['images', 'files', 'videos', 'audios'];\n val.multiple = answer.multiple;\n }\n\n return Object.assign(object, { [answer.attributeName]: val }, {});\n }, {});\n\n const filePath = getFilePath(answers.destination);\n const language = getGeneratorLanguage({ plugin: answers.plugin, filePath }, plop);\n\n const baseActions: Array<ActionType> = [\n {\n type: 'add',\n path: `${filePath}/content-types/{{ singularName }}/schema.json`,\n templateFile: `templates/${language}/content-type.schema.json.hbs`,\n data: {\n collectionName: slugify(answers.pluralName, { separator: '_' }),\n },\n },\n ];\n\n if (Object.entries(attributes).length > 0) {\n baseActions.push({\n type: 'modify',\n path: `${filePath}/content-types/{{ singularName }}/schema.json`,\n transform(template: string) {\n const parsedTemplate = JSON.parse(template);\n parsedTemplate.attributes = attributes;\n return JSON.stringify(parsedTemplate, null, 2);\n },\n });\n }\n\n if (answers.plugin) {\n const indexPath = join(\n plop.getDestBasePath(),\n `${filePath}/content-types/index.${language}`\n );\n const exists = fs.existsSync(indexPath);\n\n if (!exists) {\n // Create index file if it doesn't exist\n baseActions.push({\n type: 'add',\n path: `${filePath}/content-types/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.index.${language}.hbs`,\n skipIfExists: true,\n });\n }\n\n // Append the new content type to the index.ts file\n baseActions.push({\n type: 'modify',\n path: `${filePath}/content-types/index.${language}`,\n transform(template: string) {\n return appendToFile(template, {\n type: 'content-type',\n singularName: answers.singularName,\n });\n },\n });\n }\n\n if (answers.bootstrapApi) {\n const { singularName } = answers;\n\n let uid;\n if (answers.destination === 'new') {\n uid = `api::${answers.id}.${singularName}`;\n } else if (answers.api) {\n uid = `api::${answers.api}.${singularName}`;\n } else if (answers.plugin) {\n uid = `plugin::${answers.plugin}.${singularName}`;\n }\n\n baseActions.push(\n {\n type: 'add',\n path: `${filePath}/controllers/{{ singularName }}.${language}`,\n templateFile: `templates/${language}/core-controller.${language}.hbs`,\n data: { uid },\n },\n {\n type: 'add',\n path: `${filePath}/services/{{ singularName }}.${language}`,\n templateFile: `templates/${language}/core-service.${language}.hbs`,\n data: { uid },\n },\n {\n type: 'add',\n path: `${filePath}/routes/${answers.plugin ? 'content-api/' : ''}{{ singularName }}.${language}`,\n templateFile: `templates/${language}/core-router.${language}.hbs`,\n data: { uid },\n }\n );\n\n if (answers.plugin) {\n const indexFiles = ['controllers', 'services', 'routes'];\n\n indexFiles.forEach((type) => {\n const indexPath = join(plop.getDestBasePath(), `${filePath}/${type}/index.${language}`);\n const exists = fs.existsSync(indexPath);\n\n if (!exists && type !== 'routes') {\n baseActions.push({\n type: 'add',\n path: `${filePath}/${type}/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.index.${language}.hbs`,\n skipIfExists: true,\n });\n }\n\n if (type === 'routes') {\n const indexPath = join(\n plop.getDestBasePath(),\n `${filePath}/${type}/index.${language}`\n );\n const exists = fs.existsSync(indexPath);\n\n if (!exists) {\n baseActions.push({\n type: 'add',\n path: `${filePath}/${type}/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.routes.index.${language}.hbs`,\n skipIfExists: true,\n });\n }\n\n const routeIndexFiles = ['content-api', 'admin'];\n\n routeIndexFiles.forEach((routeType) => {\n const routeTypeIndexPath = join(\n plop.getDestBasePath(),\n `${filePath}/${type}/${routeType}/index.${language}`\n );\n const routeTypeExists = fs.existsSync(routeTypeIndexPath);\n\n if (!routeTypeExists) {\n baseActions.push({\n type: 'add',\n path: `${filePath}/${type}/${routeType}/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.routes.type.index.${language}.hbs`,\n data: { type: routeType },\n skipIfExists: true,\n });\n }\n });\n }\n\n baseActions.push({\n type: 'modify',\n path: `${filePath}/${type}/${type === 'routes' ? 'content-api/' : ''}index.${language}`,\n transform(template: string) {\n if (type === 'routes') {\n return appendToFile(template, {\n type: 'routes',\n singularName: answers.singularName,\n });\n }\n\n return appendToFile(template, {\n type: 'index',\n singularName: answers.singularName,\n });\n },\n });\n });\n }\n }\n\n return baseActions;\n },\n });\n};\n"],"names":["plop","setGenerator","description","prompts","inquirer","config","prompt","ctNamesPrompts","kindPrompts","attributes","getAttributesPrompts","api","getDestinationPrompts","getDestBasePath","when","answers","destination","type","name","default","singularName","message","validate","input","strings","isKebabCase","apiPath","join","exists","fs","pathExists","apiDir","readdir","withFileTypes","apiDirContent","filter","fd","isDirectory","findIndex","dir","Error","bootstrapApiPrompts","actions","reduce","object","answer","val","attributeType","enum","split","map","item","trim","allowedTypes","multiple","Object","assign","attributeName","filePath","getFilePath","language","getGeneratorLanguage","plugin","baseActions","path","templateFile","data","collectionName","slugify","pluralName","separator","entries","length","push","transform","template","parsedTemplate","JSON","parse","stringify","indexPath","existsSync","skipIfExists","appendToFile","bootstrapApi","uid","id","indexFiles","forEach","routeIndexFiles","routeType","routeTypeIndexPath","routeTypeExists"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/plops/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/plops/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,MAAM,CAAC;yBAUpC,MAAM,WAAW;AAAjC,wBAwDE"}
|
package/dist/plops/controller.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tsUtils = require('@strapi/typescript-utils');
|
|
4
3
|
var path = require('path');
|
|
5
4
|
var fs = require('fs');
|
|
6
5
|
var getDestinationPrompts = require('./prompts/get-destination-prompts.js');
|
|
7
6
|
var getFilePath = require('./utils/get-file-path.js');
|
|
7
|
+
var getGeneratorLanguage = require('./utils/get-generator-language.js');
|
|
8
8
|
var validateInput = require('./utils/validate-input.js');
|
|
9
9
|
var extendPluginIndexFiles = require('./utils/extend-plugin-index-files.js');
|
|
10
10
|
|
|
11
11
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
|
|
13
|
-
var tsUtils__default = /*#__PURE__*/_interopDefault(tsUtils);
|
|
14
13
|
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
15
14
|
|
|
16
15
|
var generateController = ((plop)=>{
|
|
@@ -31,13 +30,10 @@ var generateController = ((plop)=>{
|
|
|
31
30
|
return [];
|
|
32
31
|
}
|
|
33
32
|
const filePath = getFilePath(answers.destination);
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const pluginServerDir = path.join(currentDir, 'src', filePath.replace('{{ plugin }}', answers.plugin), '../');
|
|
39
|
-
language = tsUtils__default.default.isUsingTypeScriptSync(pluginServerDir) ? 'ts' : 'js';
|
|
40
|
-
}
|
|
33
|
+
const language = getGeneratorLanguage({
|
|
34
|
+
plugin: answers.plugin,
|
|
35
|
+
filePath
|
|
36
|
+
}, plop);
|
|
41
37
|
const baseActions = [
|
|
42
38
|
{
|
|
43
39
|
type: 'add',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sources":["../../src/plops/controller.ts"],"sourcesContent":["import type { ActionType, NodePlopAPI } from 'plop';\nimport
|
|
1
|
+
{"version":3,"file":"controller.js","sources":["../../src/plops/controller.ts"],"sourcesContent":["import type { ActionType, NodePlopAPI } from 'plop';\nimport { join } from 'path';\nimport fs from 'fs';\n\nimport getDestinationPrompts from './prompts/get-destination-prompts';\nimport getFilePath from './utils/get-file-path';\nimport getGeneratorLanguage from './utils/get-generator-language';\nimport validateInput from './utils/validate-input';\nimport { appendToFile } from './utils/extend-plugin-index-files';\n\nexport default (plop: NodePlopAPI) => {\n // Controller generator\n plop.setGenerator('controller', {\n description: 'Generate a controller for an API',\n prompts: [\n {\n type: 'input',\n name: 'id',\n message: 'Controller name',\n validate: (input) => validateInput(input),\n },\n ...getDestinationPrompts('controller', plop.getDestBasePath()),\n ],\n actions(answers) {\n if (!answers) {\n return [];\n }\n\n const filePath = getFilePath(answers.destination);\n const language = getGeneratorLanguage({ plugin: answers.plugin, filePath }, plop);\n\n const baseActions: Array<ActionType> = [\n {\n type: 'add',\n path: `${filePath}/controllers/{{ id }}.${language}`,\n templateFile: `templates/${language}/controller.${language}.hbs`,\n },\n ];\n\n if (answers.plugin) {\n const indexPath = join(plop.getDestBasePath(), `${filePath}/controllers/index.${language}`);\n const exists = fs.existsSync(indexPath);\n\n if (!exists) {\n // Create index file if it doesn't exist\n baseActions.push({\n type: 'add',\n path: `${filePath}/controllers/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.index.${language}.hbs`,\n skipIfExists: true,\n });\n }\n\n // Append the new controller to the index.ts file\n baseActions.push({\n type: 'modify',\n path: `${filePath}/controllers/index.${language}`,\n transform(template: string) {\n return appendToFile(template, { type: 'index', singularName: answers.id });\n },\n });\n }\n\n return baseActions;\n },\n });\n};\n"],"names":["plop","setGenerator","description","prompts","type","name","message","validate","input","validateInput","getDestinationPrompts","getDestBasePath","actions","answers","filePath","getFilePath","destination","language","getGeneratorLanguage","plugin","baseActions","path","templateFile","indexPath","join","exists","fs","existsSync","push","skipIfExists","transform","template","appendToFile","singularName","id"],"mappings":";;;;;;;;;;;;;;AAUA,yBAAe,CAAA,CAACA,IAAAA,GAAAA;;IAEdA,IAAAA,CAAKC,YAAY,CAAC,YAAA,EAAc;QAC9BC,WAAAA,EAAa,kCAAA;QACbC,OAAAA,EAAS;AACP,YAAA;gBACEC,IAAAA,EAAM,OAAA;gBACNC,IAAAA,EAAM,IAAA;gBACNC,OAAAA,EAAS,iBAAA;gBACTC,QAAAA,EAAU,CAACC,QAAUC,aAAAA,CAAcD,KAAAA;AACrC,aAAA;eACGE,qBAAAA,CAAsB,YAAA,EAAcV,KAAKW,eAAe,EAAA;AAC5D,SAAA;AACDC,QAAAA,OAAAA,CAAAA,CAAQC,OAAO,EAAA;AACb,YAAA,IAAI,CAACA,OAAAA,EAAS;AACZ,gBAAA,OAAO,EAAE;AACX,YAAA;YAEA,MAAMC,QAAAA,GAAWC,WAAAA,CAAYF,OAAAA,CAAQG,WAAW,CAAA;AAChD,YAAA,MAAMC,WAAWC,oBAAAA,CAAqB;AAAEC,gBAAAA,MAAAA,EAAQN,QAAQM,MAAM;AAAEL,gBAAAA;aAAS,EAAGd,IAAAA,CAAAA;AAE5E,YAAA,MAAMoB,WAAAA,GAAiC;AACrC,gBAAA;oBACEhB,IAAAA,EAAM,KAAA;AACNiB,oBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,sBAAsB,EAAEG,QAAAA,CAAAA,CAAU;oBACpDK,YAAAA,EAAc,CAAC,UAAU,EAAEL,QAAAA,CAAS,YAAY,EAAEA,QAAAA,CAAS,IAAI;AACjE;AACD,aAAA;YAED,IAAIJ,OAAAA,CAAQM,MAAM,EAAE;gBAClB,MAAMI,SAAAA,GAAYC,UAAKxB,IAAAA,CAAKW,eAAe,IAAI,CAAA,EAAGG,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU,CAAA;gBAC1F,MAAMQ,MAAAA,GAASC,mBAAAA,CAAGC,UAAU,CAACJ,SAAAA,CAAAA;AAE7B,gBAAA,IAAI,CAACE,MAAAA,EAAQ;;AAEXL,oBAAAA,WAAAA,CAAYQ,IAAI,CAAC;wBACfxB,IAAAA,EAAM,KAAA;AACNiB,wBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU;wBACjDK,YAAAA,EAAc,CAAC,UAAU,EAAEL,QAAAA,CAAS,qBAAqB,EAAEA,QAAAA,CAAS,IAAI,CAAC;wBACzEY,YAAAA,EAAc;AAChB,qBAAA,CAAA;AACF,gBAAA;;AAGAT,gBAAAA,WAAAA,CAAYQ,IAAI,CAAC;oBACfxB,IAAAA,EAAM,QAAA;AACNiB,oBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU;AACjDa,oBAAAA,SAAAA,CAAAA,CAAUC,QAAgB,EAAA;AACxB,wBAAA,OAAOC,oCAAaD,QAAAA,EAAU;4BAAE3B,IAAAA,EAAM,OAAA;AAAS6B,4BAAAA,YAAAA,EAAcpB,QAAQqB;AAAG,yBAAA,CAAA;AAC1E,oBAAA;AACF,iBAAA,CAAA;AACF,YAAA;YAEA,OAAOd,WAAAA;AACT,QAAA;AACF,KAAA,CAAA;AACF,CAAA;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import tsUtils from '@strapi/typescript-utils';
|
|
2
1
|
import { join } from 'path';
|
|
3
2
|
import fs from 'fs';
|
|
4
3
|
import getDestinationPrompts from './prompts/get-destination-prompts.mjs';
|
|
5
4
|
import getFilePath from './utils/get-file-path.mjs';
|
|
5
|
+
import getGeneratorLanguage from './utils/get-generator-language.mjs';
|
|
6
6
|
import validateInput from './utils/validate-input.mjs';
|
|
7
7
|
import { appendToFile } from './utils/extend-plugin-index-files.mjs';
|
|
8
8
|
|
|
@@ -24,13 +24,10 @@ var generateController = ((plop)=>{
|
|
|
24
24
|
return [];
|
|
25
25
|
}
|
|
26
26
|
const filePath = getFilePath(answers.destination);
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const pluginServerDir = join(currentDir, 'src', filePath.replace('{{ plugin }}', answers.plugin), '../');
|
|
32
|
-
language = tsUtils.isUsingTypeScriptSync(pluginServerDir) ? 'ts' : 'js';
|
|
33
|
-
}
|
|
27
|
+
const language = getGeneratorLanguage({
|
|
28
|
+
plugin: answers.plugin,
|
|
29
|
+
filePath
|
|
30
|
+
}, plop);
|
|
34
31
|
const baseActions = [
|
|
35
32
|
{
|
|
36
33
|
type: 'add',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.mjs","sources":["../../src/plops/controller.ts"],"sourcesContent":["import type { ActionType, NodePlopAPI } from 'plop';\nimport
|
|
1
|
+
{"version":3,"file":"controller.mjs","sources":["../../src/plops/controller.ts"],"sourcesContent":["import type { ActionType, NodePlopAPI } from 'plop';\nimport { join } from 'path';\nimport fs from 'fs';\n\nimport getDestinationPrompts from './prompts/get-destination-prompts';\nimport getFilePath from './utils/get-file-path';\nimport getGeneratorLanguage from './utils/get-generator-language';\nimport validateInput from './utils/validate-input';\nimport { appendToFile } from './utils/extend-plugin-index-files';\n\nexport default (plop: NodePlopAPI) => {\n // Controller generator\n plop.setGenerator('controller', {\n description: 'Generate a controller for an API',\n prompts: [\n {\n type: 'input',\n name: 'id',\n message: 'Controller name',\n validate: (input) => validateInput(input),\n },\n ...getDestinationPrompts('controller', plop.getDestBasePath()),\n ],\n actions(answers) {\n if (!answers) {\n return [];\n }\n\n const filePath = getFilePath(answers.destination);\n const language = getGeneratorLanguage({ plugin: answers.plugin, filePath }, plop);\n\n const baseActions: Array<ActionType> = [\n {\n type: 'add',\n path: `${filePath}/controllers/{{ id }}.${language}`,\n templateFile: `templates/${language}/controller.${language}.hbs`,\n },\n ];\n\n if (answers.plugin) {\n const indexPath = join(plop.getDestBasePath(), `${filePath}/controllers/index.${language}`);\n const exists = fs.existsSync(indexPath);\n\n if (!exists) {\n // Create index file if it doesn't exist\n baseActions.push({\n type: 'add',\n path: `${filePath}/controllers/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.index.${language}.hbs`,\n skipIfExists: true,\n });\n }\n\n // Append the new controller to the index.ts file\n baseActions.push({\n type: 'modify',\n path: `${filePath}/controllers/index.${language}`,\n transform(template: string) {\n return appendToFile(template, { type: 'index', singularName: answers.id });\n },\n });\n }\n\n return baseActions;\n },\n });\n};\n"],"names":["plop","setGenerator","description","prompts","type","name","message","validate","input","validateInput","getDestinationPrompts","getDestBasePath","actions","answers","filePath","getFilePath","destination","language","getGeneratorLanguage","plugin","baseActions","path","templateFile","indexPath","join","exists","fs","existsSync","push","skipIfExists","transform","template","appendToFile","singularName","id"],"mappings":";;;;;;;;AAUA,yBAAe,CAAA,CAACA,IAAAA,GAAAA;;IAEdA,IAAAA,CAAKC,YAAY,CAAC,YAAA,EAAc;QAC9BC,WAAAA,EAAa,kCAAA;QACbC,OAAAA,EAAS;AACP,YAAA;gBACEC,IAAAA,EAAM,OAAA;gBACNC,IAAAA,EAAM,IAAA;gBACNC,OAAAA,EAAS,iBAAA;gBACTC,QAAAA,EAAU,CAACC,QAAUC,aAAAA,CAAcD,KAAAA;AACrC,aAAA;eACGE,qBAAAA,CAAsB,YAAA,EAAcV,KAAKW,eAAe,EAAA;AAC5D,SAAA;AACDC,QAAAA,OAAAA,CAAAA,CAAQC,OAAO,EAAA;AACb,YAAA,IAAI,CAACA,OAAAA,EAAS;AACZ,gBAAA,OAAO,EAAE;AACX,YAAA;YAEA,MAAMC,QAAAA,GAAWC,WAAAA,CAAYF,OAAAA,CAAQG,WAAW,CAAA;AAChD,YAAA,MAAMC,WAAWC,oBAAAA,CAAqB;AAAEC,gBAAAA,MAAAA,EAAQN,QAAQM,MAAM;AAAEL,gBAAAA;aAAS,EAAGd,IAAAA,CAAAA;AAE5E,YAAA,MAAMoB,WAAAA,GAAiC;AACrC,gBAAA;oBACEhB,IAAAA,EAAM,KAAA;AACNiB,oBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,sBAAsB,EAAEG,QAAAA,CAAAA,CAAU;oBACpDK,YAAAA,EAAc,CAAC,UAAU,EAAEL,QAAAA,CAAS,YAAY,EAAEA,QAAAA,CAAS,IAAI;AACjE;AACD,aAAA;YAED,IAAIJ,OAAAA,CAAQM,MAAM,EAAE;gBAClB,MAAMI,SAAAA,GAAYC,KAAKxB,IAAAA,CAAKW,eAAe,IAAI,CAAA,EAAGG,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU,CAAA;gBAC1F,MAAMQ,MAAAA,GAASC,EAAAA,CAAGC,UAAU,CAACJ,SAAAA,CAAAA;AAE7B,gBAAA,IAAI,CAACE,MAAAA,EAAQ;;AAEXL,oBAAAA,WAAAA,CAAYQ,IAAI,CAAC;wBACfxB,IAAAA,EAAM,KAAA;AACNiB,wBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU;wBACjDK,YAAAA,EAAc,CAAC,UAAU,EAAEL,QAAAA,CAAS,qBAAqB,EAAEA,QAAAA,CAAS,IAAI,CAAC;wBACzEY,YAAAA,EAAc;AAChB,qBAAA,CAAA;AACF,gBAAA;;AAGAT,gBAAAA,WAAAA,CAAYQ,IAAI,CAAC;oBACfxB,IAAAA,EAAM,QAAA;AACNiB,oBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU;AACjDa,oBAAAA,SAAAA,CAAAA,CAAUC,QAAgB,EAAA;AACxB,wBAAA,OAAOC,aAAaD,QAAAA,EAAU;4BAAE3B,IAAAA,EAAM,OAAA;AAAS6B,4BAAAA,YAAAA,EAAcpB,QAAQqB;AAAG,yBAAA,CAAA;AAC1E,oBAAA;AACF,iBAAA,CAAA;AACF,YAAA;YAEA,OAAOd,WAAAA;AACT,QAAA;AACF,KAAA,CAAA;AACF,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/plops/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/plops/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,MAAM,CAAC;yBAUpC,MAAM,WAAW;AAAjC,wBAwDE"}
|
package/dist/plops/middleware.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tsUtils = require('@strapi/typescript-utils');
|
|
4
3
|
var path = require('path');
|
|
5
4
|
var fs = require('fs');
|
|
6
5
|
var getDestinationPrompts = require('./prompts/get-destination-prompts.js');
|
|
7
6
|
var validateInput = require('./utils/validate-input.js');
|
|
8
7
|
var getFilePath = require('./utils/get-file-path.js');
|
|
8
|
+
var getGeneratorLanguage = require('./utils/get-generator-language.js');
|
|
9
9
|
var extendPluginIndexFiles = require('./utils/extend-plugin-index-files.js');
|
|
10
10
|
|
|
11
11
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
|
|
13
|
-
var tsUtils__default = /*#__PURE__*/_interopDefault(tsUtils);
|
|
14
13
|
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
15
14
|
|
|
16
15
|
var generateMiddleware = ((plop)=>{
|
|
@@ -33,13 +32,10 @@ var generateMiddleware = ((plop)=>{
|
|
|
33
32
|
return [];
|
|
34
33
|
}
|
|
35
34
|
const filePath = getFilePath(answers.destination);
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const pluginServerDir = path.join(currentDir, 'src', filePath.replace('{{ plugin }}', answers.plugin), '../');
|
|
41
|
-
language = tsUtils__default.default.isUsingTypeScriptSync(pluginServerDir) ? 'ts' : 'js';
|
|
42
|
-
}
|
|
35
|
+
const language = getGeneratorLanguage({
|
|
36
|
+
plugin: answers.plugin,
|
|
37
|
+
filePath
|
|
38
|
+
}, plop);
|
|
43
39
|
const baseActions = [
|
|
44
40
|
{
|
|
45
41
|
type: 'add',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sources":["../../src/plops/middleware.ts"],"sourcesContent":["import type { ActionType, NodePlopAPI } from 'plop';\nimport
|
|
1
|
+
{"version":3,"file":"middleware.js","sources":["../../src/plops/middleware.ts"],"sourcesContent":["import type { ActionType, NodePlopAPI } from 'plop';\nimport { join } from 'path';\nimport fs from 'fs';\n\nimport getDestinationPrompts from './prompts/get-destination-prompts';\nimport validateInput from './utils/validate-input';\nimport getFilePath from './utils/get-file-path';\nimport getGeneratorLanguage from './utils/get-generator-language';\nimport { appendToFile } from './utils/extend-plugin-index-files';\n\nexport default (plop: NodePlopAPI) => {\n // middleware generator\n plop.setGenerator('middleware', {\n description: 'Generate a middleware for an API',\n prompts: [\n {\n type: 'input',\n name: 'name',\n message: 'Middleware name',\n validate: (input) => validateInput(input),\n },\n ...getDestinationPrompts('middleware', plop.getDestBasePath(), { rootFolder: true }),\n ],\n actions(answers) {\n if (!answers) {\n return [];\n }\n\n const filePath = getFilePath(answers.destination);\n const language = getGeneratorLanguage({ plugin: answers.plugin, filePath }, plop);\n\n const baseActions: Array<ActionType> = [\n {\n type: 'add',\n path: `${filePath}/middlewares/{{ name }}.${language}`,\n templateFile: `templates/${language}/middleware.${language}.hbs`,\n },\n ];\n\n if (answers.plugin) {\n const indexPath = join(plop.getDestBasePath(), `${filePath}/middlewares/index.${language}`);\n const exists = fs.existsSync(indexPath);\n\n if (!exists) {\n // Create index file if it doesn't exist\n baseActions.push({\n type: 'add',\n path: `${filePath}/middlewares/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.index.${language}.hbs`,\n skipIfExists: true,\n });\n }\n\n // Append the new middleware to the index.ts file\n baseActions.push({\n type: 'modify',\n path: `${filePath}/middlewares/index.${language}`,\n transform(template: string) {\n return appendToFile(template, { type: 'index', singularName: answers.name });\n },\n });\n }\n\n return baseActions;\n },\n });\n};\n"],"names":["plop","setGenerator","description","prompts","type","name","message","validate","input","validateInput","getDestinationPrompts","getDestBasePath","rootFolder","actions","answers","filePath","getFilePath","destination","language","getGeneratorLanguage","plugin","baseActions","path","templateFile","indexPath","join","exists","fs","existsSync","push","skipIfExists","transform","template","appendToFile","singularName"],"mappings":";;;;;;;;;;;;;;AAUA,yBAAe,CAAA,CAACA,IAAAA,GAAAA;;IAEdA,IAAAA,CAAKC,YAAY,CAAC,YAAA,EAAc;QAC9BC,WAAAA,EAAa,kCAAA;QACbC,OAAAA,EAAS;AACP,YAAA;gBACEC,IAAAA,EAAM,OAAA;gBACNC,IAAAA,EAAM,MAAA;gBACNC,OAAAA,EAAS,iBAAA;gBACTC,QAAAA,EAAU,CAACC,QAAUC,aAAAA,CAAcD,KAAAA;AACrC,aAAA;eACGE,qBAAAA,CAAsB,YAAA,EAAcV,IAAAA,CAAKW,eAAe,EAAA,EAAI;gBAAEC,UAAAA,EAAY;AAAK,aAAA;AACnF,SAAA;AACDC,QAAAA,OAAAA,CAAAA,CAAQC,OAAO,EAAA;AACb,YAAA,IAAI,CAACA,OAAAA,EAAS;AACZ,gBAAA,OAAO,EAAE;AACX,YAAA;YAEA,MAAMC,QAAAA,GAAWC,WAAAA,CAAYF,OAAAA,CAAQG,WAAW,CAAA;AAChD,YAAA,MAAMC,WAAWC,oBAAAA,CAAqB;AAAEC,gBAAAA,MAAAA,EAAQN,QAAQM,MAAM;AAAEL,gBAAAA;aAAS,EAAGf,IAAAA,CAAAA;AAE5E,YAAA,MAAMqB,WAAAA,GAAiC;AACrC,gBAAA;oBACEjB,IAAAA,EAAM,KAAA;AACNkB,oBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,wBAAwB,EAAEG,QAAAA,CAAAA,CAAU;oBACtDK,YAAAA,EAAc,CAAC,UAAU,EAAEL,QAAAA,CAAS,YAAY,EAAEA,QAAAA,CAAS,IAAI;AACjE;AACD,aAAA;YAED,IAAIJ,OAAAA,CAAQM,MAAM,EAAE;gBAClB,MAAMI,SAAAA,GAAYC,UAAKzB,IAAAA,CAAKW,eAAe,IAAI,CAAA,EAAGI,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU,CAAA;gBAC1F,MAAMQ,MAAAA,GAASC,mBAAAA,CAAGC,UAAU,CAACJ,SAAAA,CAAAA;AAE7B,gBAAA,IAAI,CAACE,MAAAA,EAAQ;;AAEXL,oBAAAA,WAAAA,CAAYQ,IAAI,CAAC;wBACfzB,IAAAA,EAAM,KAAA;AACNkB,wBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU;wBACjDK,YAAAA,EAAc,CAAC,UAAU,EAAEL,QAAAA,CAAS,qBAAqB,EAAEA,QAAAA,CAAS,IAAI,CAAC;wBACzEY,YAAAA,EAAc;AAChB,qBAAA,CAAA;AACF,gBAAA;;AAGAT,gBAAAA,WAAAA,CAAYQ,IAAI,CAAC;oBACfzB,IAAAA,EAAM,QAAA;AACNkB,oBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU;AACjDa,oBAAAA,SAAAA,CAAAA,CAAUC,QAAgB,EAAA;AACxB,wBAAA,OAAOC,oCAAaD,QAAAA,EAAU;4BAAE5B,IAAAA,EAAM,OAAA;AAAS8B,4BAAAA,YAAAA,EAAcpB,QAAQT;AAAK,yBAAA,CAAA;AAC5E,oBAAA;AACF,iBAAA,CAAA;AACF,YAAA;YAEA,OAAOgB,WAAAA;AACT,QAAA;AACF,KAAA,CAAA;AACF,CAAA;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import tsUtils from '@strapi/typescript-utils';
|
|
2
1
|
import { join } from 'path';
|
|
3
2
|
import fs from 'fs';
|
|
4
3
|
import getDestinationPrompts from './prompts/get-destination-prompts.mjs';
|
|
5
4
|
import validateInput from './utils/validate-input.mjs';
|
|
6
5
|
import getFilePath from './utils/get-file-path.mjs';
|
|
6
|
+
import getGeneratorLanguage from './utils/get-generator-language.mjs';
|
|
7
7
|
import { appendToFile } from './utils/extend-plugin-index-files.mjs';
|
|
8
8
|
|
|
9
9
|
var generateMiddleware = ((plop)=>{
|
|
@@ -26,13 +26,10 @@ var generateMiddleware = ((plop)=>{
|
|
|
26
26
|
return [];
|
|
27
27
|
}
|
|
28
28
|
const filePath = getFilePath(answers.destination);
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const pluginServerDir = join(currentDir, 'src', filePath.replace('{{ plugin }}', answers.plugin), '../');
|
|
34
|
-
language = tsUtils.isUsingTypeScriptSync(pluginServerDir) ? 'ts' : 'js';
|
|
35
|
-
}
|
|
29
|
+
const language = getGeneratorLanguage({
|
|
30
|
+
plugin: answers.plugin,
|
|
31
|
+
filePath
|
|
32
|
+
}, plop);
|
|
36
33
|
const baseActions = [
|
|
37
34
|
{
|
|
38
35
|
type: 'add',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.mjs","sources":["../../src/plops/middleware.ts"],"sourcesContent":["import type { ActionType, NodePlopAPI } from 'plop';\nimport
|
|
1
|
+
{"version":3,"file":"middleware.mjs","sources":["../../src/plops/middleware.ts"],"sourcesContent":["import type { ActionType, NodePlopAPI } from 'plop';\nimport { join } from 'path';\nimport fs from 'fs';\n\nimport getDestinationPrompts from './prompts/get-destination-prompts';\nimport validateInput from './utils/validate-input';\nimport getFilePath from './utils/get-file-path';\nimport getGeneratorLanguage from './utils/get-generator-language';\nimport { appendToFile } from './utils/extend-plugin-index-files';\n\nexport default (plop: NodePlopAPI) => {\n // middleware generator\n plop.setGenerator('middleware', {\n description: 'Generate a middleware for an API',\n prompts: [\n {\n type: 'input',\n name: 'name',\n message: 'Middleware name',\n validate: (input) => validateInput(input),\n },\n ...getDestinationPrompts('middleware', plop.getDestBasePath(), { rootFolder: true }),\n ],\n actions(answers) {\n if (!answers) {\n return [];\n }\n\n const filePath = getFilePath(answers.destination);\n const language = getGeneratorLanguage({ plugin: answers.plugin, filePath }, plop);\n\n const baseActions: Array<ActionType> = [\n {\n type: 'add',\n path: `${filePath}/middlewares/{{ name }}.${language}`,\n templateFile: `templates/${language}/middleware.${language}.hbs`,\n },\n ];\n\n if (answers.plugin) {\n const indexPath = join(plop.getDestBasePath(), `${filePath}/middlewares/index.${language}`);\n const exists = fs.existsSync(indexPath);\n\n if (!exists) {\n // Create index file if it doesn't exist\n baseActions.push({\n type: 'add',\n path: `${filePath}/middlewares/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.index.${language}.hbs`,\n skipIfExists: true,\n });\n }\n\n // Append the new middleware to the index.ts file\n baseActions.push({\n type: 'modify',\n path: `${filePath}/middlewares/index.${language}`,\n transform(template: string) {\n return appendToFile(template, { type: 'index', singularName: answers.name });\n },\n });\n }\n\n return baseActions;\n },\n });\n};\n"],"names":["plop","setGenerator","description","prompts","type","name","message","validate","input","validateInput","getDestinationPrompts","getDestBasePath","rootFolder","actions","answers","filePath","getFilePath","destination","language","getGeneratorLanguage","plugin","baseActions","path","templateFile","indexPath","join","exists","fs","existsSync","push","skipIfExists","transform","template","appendToFile","singularName"],"mappings":";;;;;;;;AAUA,yBAAe,CAAA,CAACA,IAAAA,GAAAA;;IAEdA,IAAAA,CAAKC,YAAY,CAAC,YAAA,EAAc;QAC9BC,WAAAA,EAAa,kCAAA;QACbC,OAAAA,EAAS;AACP,YAAA;gBACEC,IAAAA,EAAM,OAAA;gBACNC,IAAAA,EAAM,MAAA;gBACNC,OAAAA,EAAS,iBAAA;gBACTC,QAAAA,EAAU,CAACC,QAAUC,aAAAA,CAAcD,KAAAA;AACrC,aAAA;eACGE,qBAAAA,CAAsB,YAAA,EAAcV,IAAAA,CAAKW,eAAe,EAAA,EAAI;gBAAEC,UAAAA,EAAY;AAAK,aAAA;AACnF,SAAA;AACDC,QAAAA,OAAAA,CAAAA,CAAQC,OAAO,EAAA;AACb,YAAA,IAAI,CAACA,OAAAA,EAAS;AACZ,gBAAA,OAAO,EAAE;AACX,YAAA;YAEA,MAAMC,QAAAA,GAAWC,WAAAA,CAAYF,OAAAA,CAAQG,WAAW,CAAA;AAChD,YAAA,MAAMC,WAAWC,oBAAAA,CAAqB;AAAEC,gBAAAA,MAAAA,EAAQN,QAAQM,MAAM;AAAEL,gBAAAA;aAAS,EAAGf,IAAAA,CAAAA;AAE5E,YAAA,MAAMqB,WAAAA,GAAiC;AACrC,gBAAA;oBACEjB,IAAAA,EAAM,KAAA;AACNkB,oBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,wBAAwB,EAAEG,QAAAA,CAAAA,CAAU;oBACtDK,YAAAA,EAAc,CAAC,UAAU,EAAEL,QAAAA,CAAS,YAAY,EAAEA,QAAAA,CAAS,IAAI;AACjE;AACD,aAAA;YAED,IAAIJ,OAAAA,CAAQM,MAAM,EAAE;gBAClB,MAAMI,SAAAA,GAAYC,KAAKzB,IAAAA,CAAKW,eAAe,IAAI,CAAA,EAAGI,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU,CAAA;gBAC1F,MAAMQ,MAAAA,GAASC,EAAAA,CAAGC,UAAU,CAACJ,SAAAA,CAAAA;AAE7B,gBAAA,IAAI,CAACE,MAAAA,EAAQ;;AAEXL,oBAAAA,WAAAA,CAAYQ,IAAI,CAAC;wBACfzB,IAAAA,EAAM,KAAA;AACNkB,wBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU;wBACjDK,YAAAA,EAAc,CAAC,UAAU,EAAEL,QAAAA,CAAS,qBAAqB,EAAEA,QAAAA,CAAS,IAAI,CAAC;wBACzEY,YAAAA,EAAc;AAChB,qBAAA,CAAA;AACF,gBAAA;;AAGAT,gBAAAA,WAAAA,CAAYQ,IAAI,CAAC;oBACfzB,IAAAA,EAAM,QAAA;AACNkB,oBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU;AACjDa,oBAAAA,SAAAA,CAAAA,CAAUC,QAAgB,EAAA;AACxB,wBAAA,OAAOC,aAAaD,QAAAA,EAAU;4BAAE5B,IAAAA,EAAM,OAAA;AAAS8B,4BAAAA,YAAAA,EAAcpB,QAAQT;AAAK,yBAAA,CAAA;AAC5E,oBAAA;AACF,iBAAA,CAAA;AACF,YAAA;YAEA,OAAOgB,WAAAA;AACT,QAAA;AACF,KAAA,CAAA;AACF,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/plops/migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/plops/migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;yBAKxB,MAAM,WAAW;AAAjC,wBA0BE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/plops/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/plops/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,MAAM,CAAC;yBAUpC,MAAM,WAAW;AAAjC,wBAwDE"}
|
package/dist/plops/policy.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tsUtils = require('@strapi/typescript-utils');
|
|
4
3
|
var path = require('path');
|
|
5
4
|
var fs = require('fs');
|
|
6
5
|
var getDestinationPrompts = require('./prompts/get-destination-prompts.js');
|
|
7
6
|
var validateInput = require('./utils/validate-input.js');
|
|
8
7
|
var getFilePath = require('./utils/get-file-path.js');
|
|
8
|
+
var getGeneratorLanguage = require('./utils/get-generator-language.js');
|
|
9
9
|
var extendPluginIndexFiles = require('./utils/extend-plugin-index-files.js');
|
|
10
10
|
|
|
11
11
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
|
|
13
|
-
var tsUtils__default = /*#__PURE__*/_interopDefault(tsUtils);
|
|
14
13
|
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
15
14
|
|
|
16
15
|
var generatePolicy = ((plop)=>{
|
|
@@ -32,14 +31,11 @@ var generatePolicy = ((plop)=>{
|
|
|
32
31
|
if (!answers) {
|
|
33
32
|
return [];
|
|
34
33
|
}
|
|
35
|
-
const currentDir = process.cwd();
|
|
36
34
|
const filePath = getFilePath(answers.destination);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
language = tsUtils__default.default.isUsingTypeScriptSync(pluginServerDir) ? 'ts' : 'js';
|
|
42
|
-
}
|
|
35
|
+
const language = getGeneratorLanguage({
|
|
36
|
+
plugin: answers.plugin,
|
|
37
|
+
filePath
|
|
38
|
+
}, plop);
|
|
43
39
|
const baseActions = [
|
|
44
40
|
{
|
|
45
41
|
type: 'add',
|
package/dist/plops/policy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sources":["../../src/plops/policy.ts"],"sourcesContent":["import type { ActionType, NodePlopAPI } from 'plop';\nimport
|
|
1
|
+
{"version":3,"file":"policy.js","sources":["../../src/plops/policy.ts"],"sourcesContent":["import type { ActionType, NodePlopAPI } from 'plop';\nimport { join } from 'path';\nimport fs from 'fs';\n\nimport getDestinationPrompts from './prompts/get-destination-prompts';\nimport validateInput from './utils/validate-input';\nimport getFilePath from './utils/get-file-path';\nimport getGeneratorLanguage from './utils/get-generator-language';\nimport { appendToFile } from './utils/extend-plugin-index-files';\n\nexport default (plop: NodePlopAPI) => {\n // Policy generator\n plop.setGenerator('policy', {\n description: 'Generate a policy for an API',\n prompts: [\n {\n type: 'input',\n name: 'id',\n message: 'Policy name',\n validate: (input) => validateInput(input),\n },\n ...getDestinationPrompts('policy', plop.getDestBasePath(), { rootFolder: true }),\n ],\n actions(answers) {\n if (!answers) {\n return [];\n }\n\n const filePath = getFilePath(answers.destination);\n const language = getGeneratorLanguage({ plugin: answers.plugin, filePath }, plop);\n\n const baseActions: Array<ActionType> = [\n {\n type: 'add',\n path: `${filePath}/policies/{{ id }}.${language}`,\n templateFile: `templates/${language}/policy.${language}.hbs`,\n },\n ];\n\n if (answers.plugin) {\n const indexPath = join(plop.getDestBasePath(), `${filePath}/policies/index.${language}`);\n const exists = fs.existsSync(indexPath);\n\n if (!exists) {\n // Create index file if it doesn't exist\n baseActions.push({\n type: 'add',\n path: `${filePath}/policies/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.index.${language}.hbs`,\n skipIfExists: true,\n });\n }\n\n // Append the new policy to the index.ts file\n baseActions.push({\n type: 'modify',\n path: `${filePath}/policies/index.${language}`,\n transform(template: string) {\n return appendToFile(template, { type: 'index', singularName: answers.id });\n },\n });\n }\n\n return baseActions;\n },\n });\n};\n"],"names":["plop","setGenerator","description","prompts","type","name","message","validate","input","validateInput","getDestinationPrompts","getDestBasePath","rootFolder","actions","answers","filePath","getFilePath","destination","language","getGeneratorLanguage","plugin","baseActions","path","templateFile","indexPath","join","exists","fs","existsSync","push","skipIfExists","transform","template","appendToFile","singularName","id"],"mappings":";;;;;;;;;;;;;;AAUA,qBAAe,CAAA,CAACA,IAAAA,GAAAA;;IAEdA,IAAAA,CAAKC,YAAY,CAAC,QAAA,EAAU;QAC1BC,WAAAA,EAAa,8BAAA;QACbC,OAAAA,EAAS;AACP,YAAA;gBACEC,IAAAA,EAAM,OAAA;gBACNC,IAAAA,EAAM,IAAA;gBACNC,OAAAA,EAAS,aAAA;gBACTC,QAAAA,EAAU,CAACC,QAAUC,aAAAA,CAAcD,KAAAA;AACrC,aAAA;eACGE,qBAAAA,CAAsB,QAAA,EAAUV,IAAAA,CAAKW,eAAe,EAAA,EAAI;gBAAEC,UAAAA,EAAY;AAAK,aAAA;AAC/E,SAAA;AACDC,QAAAA,OAAAA,CAAAA,CAAQC,OAAO,EAAA;AACb,YAAA,IAAI,CAACA,OAAAA,EAAS;AACZ,gBAAA,OAAO,EAAE;AACX,YAAA;YAEA,MAAMC,QAAAA,GAAWC,WAAAA,CAAYF,OAAAA,CAAQG,WAAW,CAAA;AAChD,YAAA,MAAMC,WAAWC,oBAAAA,CAAqB;AAAEC,gBAAAA,MAAAA,EAAQN,QAAQM,MAAM;AAAEL,gBAAAA;aAAS,EAAGf,IAAAA,CAAAA;AAE5E,YAAA,MAAMqB,WAAAA,GAAiC;AACrC,gBAAA;oBACEjB,IAAAA,EAAM,KAAA;AACNkB,oBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU;oBACjDK,YAAAA,EAAc,CAAC,UAAU,EAAEL,QAAAA,CAAS,QAAQ,EAAEA,QAAAA,CAAS,IAAI;AAC7D;AACD,aAAA;YAED,IAAIJ,OAAAA,CAAQM,MAAM,EAAE;gBAClB,MAAMI,SAAAA,GAAYC,UAAKzB,IAAAA,CAAKW,eAAe,IAAI,CAAA,EAAGI,QAAAA,CAAS,gBAAgB,EAAEG,QAAAA,CAAAA,CAAU,CAAA;gBACvF,MAAMQ,MAAAA,GAASC,mBAAAA,CAAGC,UAAU,CAACJ,SAAAA,CAAAA;AAE7B,gBAAA,IAAI,CAACE,MAAAA,EAAQ;;AAEXL,oBAAAA,WAAAA,CAAYQ,IAAI,CAAC;wBACfzB,IAAAA,EAAM,KAAA;AACNkB,wBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,gBAAgB,EAAEG,QAAAA,CAAAA,CAAU;wBAC9CK,YAAAA,EAAc,CAAC,UAAU,EAAEL,QAAAA,CAAS,qBAAqB,EAAEA,QAAAA,CAAS,IAAI,CAAC;wBACzEY,YAAAA,EAAc;AAChB,qBAAA,CAAA;AACF,gBAAA;;AAGAT,gBAAAA,WAAAA,CAAYQ,IAAI,CAAC;oBACfzB,IAAAA,EAAM,QAAA;AACNkB,oBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,gBAAgB,EAAEG,QAAAA,CAAAA,CAAU;AAC9Ca,oBAAAA,SAAAA,CAAAA,CAAUC,QAAgB,EAAA;AACxB,wBAAA,OAAOC,oCAAaD,QAAAA,EAAU;4BAAE5B,IAAAA,EAAM,OAAA;AAAS8B,4BAAAA,YAAAA,EAAcpB,QAAQqB;AAAG,yBAAA,CAAA;AAC1E,oBAAA;AACF,iBAAA,CAAA;AACF,YAAA;YAEA,OAAOd,WAAAA;AACT,QAAA;AACF,KAAA,CAAA;AACF,CAAA;;;;"}
|
package/dist/plops/policy.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import tsUtils from '@strapi/typescript-utils';
|
|
2
1
|
import { join } from 'path';
|
|
3
2
|
import fs from 'fs';
|
|
4
3
|
import getDestinationPrompts from './prompts/get-destination-prompts.mjs';
|
|
5
4
|
import validateInput from './utils/validate-input.mjs';
|
|
6
5
|
import getFilePath from './utils/get-file-path.mjs';
|
|
6
|
+
import getGeneratorLanguage from './utils/get-generator-language.mjs';
|
|
7
7
|
import { appendToFile } from './utils/extend-plugin-index-files.mjs';
|
|
8
8
|
|
|
9
9
|
var generatePolicy = ((plop)=>{
|
|
@@ -25,14 +25,11 @@ var generatePolicy = ((plop)=>{
|
|
|
25
25
|
if (!answers) {
|
|
26
26
|
return [];
|
|
27
27
|
}
|
|
28
|
-
const currentDir = process.cwd();
|
|
29
28
|
const filePath = getFilePath(answers.destination);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
language = tsUtils.isUsingTypeScriptSync(pluginServerDir) ? 'ts' : 'js';
|
|
35
|
-
}
|
|
29
|
+
const language = getGeneratorLanguage({
|
|
30
|
+
plugin: answers.plugin,
|
|
31
|
+
filePath
|
|
32
|
+
}, plop);
|
|
36
33
|
const baseActions = [
|
|
37
34
|
{
|
|
38
35
|
type: 'add',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.mjs","sources":["../../src/plops/policy.ts"],"sourcesContent":["import type { ActionType, NodePlopAPI } from 'plop';\nimport
|
|
1
|
+
{"version":3,"file":"policy.mjs","sources":["../../src/plops/policy.ts"],"sourcesContent":["import type { ActionType, NodePlopAPI } from 'plop';\nimport { join } from 'path';\nimport fs from 'fs';\n\nimport getDestinationPrompts from './prompts/get-destination-prompts';\nimport validateInput from './utils/validate-input';\nimport getFilePath from './utils/get-file-path';\nimport getGeneratorLanguage from './utils/get-generator-language';\nimport { appendToFile } from './utils/extend-plugin-index-files';\n\nexport default (plop: NodePlopAPI) => {\n // Policy generator\n plop.setGenerator('policy', {\n description: 'Generate a policy for an API',\n prompts: [\n {\n type: 'input',\n name: 'id',\n message: 'Policy name',\n validate: (input) => validateInput(input),\n },\n ...getDestinationPrompts('policy', plop.getDestBasePath(), { rootFolder: true }),\n ],\n actions(answers) {\n if (!answers) {\n return [];\n }\n\n const filePath = getFilePath(answers.destination);\n const language = getGeneratorLanguage({ plugin: answers.plugin, filePath }, plop);\n\n const baseActions: Array<ActionType> = [\n {\n type: 'add',\n path: `${filePath}/policies/{{ id }}.${language}`,\n templateFile: `templates/${language}/policy.${language}.hbs`,\n },\n ];\n\n if (answers.plugin) {\n const indexPath = join(plop.getDestBasePath(), `${filePath}/policies/index.${language}`);\n const exists = fs.existsSync(indexPath);\n\n if (!exists) {\n // Create index file if it doesn't exist\n baseActions.push({\n type: 'add',\n path: `${filePath}/policies/index.${language}`,\n templateFile: `templates/${language}/plugin/plugin.index.${language}.hbs`,\n skipIfExists: true,\n });\n }\n\n // Append the new policy to the index.ts file\n baseActions.push({\n type: 'modify',\n path: `${filePath}/policies/index.${language}`,\n transform(template: string) {\n return appendToFile(template, { type: 'index', singularName: answers.id });\n },\n });\n }\n\n return baseActions;\n },\n });\n};\n"],"names":["plop","setGenerator","description","prompts","type","name","message","validate","input","validateInput","getDestinationPrompts","getDestBasePath","rootFolder","actions","answers","filePath","getFilePath","destination","language","getGeneratorLanguage","plugin","baseActions","path","templateFile","indexPath","join","exists","fs","existsSync","push","skipIfExists","transform","template","appendToFile","singularName","id"],"mappings":";;;;;;;;AAUA,qBAAe,CAAA,CAACA,IAAAA,GAAAA;;IAEdA,IAAAA,CAAKC,YAAY,CAAC,QAAA,EAAU;QAC1BC,WAAAA,EAAa,8BAAA;QACbC,OAAAA,EAAS;AACP,YAAA;gBACEC,IAAAA,EAAM,OAAA;gBACNC,IAAAA,EAAM,IAAA;gBACNC,OAAAA,EAAS,aAAA;gBACTC,QAAAA,EAAU,CAACC,QAAUC,aAAAA,CAAcD,KAAAA;AACrC,aAAA;eACGE,qBAAAA,CAAsB,QAAA,EAAUV,IAAAA,CAAKW,eAAe,EAAA,EAAI;gBAAEC,UAAAA,EAAY;AAAK,aAAA;AAC/E,SAAA;AACDC,QAAAA,OAAAA,CAAAA,CAAQC,OAAO,EAAA;AACb,YAAA,IAAI,CAACA,OAAAA,EAAS;AACZ,gBAAA,OAAO,EAAE;AACX,YAAA;YAEA,MAAMC,QAAAA,GAAWC,WAAAA,CAAYF,OAAAA,CAAQG,WAAW,CAAA;AAChD,YAAA,MAAMC,WAAWC,oBAAAA,CAAqB;AAAEC,gBAAAA,MAAAA,EAAQN,QAAQM,MAAM;AAAEL,gBAAAA;aAAS,EAAGf,IAAAA,CAAAA;AAE5E,YAAA,MAAMqB,WAAAA,GAAiC;AACrC,gBAAA;oBACEjB,IAAAA,EAAM,KAAA;AACNkB,oBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,mBAAmB,EAAEG,QAAAA,CAAAA,CAAU;oBACjDK,YAAAA,EAAc,CAAC,UAAU,EAAEL,QAAAA,CAAS,QAAQ,EAAEA,QAAAA,CAAS,IAAI;AAC7D;AACD,aAAA;YAED,IAAIJ,OAAAA,CAAQM,MAAM,EAAE;gBAClB,MAAMI,SAAAA,GAAYC,KAAKzB,IAAAA,CAAKW,eAAe,IAAI,CAAA,EAAGI,QAAAA,CAAS,gBAAgB,EAAEG,QAAAA,CAAAA,CAAU,CAAA;gBACvF,MAAMQ,MAAAA,GAASC,EAAAA,CAAGC,UAAU,CAACJ,SAAAA,CAAAA;AAE7B,gBAAA,IAAI,CAACE,MAAAA,EAAQ;;AAEXL,oBAAAA,WAAAA,CAAYQ,IAAI,CAAC;wBACfzB,IAAAA,EAAM,KAAA;AACNkB,wBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,gBAAgB,EAAEG,QAAAA,CAAAA,CAAU;wBAC9CK,YAAAA,EAAc,CAAC,UAAU,EAAEL,QAAAA,CAAS,qBAAqB,EAAEA,QAAAA,CAAS,IAAI,CAAC;wBACzEY,YAAAA,EAAc;AAChB,qBAAA,CAAA;AACF,gBAAA;;AAGAT,gBAAAA,WAAAA,CAAYQ,IAAI,CAAC;oBACfzB,IAAAA,EAAM,QAAA;AACNkB,oBAAAA,IAAAA,EAAM,CAAA,EAAGP,QAAAA,CAAS,gBAAgB,EAAEG,QAAAA,CAAAA,CAAU;AAC9Ca,oBAAAA,SAAAA,CAAAA,CAAUC,QAAgB,EAAA;AACxB,wBAAA,OAAOC,aAAaD,QAAAA,EAAU;4BAAE5B,IAAAA,EAAM,OAAA;AAAS8B,4BAAAA,YAAAA,EAAcpB,QAAQqB;AAAG,yBAAA,CAAA;AAC1E,oBAAA;AACF,iBAAA,CAAA;AACF,YAAA;YAEA,OAAOd,WAAAA;AACT,QAAA;AACF,KAAA,CAAA;AACF,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-attributes-prompts.d.ts","sourceRoot":"","sources":["../../../src/plops/prompts/get-attributes-prompts.ts"],"names":[],"mappings":"AAEA,UAAU,eAAe;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,aAAa,+LAqBT,CAAC;AAEX,QAAA,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"get-attributes-prompts.d.ts","sourceRoot":"","sources":["../../../src/plops/prompts/get-attributes-prompts.ts"],"names":[],"mappings":"AAEA,UAAU,eAAe;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,aAAa,+LAqBT,CAAC;AAEX,QAAA,MAAM,oBAAoB,GAAU,UAAU,GAAG,+BAyEhD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-destination-prompts.d.ts","sourceRoot":"","sources":["../../../src/plops/prompts/get-destination-prompts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-destination-prompts.d.ts","sourceRoot":"","sources":["../../../src/plops/prompts/get-destination-prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;yBAEV,QAAQ,MAAM,EAAE,UAAU,MAAM,EAAE;;CAA2B;;;;;;;;;;oBAyBvD,GAAG;;;;;;oBAuBH,GAAG;;;;;;AAhDzB,wBAyEE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/plops/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/plops/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,MAAM,CAAC;yBASpC,MAAM,WAAW;AAAjC,wBAuDE"}
|
package/dist/plops/service.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tsUtils = require('@strapi/typescript-utils');
|
|
4
3
|
var path = require('path');
|
|
5
4
|
var fs = require('fs');
|
|
6
5
|
var getDestinationPrompts = require('./prompts/get-destination-prompts.js');
|
|
7
6
|
var getFilePath = require('./utils/get-file-path.js');
|
|
7
|
+
var getGeneratorLanguage = require('./utils/get-generator-language.js');
|
|
8
8
|
var extendPluginIndexFiles = require('./utils/extend-plugin-index-files.js');
|
|
9
9
|
|
|
10
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
11
|
|
|
12
|
-
var tsUtils__default = /*#__PURE__*/_interopDefault(tsUtils);
|
|
13
12
|
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
14
13
|
|
|
15
14
|
var generateService = ((plop)=>{
|
|
@@ -29,13 +28,10 @@ var generateService = ((plop)=>{
|
|
|
29
28
|
return [];
|
|
30
29
|
}
|
|
31
30
|
const filePath = getFilePath(answers?.destination);
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const pluginServerDir = path.join(currentDir, 'src', filePath.replace('{{ plugin }}', answers.plugin), '../');
|
|
37
|
-
language = tsUtils__default.default.isUsingTypeScriptSync(pluginServerDir) ? 'ts' : 'js';
|
|
38
|
-
}
|
|
31
|
+
const language = getGeneratorLanguage({
|
|
32
|
+
plugin: answers.plugin,
|
|
33
|
+
filePath
|
|
34
|
+
}, plop);
|
|
39
35
|
const baseActions = [
|
|
40
36
|
{
|
|
41
37
|
type: 'add',
|