當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript dom5.setTextContent函數代碼示例

本文整理匯總了TypeScript中dom5.setTextContent函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript setTextContent函數的具體用法?TypeScript setTextContent怎麽用?TypeScript setTextContent使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了setTextContent函數的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: _rollupInlineModuleScripts

 /**
  * Inlines the contents of external module scripts and rolls-up imported
  * modules into inline scripts.
  */
 private async _rollupInlineModuleScripts(ast: ASTNode) {
   this.document = await this._reanalyze(serialize(ast));
   rewriteObject(ast, this.document.parsedDocument.ast);
   dom5.removeFakeRootElements(ast);
   const es6Rewriter =
       new Es6Rewriter(this.bundler, this.manifest, this.assignedBundle);
   const inlineModuleScripts =
       [...this.document.getFeatures({
         kind: 'js-document',
         imported: false,
         externalPackages: true,
         excludeBackreferences: true,
       })].filter(({
                    isInline,
                    parsedDocument: {parsedAsSourceType}
                  }) => isInline && parsedAsSourceType === 'module');
   for (const inlineModuleScript of inlineModuleScripts) {
     const ast = clone(inlineModuleScript.parsedDocument.ast);
     const importResolutions =
         es6Rewriter.getEs6ImportResolutions(inlineModuleScript);
     es6Rewriter.rewriteEs6SourceUrlsToResolved(ast, importResolutions);
     const serializedCode = serializeEs6(ast).code;
     const {code} = await es6Rewriter.rollup(
         this.document.parsedDocument.baseUrl,
         serializedCode,
         inlineModuleScript);
     if (inlineModuleScript.astNode &&
         inlineModuleScript.astNode.language === 'html') {
       // Second argument 'true' tells encodeString to escape the <script>
       // content.
       dom5.setTextContent(
           inlineModuleScript.astNode.node, encodeString(`\n${code}\n`, true));
     }
   }
 }
開發者ID:Polymer,項目名稱:tools,代碼行數:39,代碼來源:html-bundler.ts

示例2: _inlineModuleScripts

 /**
  * Inlines the contents of external module scripts and rolls-up imported
  * modules into inline scripts.
  */
 private async _inlineModuleScripts(ast: ASTNode) {
   this.document = await this._reanalyze(serialize(ast));
   rewriteObject(ast, this.document.parsedDocument.ast);
   dom5.removeFakeRootElements(ast);
   const es6Rewriter =
       new Es6Rewriter(this.bundler, this.manifest, this.assignedBundle);
   const inlineModuleScripts =
       [...this.document.getFeatures({
         kind: 'js-document',
         imported: false,
         externalPackages: true,
         excludeBackreferences: true,
       })].filter(({
                    isInline,
                    parsedDocument: {parsedAsSourceType}
                  }) => isInline && parsedAsSourceType === 'module');
   for (const inlineModuleScript of inlineModuleScripts) {
     const {code} = await es6Rewriter.rollup(
         this.document.parsedDocument.baseUrl,
         inlineModuleScript.parsedDocument.contents);
     // Second argument 'true' tells encodeString to escape the <script>
     // content.
     dom5.setTextContent(
         (inlineModuleScript.astNode as any).node,
         encodeString(`\n${code}\n`, true));
   }
 }
開發者ID:Polymer,項目名稱:vulcanize,代碼行數:31,代碼來源:html-bundler.ts

示例3: processFile

  private async processFile(file: File): Promise<File> {
    if (file.path !== this.entrypoint) {
      return file;
    }
    const contents = await getFileContents(file);
    const document = parse5.parse(contents);

    const babelHelpersFragment =
        parse5.parseFragment('\n\n<script></script>\n\n');
    dom5.setTextContent(
        babelHelpersFragment.childNodes![1]!,
        await fs.readFile(
            path.join(__dirname, 'babel-helpers.min.js'), 'utf-8'));

    const firstScriptOrImport = dom5.nodeWalk(document, scriptOrImport);
    if (firstScriptOrImport) {
      dom5.insertBefore(
          firstScriptOrImport.parentNode!,
          firstScriptOrImport,
          babelHelpersFragment);
    } else {
      const head =
          dom5.query(document, dom5.predicates.hasTagName('head')) || document;
      dom5.append(head, babelHelpersFragment);
    }

    const newFile = file.clone();
    newFile.contents = new Buffer(parse5.serialize(document), 'utf-8');
    return newFile;
  }
開發者ID:chrisekelley,項目名稱:polymer-build,代碼行數:30,代碼來源:inject-babel-helpers.ts

示例4: base64StringToRawSourceMap

  inlineScripts.forEach((script) => {
    let content = dom5.getTextContent(script);

    const sourceMapUrlParts = content.match(sourceMappingUrlExpr);
    if (!sourceMapUrlParts) {
      return;
    }
    const sourceMapContentParts =
        sourceMapUrlParts[1].match(inlineSourceMapExpr);
    if (!sourceMapContentParts) {
      return;
    }

    const sourceRange = reparsedDoc.sourceRangeForStartTag(script)!;
    const sourceMap = base64StringToRawSourceMap(sourceMapContentParts[2]);

    const updatedMap = offsetSourceMap(
        sourceMap, sourceRange.end.line, sourceRange.end.column);

    const base64Map = rawSourceMapToBase64String(updatedMap);
    content = content.replace(
        sourceMappingUrlExpr, `${inlineSourcemapPrefix}${base64Map}\n`);

    dom5.setTextContent(script, content);
  });
開發者ID:MehdiRaash,項目名稱:tools,代碼行數:25,代碼來源:source-map.ts

示例5: addIndentation

export function addIndentation(
    textNode: dom5.Node, additionalIndentation = '  ') {
  if (!dom5.isTextNode(textNode)) {
    return;
  }
  const text = dom5.getTextContent(textNode);
  const indentedText =
      text.split('\n')
          .map((line) => {
            return line.length > 0 ? additionalIndentation + line : line;
          })
          .join('\n');
  dom5.setTextContent(textNode, indentedText);
}
開發者ID:asdfg9822,項目名稱:polymer-linter,代碼行數:14,代碼來源:util.ts

示例6: _inlineNonModuleScript

  /**
   * Inlines the contents of the document returned by the script tag's src URL
   * into the script tag content and removes the src attribute.
   */
  private async _inlineNonModuleScript(scriptTag: ASTNode) {
    const scriptHref = dom5.getAttribute(scriptTag, 'src')!;
    const resolvedImportUrl = this.bundler.analyzer.urlResolver.resolve(
        this.assignedBundle.url, scriptHref as FileRelativeUrl);
    if (resolvedImportUrl === undefined) {
      return;
    }
    if (this.bundler.excludes.some(
            (e) => resolvedImportUrl === e ||
                resolvedImportUrl.startsWith(ensureTrailingSlash(e)))) {
      return;
    }
    const scriptImport = find(
        this.document.getFeatures(
            {kind: 'html-script', imported: true, externalPackages: true}),
        (i) =>
            i.document !== undefined && i.document.url === resolvedImportUrl);
    if (scriptImport === undefined || scriptImport.document === undefined) {
      this.assignedBundle.bundle.missingImports.add(resolvedImportUrl);
      return;
    }

    let scriptContent = scriptImport.document.parsedDocument.contents;

    if (this.bundler.sourcemaps) {
      // it's easier to calculate offsets if the external script contents
      // don't start on the same line as the script tag. Offset the map
      // appropriately.
      scriptContent = await addOrUpdateSourcemapComment(
          this.bundler.analyzer,
          resolvedImportUrl,
          '\n' + scriptContent,
          -1,
          0,
          1,
          0);
    }

    dom5.removeAttribute(scriptTag, 'src');
    // Second argument 'true' tells encodeString to escape the <script> content.
    dom5.setTextContent(scriptTag, encodeString(scriptContent, true));

    // Record that the inlining took place.
    this.assignedBundle.bundle.inlinedScripts.add(resolvedImportUrl);

    return scriptContent;
  }
開發者ID:Polymer,項目名稱:vulcanize,代碼行數:51,代碼來源:html-bundler.ts

示例7: _rewriteExternalModuleScriptTagsAsImports

 /**
  * Replace all external module script tags:
  * `<script type="module" src="..."></script>`
  * with inline script tags containing import:
  * `<script type="module">import '...';</script>`
  * And these will be subsequently rolled up by call to
  * `this._rollupInlineModuleScripts()`.
  */
 private async _rewriteExternalModuleScriptTagsAsImports(ast: ASTNode) {
   for (const scriptTag of dom5.queryAll(ast, matchers.externalModuleScript)) {
     const scriptHref = dom5.getAttribute(scriptTag, 'src')!;
     const resolvedImportUrl = this.bundler.analyzer.urlResolver.resolve(
         this.document.parsedDocument.baseUrl, scriptHref as FileRelativeUrl);
     if (resolvedImportUrl === undefined) {
       return;
     }
     // We won't inline a module script if its not supposed to be in this
     // bundle.
     if (!this.assignedBundle.bundle.files.has(resolvedImportUrl)) {
       return;
     }
     const scriptContent = `import ${JSON.stringify(resolvedImportUrl)};`;
     dom5.removeAttribute(scriptTag, 'src');
     dom5.setTextContent(scriptTag, encodeString(scriptContent, true));
   }
 }
開發者ID:Polymer,項目名稱:tools,代碼行數:26,代碼來源:html-bundler.ts

示例8: _rewriteStyleTagsBaseUrl

  /**
   * Find all URLs in imported style nodes and rewrite them so they are based
   * on the relationship of the old base URL to the new base URL.
   */
  private _rewriteStyleTagsBaseUrl(
      ast: ASTNode,
      oldBaseUrl: ResolvedUrl,
      newBaseUrl: ResolvedUrl) {
    const childNodesOption = this.bundler.rewriteUrlsInTemplates ?
        dom5.childNodesIncludeTemplate :
        dom5.defaultChildNodes;

    // If `rewriteUrlsInTemplates` is `true`, include `<style>` tags that are
    // inside `<template>`.
    const styleNodes =
        dom5.queryAll(ast, matchers.styleMatcher, undefined, childNodesOption);

    // Unless rewriteUrlsInTemplates is on, if a `<style>` tag is anywhere
    // inside a `<dom-module>` tag, then it should not have its URLs
    // rewritten.
    if (!this.bundler.rewriteUrlsInTemplates) {
      for (const domModule of dom5.queryAll(
               ast, dom5.predicates.hasTagName('dom-module'))) {
        for (const styleNode of dom5.queryAll(
                 domModule,
                 matchers.styleMatcher,
                 undefined,
                 childNodesOption)) {
          const styleNodeIndex = styleNodes.indexOf(styleNode);
          if (styleNodeIndex > -1) {
            styleNodes.splice(styleNodeIndex, 1);
          }
        }
      }
    }

    for (const node of styleNodes) {
      let styleText = dom5.getTextContent(node);
      styleText =
          this._rewriteCssTextBaseUrl(styleText, oldBaseUrl, newBaseUrl);
      dom5.setTextContent(node, styleText);
    }
  }
開發者ID:Polymer,項目名稱:vulcanize,代碼行數:43,代碼來源:html-bundler.ts

示例9: _inlineStylesheet

  /**
   * Inlines the contents of the stylesheet returned by the link tag's href
   * URL into a style tag and removes the link tag.
   */
  private async _inlineStylesheet(cssLink: ASTNode) {
    const stylesheetHref = dom5.getAttribute(cssLink, 'href')!;
    const resolvedImportUrl = this.bundler.analyzer.urlResolver.resolve(
        this.assignedBundle.url, stylesheetHref as FileRelativeUrl);
    if (resolvedImportUrl === undefined) {
      return;
    }
    if (this.bundler.excludes.some(
            (e) => resolvedImportUrl === e ||
                resolvedImportUrl.startsWith(ensureTrailingSlash(e)))) {
      return;
    }
    const stylesheetImport =  // HACK(usergenic): clang-format workaround
        find(
            this.document.getFeatures(
                {kind: 'html-style', imported: true, externalPackages: true}),
            (i) => i.document !== undefined &&
                i.document.url === resolvedImportUrl) ||
        find(
            this.document.getFeatures(
                {kind: 'css-import', imported: true, externalPackages: true}),
            (i) => i.document !== undefined &&
                i.document.url === resolvedImportUrl);
    if (stylesheetImport === undefined ||
        stylesheetImport.document === undefined) {
      this.assignedBundle.bundle.missingImports.add(resolvedImportUrl);
      return;
    }
    const stylesheetContent = stylesheetImport.document.parsedDocument.contents;
    const media = dom5.getAttribute(cssLink, 'media');

    let newBaseUrl = this.assignedBundle.url;

    // If the css link we are about to inline is inside of a dom-module, the
    // new base URL must be calculated using the assetpath of the dom-module
    // if present, since Polymer will honor assetpath when resolving URLs in
    // `<style>` tags, even inside of `<template>` tags.
    const parentDomModule =
        findAncestor(cssLink, dom5.predicates.hasTagName('dom-module'));
    if (!this.bundler.rewriteUrlsInTemplates && parentDomModule &&
        dom5.hasAttribute(parentDomModule, 'assetpath')) {
      const assetPath = (dom5.getAttribute(parentDomModule, 'assetpath') ||
                         '') as FileRelativeUrl;
      if (assetPath) {
        newBaseUrl =
            this.bundler.analyzer.urlResolver.resolve(newBaseUrl, assetPath)!;
      }
    }
    const resolvedStylesheetContent = this._rewriteCssTextBaseUrl(
        stylesheetContent, resolvedImportUrl, newBaseUrl);
    const styleNode = dom5.constructors.element('style');
    if (media) {
      dom5.setAttribute(styleNode, 'media', media);
    }

    dom5.replace(cssLink, styleNode);
    dom5.setTextContent(styleNode, resolvedStylesheetContent);

    // Record that the inlining took place.
    this.assignedBundle.bundle.inlinedStyles.add(resolvedImportUrl);
    return styleNode;
  }
開發者ID:Polymer,項目名稱:vulcanize,代碼行數:66,代碼來源:html-bundler.ts

示例10: encodeString

 .then(updatedContent => {
   dom5.setTextContent(scriptAst, encodeString(updatedContent));
 });
開發者ID:Polymer,項目名稱:vulcanize,代碼行數:3,代碼來源:html-bundler.ts


注:本文中的dom5.setTextContent函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。