[go: nahoru, domu]

blob: 1bec41fce1812a7537bd85ce4f1876316aea196b [file] [log] [blame]
// Copyright 2023 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import * as PuppeteerReplay from '../../../third_party/puppeteer-replay/puppeteer-replay.js';
import * as Models from '../models/models.js';
import {type Converter} from './Converter.js';
export class PuppeteerReplayConverter implements Converter {
#indent: string;
constructor(indent: string) {
this.#indent = indent;
}
getId(): string {
return Models.ConverterIds.ConverterIds.Replay;
}
getFormatName(): string {
return '@puppeteer/replay';
}
getFilename(flow: Models.Schema.UserFlow): string {
return `${flow.title}.js`;
}
async stringify(
flow: Models.Schema.UserFlow,
): Promise<[string, PuppeteerReplay.SourceMap|undefined]> {
const text = await PuppeteerReplay.stringify(flow, {
extension: new PuppeteerReplay.PuppeteerReplayStringifyExtension(),
indentation: this.#indent,
});
const sourceMap = PuppeteerReplay.parseSourceMap(text);
return [PuppeteerReplay.stripSourceMap(text), sourceMap];
}
async stringifyStep(step: Models.Schema.Step): Promise<string> {
return await PuppeteerReplay.stringifyStep(step, {
extension: new PuppeteerReplay.PuppeteerReplayStringifyExtension(),
});
}
getMediaType(): string {
return 'text/javascript';
}
}