in source-control-sample/src/fiddleRepository.ts [68:100]
export async function downloadFiddle(slug: string, version: number | undefined): Promise<Fiddle> {
if (slug === "demo") {
// use mock fiddle
if (demoVersionOffset === undefined && version === undefined) { version = 0; }
if (demoVersionOffset === undefined) { demoVersionOffset = version; }
const maxDemoVersion = DEMO.length - 1 + demoVersionOffset;
if (version === undefined) { version = maxDemoVersion; }
if (version >= 0 && version <= maxDemoVersion) {
// mock all versions committed in previous sessions by the first version
const index = Math.max(0, version - demoVersionOffset);
const fiddleData = DEMO[index];
return new Fiddle(slug, version, fiddleData);
}
else {
throw new Error("Invalid demo fiddle version.");
}
}
const id = toFiddleId(slug, version);
return new Promise<Fiddle>((resolve, reject) => {
JSFiddle.getFiddle(id, (err: any, fiddleData: any) => {
// handle error
if (err) { reject(err); }
const fiddle = new Fiddle(slug, version, fiddleData);
resolve(fiddle);
});
});
}