Skip to content

Commit

Permalink
feat(playground): support custom extensions (#349)
Browse files Browse the repository at this point in the history
* fix(remirror): incorrect imports `ssr/component`
  • Loading branch information
ifiokjr committed Jul 17, 2020
1 parent 0e14b5a commit d186b75
Show file tree
Hide file tree
Showing 9 changed files with 88 additions and 10 deletions.
5 changes: 5 additions & 0 deletions .changeset/nasty-parents-bathe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'remirror': patch
---

Correct the incorrect `remirror/react/ssr` and `remirror/react/component` exports. They were incorrectly referencing each other.
1 change: 1 addition & 0 deletions packages/@remirror/playground/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
"@babel/types": "^7.10.4",
"@remirror/core": "^1.0.0-next.4",
"@remirror/core-helpers": "^1.0.0-next.4",
"@remirror/pm": "^1.0.0-next.4",
"@remirror/react": "^1.0.0-next.4",
"@types/babel__core": "^7.1.9",
"@types/babel__standalone": "^7.1.2",
Expand Down
26 changes: 24 additions & 2 deletions packages/@remirror/playground/scripts/import-remirror.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ async function scanImportsFrom<T extends RemirrorModuleMeta>(
name: `${sourceModulePath}/${folder}`,
exports: Object.keys(mod),
};

result[folder] = await callback(meta);
}

Expand Down Expand Up @@ -80,13 +81,34 @@ export const IMPORT_CACHE: { [moduleName: string]: any } = {
// Manual-imported
remirror: require('remirror'),
'remirror/core': require('remirror/core'),
'remirror/react': require('remirror/react'),
'@remirror/playground': { useRemirrorPlayground },
'@remirror/pm/commands': require('@remirror/pm/commands'),
'@remirror/pm/dropcursor': require('@remirror/pm/dropcursor'),
'@remirror/pm/gapcursor': require('@remirror/pm/gapcursor'),
'@remirror/pm/history': require('@remirror/pm/history'),
'@remirror/pm/inputrules': require('@remirror/pm/inputrules'),
'@remirror/pm/keymap': require('@remirror/pm/keymap'),
'@remirror/pm/model': require('@remirror/pm/model'),
'@remirror/pm/schema-list': require('@remirror/pm/schema-list'),
'@remirror/pm/state': require('@remirror/pm/state'),
'@remirror/pm/suggest': require('@remirror/pm/suggest'),
'@remirror/pm/tables': require('@remirror/pm/tables'),
'@remirror/pm/transform': require('@remirror/pm/transform'),
'@remirror/pm/view': require('@remirror/pm/view'),
// External dependencies
'@babel/runtime/helpers/interopRequireDefault': require('@babel/runtime/helpers/interopRequireDefault'),
'@babel/runtime/helpers/interopRequireWildcard': require('@babel/runtime/helpers/interopRequireWildcard'),
'@babel/runtime/helpers/slicedToArray': require('@babel/runtime/helpers/slicedToArray'),
'@babel/runtime/helpers/createClass': require('@babel/runtime/helpers/createClass'),
'@babel/runtime/helpers/possibleConstructorReturn': require('@babel/runtime/helpers/possibleConstructorReturn'),
'@babel/runtime/helpers/extends': require('@babel/runtime/helpers/extends'),
'@babel/runtime/helpers/assertThisInitialized': require('@babel/runtime/helpers/assertThisInitialized'),
'@babel/runtime/helpers/classCallCheck': require('@babel/runtime/helpers/classCallCheck'),
'@babel/runtime/helpers/inherits': require('@babel/runtime/helpers/inherits'),
'@babel/runtime/helpers/defineProperty': require('@babel/runtime/helpers/defineProperty'),
react: require('react'),
};
Expand All @@ -113,12 +135,12 @@ async function main() {
// `dist` and `src; populate `execute.ts`'s `knownRequires` and handle the
// TypeScript definitions.
const extensions = await scanImportsFrom(
`${__dirname}/../../../packages/remirror/extension`,
`${__dirname}/../../../remirror/extension`,
'remirror/extension',
importExtension,
);
const presets = await scanImportsFrom(
`${__dirname}/../../../packages/remirror/preset`,
`${__dirname}/../../../remirror/preset`,
'remirror/preset',
importPreset,
);
Expand Down
48 changes: 46 additions & 2 deletions packages/@remirror/playground/src/_remirror.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export const IMPORT_CACHE: { [moduleName: string]: any } = {
'remirror/extension/placeholder': require('remirror/extension/placeholder'),
'remirror/extension/position-tracker': require('remirror/extension/position-tracker'),
'remirror/extension/positioner': require('remirror/extension/positioner'),
'remirror/extension/react-component': require('remirror/extension/react-component'),
'remirror/extension/react-ssr': require('remirror/extension/react-ssr'),
'remirror/extension/search': require('remirror/extension/search'),
'remirror/extension/strike': require('remirror/extension/strike'),
Expand All @@ -47,17 +48,40 @@ export const IMPORT_CACHE: { [moduleName: string]: any } = {
'remirror/preset/embed': require('remirror/preset/embed'),
'remirror/preset/list': require('remirror/preset/list'),
'remirror/preset/react': require('remirror/preset/react'),
'remirror/preset/social': require('remirror/preset/social'),
'remirror/preset/table': require('remirror/preset/table'),
'remirror/preset/wysiwyg': require('remirror/preset/wysiwyg'),

// Manual-imported
remirror: require('remirror'),
'remirror/core': require('remirror/core'),
'remirror/react': require('remirror/react'),
'@remirror/playground': { useRemirrorPlayground },
'@remirror/pm/commands': require('@remirror/pm/commands'),
'@remirror/pm/dropcursor': require('@remirror/pm/dropcursor'),
'@remirror/pm/gapcursor': require('@remirror/pm/gapcursor'),
'@remirror/pm/history': require('@remirror/pm/history'),
'@remirror/pm/inputrules': require('@remirror/pm/inputrules'),
'@remirror/pm/keymap': require('@remirror/pm/keymap'),
'@remirror/pm/model': require('@remirror/pm/model'),
'@remirror/pm/schema-list': require('@remirror/pm/schema-list'),
'@remirror/pm/state': require('@remirror/pm/state'),
'@remirror/pm/suggest': require('@remirror/pm/suggest'),
'@remirror/pm/tables': require('@remirror/pm/tables'),
'@remirror/pm/transform': require('@remirror/pm/transform'),
'@remirror/pm/view': require('@remirror/pm/view'),

// External dependencies
'@babel/runtime/helpers/interopRequireDefault': require('@babel/runtime/helpers/interopRequireDefault'),
'@babel/runtime/helpers/interopRequireWildcard': require('@babel/runtime/helpers/interopRequireWildcard'),
'@babel/runtime/helpers/slicedToArray': require('@babel/runtime/helpers/slicedToArray'),
'@babel/runtime/helpers/createClass': require('@babel/runtime/helpers/createClass'),
'@babel/runtime/helpers/possibleConstructorReturn': require('@babel/runtime/helpers/possibleConstructorReturn'),
'@babel/runtime/helpers/extends': require('@babel/runtime/helpers/extends'),
'@babel/runtime/helpers/assertThisInitialized': require('@babel/runtime/helpers/assertThisInitialized'),
'@babel/runtime/helpers/classCallCheck': require('@babel/runtime/helpers/classCallCheck'),
'@babel/runtime/helpers/inherits': require('@babel/runtime/helpers/inherits'),
'@babel/runtime/helpers/defineProperty': require('@babel/runtime/helpers/defineProperty'),
react: require('react'),
};

Expand Down Expand Up @@ -193,6 +217,10 @@ export const INTERNAL_MODULES: Array<{ moduleName: string; exports: string[] }>
'popupMenuPositioner',
],
},
{
moduleName: 'remirror/extension/react-component',
exports: ['PortalContainer', 'ReactComponentExtension', 'RemirrorPortals'],
},
{
moduleName: 'remirror/extension/react-ssr',
exports: ['ReactSSRExtension'],
Expand All @@ -219,11 +247,11 @@ export const INTERNAL_MODULES: Array<{ moduleName: string; exports: string[] }>
},
{
moduleName: 'remirror/extension/yjs',
exports: ['YjsExtension'],
exports: ['YjsExtension', 'editorStyles'],
},
{
moduleName: 'remirror/preset/core',
exports: ['CorePreset'],
exports: ['CorePreset', 'createCoreManager'],
},
{
moduleName: 'remirror/preset/embed',
Expand All @@ -237,6 +265,10 @@ export const INTERNAL_MODULES: Array<{ moduleName: string; exports: string[] }>
moduleName: 'remirror/preset/react',
exports: ['ReactPreset'],
},
{
moduleName: 'remirror/preset/social',
exports: ['SocialPreset'],
},
{
moduleName: 'remirror/preset/table',
exports: [
Expand All @@ -247,4 +279,16 @@ export const INTERNAL_MODULES: Array<{ moduleName: string; exports: string[] }>
'TableRowExtension',
],
},
{
moduleName: 'remirror/preset/wysiwyg',
exports: [
'EmbedOptions',
'EmbedPreset',
'ListPreset',
'TableOptions',
'TablePreset',
'WysiwygPreset',
'createWysiwygPresetList',
],
},
];
6 changes: 4 additions & 2 deletions packages/@remirror/playground/src/compile.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,16 @@ export function compile(
* **MUST NOT** have their `@babel/preset-` or `@babel/plugin-` prefixes
* otherwise they WILL NOT WORK.
*/
presets: ['react', ['env', { useBuiltIns: false }], 'typescript'],
presets: ['react', ['env', { useBuiltIns: false, targets: 'since 2017' }], 'typescript'],
plugins: [
['transform-runtime'],
['proposal-object-rest-spread'],
//'syntax-dynamic-import',
// 'syntax-dynamic-import',
'proposal-nullish-coalescing-operator',
'proposal-optional-chaining',
'playgroundImports',
'proposal-class-properties',
'proposal-private-methods',
],
});
} catch (error_) {
Expand Down
6 changes: 4 additions & 2 deletions packages/@remirror/playground/src/execute.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@ import { acquiredTypeDefs, dtsCache } from './vendor/type-acquisition';
// Start with these and cannot remove them
export const REQUIRED_MODULES = INTERNAL_MODULES.map((mod) => mod.moduleName);

const tsOptions = {
const tsOptions: languages.typescript.CompilerOptions = {
// Maybe need to do manual syntax highlighting like found here:
// http://demo.rekit.org/element/src%2Ffeatures%2Feditor%2Fworkers%2FsyntaxHighlighter.js/code

jsx: languages.typescript.JsxEmit.React,
esModuleInterop: true,
allowSyntheticDefaultImports: true,
};

languages.typescript.typescriptDefaults.setCompilerOptions(tsOptions);
languages.typescript.javascriptDefaults.setCompilerOptions(tsOptions);

Expand Down
2 changes: 1 addition & 1 deletion packages/remirror/extension/react-component/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"module": "dist/remirror.esm.js",
"types": "dist/remirror.cjs.d.ts",
"preconstruct": {
"source": "../../src/extension/react-ssr"
"source": "../../src/extension/react-component"
}
}
2 changes: 1 addition & 1 deletion packages/remirror/extension/react-ssr/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"module": "dist/remirror.esm.js",
"types": "dist/remirror.cjs.d.ts",
"preconstruct": {
"source": "../../src/extension/react-component"
"source": "../../src/extension/react-ssr"
}
}
2 changes: 2 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 comment on commit d186b75

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉 Published on https://remirror.io as production
🚀 Deployed on https://5f11426994b73ae20b4f407f--remirror.netlify.app

Please sign in to comment.