UNPKG

4.16 kBJavaScriptView Raw
1"use strict";
2// tslint:disable-next-line
3/// <reference path="../../../node_modules/@types/webpack-env/index.d.ts"/>
4var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5 return new (P || (P = Promise))(function (resolve, reject) {
6 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
9 step((generator = generator.apply(thisArg, _arguments || [])).next());
10 });
11};
12Object.defineProperty(exports, "__esModule", { value: true });
13const jupyterlab_fonts_1 = require("@deathbeds/jupyterlab-fonts");
14const variants = ['Light', 'Regular', 'Medium', 'Bold'];
15const variantPromises = {
16 Light: () => new Promise((resolve, reject) => {
17 require.ensure([`!!file-loader!firacode/distr/woff2/FiraCode-Light.woff2`], (require) => resolve(require(`!!file-loader!firacode/distr/woff2/FiraCode-Light.woff2`)), (error) => {
18 console.error(error);
19 reject();
20 }, 'fira-code-light');
21 }),
22 Regular: () => new Promise((resolve, reject) => {
23 require.ensure([`!!file-loader!firacode/distr/woff2/FiraCode-Regular.woff2`], (require) => resolve(require(`!!file-loader!firacode/distr/woff2/FiraCode-Regular.woff2`)), (error) => {
24 console.error(error);
25 reject();
26 }, 'fira-code-light');
27 }),
28 Medium: () => new Promise((resolve, reject) => {
29 require.ensure([`!!file-loader!firacode/distr/woff2/FiraCode-Medium.woff2`], (require) => resolve(require(`!!file-loader!firacode/distr/woff2/FiraCode-Medium.woff2`)), (error) => {
30 console.error(error);
31 reject();
32 }, 'fira-code-light');
33 }),
34 Bold: () => new Promise((resolve, reject) => {
35 require.ensure([`!!file-loader!firacode/distr/woff2/FiraCode-Bold.woff2`], (require) => resolve(require(`!!file-loader!firacode/distr/woff2/FiraCode-Bold.woff2`)), (error) => {
36 console.error(error);
37 reject();
38 }, 'fira-code-light');
39 }),
40};
41function register(fonts) {
42 variants.forEach((variant) => {
43 fonts.registerFontFace({
44 name: `Fira Code ${variant}`,
45 license: {
46 spdx: 'OFL-1.1',
47 name: 'SIL Open Font License 1.1',
48 text: () => __awaiter(this, void 0, void 0, function* () {
49 return new Promise((resolve, reject) => {
50 require.ensure(['!!raw-loader!firacode/LICENSE'], (require) => resolve(require('!!raw-loader!firacode/LICENSE')), (error) => {
51 console.error(error);
52 reject();
53 }, 'fira-code');
54 });
55 }),
56 holders: [
57 `Copyright (c) 2014, Nikita Prokopov http://tonsky.me with Reserved Font Name Fira Code.`,
58 `Copyright (c) 2014, Mozilla Foundation https://mozilla.org/ with Reserved Font Name Fira Sans.`,
59 `Copyright (c) 2014, Mozilla Foundation https://mozilla.org/ with Reserved Font Name Fira Mono.`,
60 'Copyright (c) 2014, Telefonica S.A.',
61 ],
62 },
63 faces: () => __awaiter(this, void 0, void 0, function* () {
64 const font = yield variantPromises[variant]();
65 const uri = yield fonts.dataURISrc(font, jupyterlab_fonts_1.FontFormat.woff2);
66 return [{ fontFamily: `'Fira Code ${variant}'`, src: uri }];
67 }),
68 });
69 });
70}
71const plugin = {
72 id: '@deathbeds/jupyterlab-font-fira-code',
73 autoStart: true,
74 requires: [jupyterlab_fonts_1.IFontManager],
75 activate: function (app, fonts) {
76 return __awaiter(this, void 0, void 0, function* () {
77 fonts.ready.then(() => {
78 register(fonts);
79 });
80 });
81 },
82};
83exports.default = plugin;