diff --git a/src-electron/generator/helper-zcl.js b/src-electron/generator/helper-zcl.js index c761c94073b7e1e0bf5b983f5e59145a0a91d70d..fd1f78f61411efca25bdc0133c4ea3be79325f29 100644 --- a/src-electron/generator/helper-zcl.js +++ b/src-electron/generator/helper-zcl.js @@ -529,15 +529,19 @@ function zcl_command_argument_data_type(type, options) { .then((resType) => { switch (resType) { case dbEnum.zclType.bitmap: - return helperC.dataTypeForBitmap(this.global.db, type, packageId) + return helperC.data_type_for_bitmap( + this.global.db, + type, + packageId + ) case dbEnum.zclType.enum: - return helperC.dataTypeForEnum(this.global.db, type, packageId) + return helperC.data_type_for_enum(this.global.db, type, packageId) case dbEnum.zclType.struct: return options.hash.struct case dbEnum.zclType.atomic: case dbEnum.zclType.unknown: default: - return helperC.asCliType(type) + return helperC.as_cli_type(type) } }) .catch((err) => { diff --git a/src-electron/generator/template-engine.js b/src-electron/generator/template-engine.js index 45a25b616a63e4e84fe9a925cc586229029a4ae2..750b18ecdb535dc2cf45b47f988a41457fcf6ebd 100644 --- a/src-electron/generator/template-engine.js +++ b/src-electron/generator/template-engine.js @@ -70,8 +70,10 @@ function produceContent( return produceCompiledTemplate(singleTemplatePkg).then((template) => template({ global: { + deprecationWarnings: {}, db: db, sessionId: sessionId, + templatePath: singleTemplatePkg.path, promises: [], genTemplatePackageId: genTemplateJsonPackageId, overridable: loadOverridable(overridePath), @@ -158,6 +160,9 @@ function allGlobalHelpers() { includedHelpers.forEach((path) => { var h = require(path) for (const singleHelper in h) { + if (allHelpers.api[singleHelper] != null) { + allHelpers.duplicates.push(singleHelper) + } allHelpers.api[singleHelper] = h[singleHelper] } }) diff --git a/src-electron/generator/template-util.js b/src-electron/generator/template-util.js index 5e996e9398cfc0597649ec63cdff52cbbe3a2173..56a8b0b4710c2c669a6a3173487d5c644843d7c0 100644 --- a/src-electron/generator/template-util.js +++ b/src-electron/generator/template-util.js @@ -302,9 +302,11 @@ function deprecatedHelper(fn, explanation) { } else { msg = `Deprecated helper resolved into ${fn.name}. Please use the new helper directly.` } - var f = function () { - env.logWarning(msg) + if (this.global.deprecationWarnings[fn.name] == null) { + this.global.deprecationWarnings[fn.name] = true + env.logWarning(`${this.global.templatePath} : ${msg}`) + } return fn.apply(this, arguments) } f.isDeprecated = true diff --git a/test/helper-api.test.js b/test/helper-api.test.js index 97d7d0237976a0e7aac2fb8be30a995ed3a084bd..c0f362584ea63a78c4198e5451031c438691fdd7 100644 --- a/test/helper-api.test.js +++ b/test/helper-api.test.js @@ -32,6 +32,12 @@ test('helper functions need to be snake_case without uppercase characters unless } }) +test('check that there is no overlapping duplicates', () => { + var helpers = templateEngine.allGlobalHelpers() + var dups = helpers.duplicates.join(', ') + expect(dups).toBe('') +}) + test('compare APIs against the baseline', () => { var apiFromFile = JSON.parse( fs.readFileSync(path.join(__dirname, 'helper-api-baseline.json'))