Skip to content

Commit

Permalink
Merge pull request #46 from vekexasia/fix/insensitive-prefix-suffix
Browse files Browse the repository at this point in the history
fix for insensitive names and use of prefix and suffix
  • Loading branch information
dderevjanik committed Apr 17, 2024
2 parents 018b812 + 6696042 commit 0b2e844
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
10 changes: 9 additions & 1 deletion src/models/parsed-wsdl.ts
Expand Up @@ -80,12 +80,16 @@ export interface Options {
* @default 32
*/
maxStackWarn: number;
modelNamePreffix: string;
modelNameSuffix: string;
}

const defaultOptions: Options = {
caseInsensitiveNames: false,
maxStack: 64,
maxStackWarn: 32,
modelNamePreffix: "",
modelNameSuffix: "",
};

export class ParsedWsdl {
Expand Down Expand Up @@ -129,7 +133,11 @@ export class ParsedWsdl {
const definitionName = sanitizeFilename(defName);
const isInSensitive = this._options.caseInsensitiveNames;

const defNameToCheck = isInSensitive ? definitionName.toLowerCase() : definitionName;
let defNameToCheck = `${this._options.modelNamePreffix}${definitionName}${this._options.modelNameSuffix}`;
if (isInSensitive) {
defNameToCheck = defNameToCheck.toLowerCase();
}

if (
!this.definitions.find((def) =>
isInSensitive ? def.name.toLowerCase() === defNameToCheck : def.name === defNameToCheck
Expand Down
9 changes: 8 additions & 1 deletion src/parser.ts
Expand Up @@ -11,12 +11,14 @@ interface ParserOptions {
modelNamePreffix: string;
modelNameSuffix: string;
maxRecursiveDefinitionName: number;
caseInsensitiveNames: boolean

Check warning on line 14 in src/parser.ts

View workflow job for this annotation

GitHub Actions / Tests & Typecheck

Insert `;`
}

const defaultOptions: ParserOptions = {
modelNamePreffix: "",
modelNameSuffix: "",
maxRecursiveDefinitionName: 64,
caseInsensitiveNames: false

Check warning on line 21 in src/parser.ts

View workflow job for this annotation

GitHub Actions / Tests & Typecheck

Insert `,`
};

type VisitedDefinition = {
Expand Down Expand Up @@ -253,7 +255,12 @@ export async function parseWsdl(wsdlPath: string, options: Partial<ParserOptions
return reject(new Error("WSDL is undefined"));
}

const parsedWsdl = new ParsedWsdl({ maxStack: options.maxRecursiveDefinitionName });
const parsedWsdl = new ParsedWsdl({
maxStack: options.maxRecursiveDefinitionName,
caseInsensitiveNames: options.caseInsensitiveNames,
modelNamePreffix: options.modelNamePreffix,
modelNameSuffix: options.modelNameSuffix

Check warning on line 262 in src/parser.ts

View workflow job for this annotation

GitHub Actions / Tests & Typecheck

Insert `,`
});
const filename = path.basename(wsdlPath);
parsedWsdl.name = changeCase(stripExtension(filename), {
pascalCase: true,
Expand Down

0 comments on commit 0b2e844

Please sign in to comment.