export async function allTypeScriptSnippets()

in src/jsii/assemblies.ts [193:239]


export async function allTypeScriptSnippets(
  assemblies: readonly LoadedAssembly[],
  loose = false,
): Promise<TypeScriptSnippet[]> {
  const sources = assemblies
    .flatMap((loaded) => allSnippetSources(loaded.assembly).map((source) => ({ source, loaded })))
    .flatMap(({ source, loaded }) => {
      switch (source.type) {
        case 'example':
          return [
            {
              snippet: updateParameters(
                typeScriptSnippetFromVisibleSource(
                  source.source,
                  { api: source.location, field: { field: 'example' } },
                  isStrict(loaded),
                ),
                source.metadata ?? {},
              ),
              loaded,
            },
          ];
        case 'markdown':
          return extractTypescriptSnippetsFromMarkdown(source.markdown, source.location, isStrict(loaded)).map(
            (snippet) => ({ snippet, loaded }),
          );
      }
    });

  const fixtures = [];
  for (let { snippet, loaded } of sources) {
    const isInfused = snippet.parameters?.infused != null;

    // Ignore fixturization errors if requested on this command, or if the snippet was infused
    const ignoreFixtureErrors = loose || isInfused;

    // Also if the snippet was infused: switch off 'strict' mode if it was set
    if (isInfused) {
      snippet = { ...snippet, strict: false };
    }

    snippet = await withDependencies(loaded, withProjectDirectory(loaded.directory, snippet));
    fixtures.push(fixturize(snippet, ignoreFixtureErrors));
  }

  return fixtures;
}