Skip to content

Commit

Permalink
Merge pull request #47 from jaredwray/esm-support-for-handlebarhelpers
Browse files Browse the repository at this point in the history
esm support for handlebarhelpers
  • Loading branch information
jaredwray authored Jun 17, 2024
2 parents 5aa837c + 151d9b0 commit 629f8c7
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 6 deletions.
29 changes: 26 additions & 3 deletions index.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
// index.d.ts
import * as Handlebars from 'handlebars';
export = Handlebars;
// Import necessary types from the Handlebars library
import { HelperDelegate, HandlebarsLib as HandlebarsNamespace } from 'handlebars';

// Define a type for the Handlebars instance
export interface HandlebarsInstance extends HandlebarsNamespace {
create: () => HandlebarsInstance;
registerHelper: (name: string, fn: HelperDelegate) => void;
}

// Define the type for the parameters of the helpers function
interface HelpersParams {
handlebars: HandlebarsInstance;
}

// Define the type for the helpers function
declare function helpers(params: HelpersParams): void;

// Declare the variable to hold the helpers function, which may be undefined initially
declare let handlebarHelpers: typeof helpers | undefined;

// Declare the Handlebars instance as a HandlebarsInstance and export it as the default export
declare const handlebars: HandlebarsInstance;
export default handlebars;

// Export the helpers function as a named export
export { handlebarHelpers };
11 changes: 8 additions & 3 deletions index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,15 @@ import HandlebarsLib from 'handlebars';

const handlebars = HandlebarsLib.create();

// Variable to hold the helpers function
let handlebarHelpers;

import('./helpers.js').then((module) => {
const helpers = module.default;
helpers({ handlebars: handlebars });
});
handlebarHelpers = module.default;
handlebarHelpers({ handlebars: handlebars });
});

// Exporting for ESM
export default handlebars;
export { handlebarHelpers };

0 comments on commit 629f8c7

Please sign in to comment.