Skip to content

Commit 95d4629

Browse files
committed
refactor!: Renamed token in outputFilePattern template
BREAKING CHANGE: Renamed token `{feature}` to `{model}` in `outputFilePattern` template pattern
1 parent a222955 commit 95d4629

File tree

7 files changed

+17
-23
lines changed

7 files changed

+17
-23
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ Output folder relative to this schema file
4141

4242
File pattern
4343
Type: `string`
44-
Default: `{feature}/{name}.{type}.ts`
44+
Default: `{model}/{name}.{type}.ts`
4545
Possible tokens:
4646

47-
- `{feature}` Model name in dashed case or 'prisma' if unknown
47+
- `{model}` Model name in dashed case or 'prisma' if unknown
4848
- `{name}` Dashed-case name of model/input/arg without suffix
4949
- `{type}` Short type name (model, input, args, output)
5050
- `{plural.type}` Plural short type name (models, inputs, enums)

src/handlers/args-type.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { featureName } from '../helpers/feature-name';
1+
import { getModelName } from '../helpers/get-model-name';
22
import { pascalCase } from '../helpers/pascal-case';
33
import { EventArguments, InputType, SchemaField } from '../types';
44

@@ -12,7 +12,7 @@ export function argsType(field: SchemaField, args: EventArguments) {
1212
}
1313
const { eventEmitter, modelNames, typeNames } = args;
1414
const className = pascalCase(`${field.name}Args`);
15-
const modelName = featureName({ name: className, modelNames, fallback: '' });
15+
const modelName = getModelName({ name: className, modelNames, fallback: '' });
1616
const inputType: InputType = {
1717
// eslint-disable-next-line unicorn/no-null
1818
constraints: { maxNumFields: null, minNumFields: null },

src/handlers/output-type.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { CommentStatement } from 'ts-morph';
22

3-
import { featureName } from '../helpers/feature-name';
43
import { generateClass } from '../helpers/generate-class';
54
import { generateDecorator } from '../helpers/generate-decorator';
65
import { generateImport } from '../helpers/generate-import';
76
import { generateProperty } from '../helpers/generate-property';
87
import { getGraphqlImport } from '../helpers/get-graphql-import';
98
import { getGraphqlType } from '../helpers/get-graphql-type';
9+
import { getModelName } from '../helpers/get-model-name';
1010
import { getOutputTypeName } from '../helpers/get-output-type-name';
1111
import { getPropertyType } from '../helpers/get-property-type';
1212
import { EventArguments, OutputType } from '../types';
@@ -37,7 +37,7 @@ export function outputType(outputType: OutputType, args: EventArguments) {
3737
const fileType = model ? 'model' : 'output';
3838
const connectedModelName =
3939
model?.name ??
40-
featureName({
40+
getModelName({
4141
name: outputType.name,
4242
modelNames,
4343
fallback: '',

src/helpers/create-config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export function createConfig(data: Record<string, string | undefined>) {
1111
>;
1212
return {
1313
outputFilePattern: String(
14-
config.outputFilePattern || `{feature}/{name}.{type}.ts`,
14+
config.outputFilePattern || `{model}/{name}.{type}.ts`,
1515
),
1616
combineScalarFilters: ['true', '1', 'on'].includes(
1717
(config.combineScalarFilters as Nullable<string>) ?? 'false',

src/helpers/generate-file-name.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ describe('generateFileName', () => {
88
modelNames: ['User'],
99
name: 'User',
1010
type: 'model',
11-
template: '{feature}/{plural.type}/{name}.{type}.ts',
11+
template: '{model}/{plural.type}/{name}.{type}.ts',
1212
});
1313
expect(result).toEqual('user/models/user.model.ts');
1414
});
@@ -18,7 +18,7 @@ describe('generateFileName', () => {
1818
modelNames: ['User'],
1919
name: 'UserWhereInput',
2020
type: 'input',
21-
template: '{feature}/{plural.type}/{name}.{type}.ts',
21+
template: '{model}/{plural.type}/{name}.{type}.ts',
2222
});
2323
expect(result).toEqual('user/inputs/user-where.input.ts');
2424
});
@@ -28,7 +28,7 @@ describe('generateFileName', () => {
2828
modelNames: ['User'],
2929
name: 'Role',
3030
type: 'enum',
31-
template: '{feature}/{plural.type}/{name}.{type}.ts',
31+
template: '{model}/{plural.type}/{name}.{type}.ts',
3232
});
3333
expect(result).toEqual('prisma/enums/role.enum.ts');
3434
});

src/helpers/generate-file-name.ts

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,21 @@ import { kebabCase } from 'lodash';
22
import pluralize from 'pluralize';
33
import pupa from 'pupa';
44

5-
import { featureName } from './feature-name';
5+
import { getModelName } from './get-model-name';
66

7-
type GenerateFileNameArgs = {
7+
export function generateFileName(args: {
88
type: string;
99
name: string;
1010
modelNames: string[];
1111
template: string;
12-
feature?: string;
13-
};
14-
15-
export function generateFileName(args: GenerateFileNameArgs) {
12+
}) {
1613
const { template, type, name, modelNames } = args;
1714

1815
return pupa(template, {
1916
type,
20-
get feature() {
21-
let feature = args.feature;
22-
if (!feature) {
23-
feature = featureName({ modelNames, name, fallback: 'prisma' });
24-
}
25-
return kebabCase(feature);
17+
get model() {
18+
const result = getModelName({ modelNames, name, fallback: 'prisma' });
19+
return kebabCase(result);
2620
},
2721
get name() {
2822
let result = kebabCase(name);

src/helpers/feature-name.ts renamed to src/helpers/get-model-name.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export function featureName(args: {
1+
export function getModelName(args: {
22
name: string;
33
modelNames: string[];
44
fallback: string;

0 commit comments

Comments
 (0)