diff --git a/src/parse.js b/src/parse.js index 55932a1..1dc6974 100644 --- a/src/parse.js +++ b/src/parse.js @@ -5,7 +5,8 @@ const p = new Preprocessor(); /** * @internal * @param {string} source + * @param {import('./public-types.ts').TransformerOptions} [options] */ -export function parse(source) { - return p.parse(source, { inline_source_map: false }); +export function parse(source, options = {}) { + return p.parse(source, { inline_source_map: false, ...options }); } diff --git a/src/public-types.ts b/src/public-types.ts index 7206c67..3efa043 100644 --- a/src/public-types.ts +++ b/src/public-types.ts @@ -23,3 +23,15 @@ export interface Coordinates { */ end: number; } + +export interface TransformerOptions { + /** + * Whether or not to use inline sourcemaps -- defaults to false. + */ + inline_source_map?: boolean; + + /** + * The filename representing the passed source string + */ + filename?: string; +} diff --git a/src/transformer.js b/src/transformer.js index b87a469..7bdd1fc 100644 --- a/src/transformer.js +++ b/src/transformer.js @@ -50,11 +50,12 @@ export class Transformer { /** * @param {string} source + * @param {import('./public-types.ts').TransformerOptions} [options] */ - constructor(source) { + constructor(source, options = {}) { this.#originalSource = source; - let parsed = parse(source); + let parsed = parse(source, options); let frozenParsed = parsed.map(Object.freeze); // SAFETY: readonly types are super annoying