@web/dev-server-rollup
Advanced tools
Comparing version 0.2.10 to 0.2.11
# @web/dev-server-rollup | ||
## 0.2.11 | ||
### Patch Changes | ||
- 4913db2: implement moduleParsed hook | ||
- Updated dependencies [f0472df] | ||
- @web/dev-server-core@0.2.17 | ||
## 0.2.10 | ||
@@ -4,0 +12,0 @@ |
import { DevServerCoreConfig, FSWatcher, Plugin as WdsPlugin, Context } from '@web/dev-server-core'; | ||
import { PluginContext, MinimalPluginContext, TransformPluginContext } from 'rollup'; | ||
export declare function createRollupPluginContextAdapter<T extends PluginContext | MinimalPluginContext | TransformPluginContext>(pluginContext: T, wdsPlugin: WdsPlugin, config: DevServerCoreConfig, fileWatcher: FSWatcher, context: Context): T & { | ||
getModuleInfo(id: string): { | ||
dynamicallyImportedIds: never[]; | ||
dynamicImporters: never[]; | ||
hasModuleSideEffects: boolean; | ||
id: string; | ||
importedIds: never[]; | ||
importers: never[]; | ||
isEntry: boolean; | ||
isExternal: boolean; | ||
}; | ||
import { PluginContext, MinimalPluginContext, TransformPluginContext, CustomPluginOptions, ModuleInfo } from 'rollup'; | ||
export declare function createRollupPluginContextAdapter<T extends PluginContext | MinimalPluginContext | TransformPluginContext>(pluginContext: T, wdsPlugin: WdsPlugin, config: DevServerCoreConfig, fileWatcher: FSWatcher, context: Context, pluginMetaPerModule: Map<string, CustomPluginOptions>): T & { | ||
getModuleInfo(id: string): ModuleInfo; | ||
addWatchFile(id: string): void; | ||
@@ -15,0 +6,0 @@ emitAsset(): never; |
@@ -8,9 +8,13 @@ "use strict"; | ||
const path_1 = __importDefault(require("path")); | ||
function createRollupPluginContextAdapter(pluginContext, wdsPlugin, config, fileWatcher, context) { | ||
function createRollupPluginContextAdapter(pluginContext, wdsPlugin, config, fileWatcher, context, pluginMetaPerModule) { | ||
return Object.assign(Object.assign({}, pluginContext), { getModuleInfo(id) { | ||
var _a; | ||
return { | ||
id, | ||
code: context.body, | ||
ast: null, | ||
dynamicallyImportedIds: [], | ||
dynamicImporters: [], | ||
hasModuleSideEffects: false, | ||
id, | ||
implicitlyLoadedBefore: [], | ||
implicitlyLoadedAfterOneOf: [], | ||
importedIds: [], | ||
@@ -20,2 +24,5 @@ importers: [], | ||
isExternal: false, | ||
hasModuleSideEffects: false, | ||
syntheticNamedExports: false, | ||
meta: (_a = pluginMetaPerModule.get(id)) !== null && _a !== void 0 ? _a : {}, | ||
}; | ||
@@ -22,0 +29,0 @@ }, |
@@ -39,2 +39,3 @@ "use strict"; | ||
const transformedFiles = new Set(); | ||
const pluginMetaPerModule = new Map(); | ||
let rollupPluginContexts; | ||
@@ -44,2 +45,9 @@ let fileWatcher; | ||
let rootDir; | ||
function savePluginMeta(id, { meta } = {}) { | ||
if (!meta) { | ||
return; | ||
} | ||
const previousMeta = pluginMetaPerModule.get(id); | ||
pluginMetaPerModule.set(id, Object.assign(Object.assign({}, previousMeta), meta)); | ||
} | ||
const wdsPlugin = { | ||
@@ -71,3 +79,3 @@ name: rollupPlugin.name, | ||
try { | ||
const rollupPluginContext = createRollupPluginContextAdapter_1.createRollupPluginContextAdapter(rollupPluginContexts.pluginContext, wdsPlugin, config, fileWatcher, context); | ||
const rollupPluginContext = createRollupPluginContextAdapter_1.createRollupPluginContextAdapter(rollupPluginContexts.pluginContext, wdsPlugin, config, fileWatcher, context, pluginMetaPerModule); | ||
let resolvableImport = source; | ||
@@ -89,3 +97,3 @@ let importSuffix = ''; | ||
? resolvableImport | ||
: await ((_a = rollupPlugin.resolveId) === null || _a === void 0 ? void 0 : _a.call(rollupPluginContext, resolvableImport, filePath)); | ||
: await ((_a = rollupPlugin.resolveId) === null || _a === void 0 ? void 0 : _a.call(rollupPluginContext, resolvableImport, filePath, {})); | ||
let resolvedImportPath = undefined; | ||
@@ -97,2 +105,3 @@ if (typeof result === 'string') { | ||
resolvedImportPath = result.id; | ||
savePluginMeta(result.id, result); | ||
} | ||
@@ -163,3 +172,3 @@ if (!resolvedImportPath) { | ||
try { | ||
const rollupPluginContext = createRollupPluginContextAdapter_1.createRollupPluginContextAdapter(rollupPluginContexts.pluginContext, wdsPlugin, config, fileWatcher, context); | ||
const rollupPluginContext = createRollupPluginContextAdapter_1.createRollupPluginContextAdapter(rollupPluginContexts.pluginContext, wdsPlugin, config, fileWatcher, context, pluginMetaPerModule); | ||
const result = await ((_a = rollupPlugin.load) === null || _a === void 0 ? void 0 : _a.call(rollupPluginContext, filePath)); | ||
@@ -170,2 +179,3 @@ if (typeof result === 'string') { | ||
if (typeof (result === null || result === void 0 ? void 0 : result.code) === 'string') { | ||
savePluginMeta(filePath, result); | ||
return { body: result.code, type: 'js' }; | ||
@@ -187,3 +197,3 @@ } | ||
try { | ||
const rollupPluginContext = createRollupPluginContextAdapter_1.createRollupPluginContextAdapter(rollupPluginContexts.transformPluginContext, wdsPlugin, config, fileWatcher, context); | ||
const rollupPluginContext = createRollupPluginContextAdapter_1.createRollupPluginContextAdapter(rollupPluginContexts.transformPluginContext, wdsPlugin, config, fileWatcher, context, pluginMetaPerModule); | ||
const result = await ((_a = rollupPlugin.transform) === null || _a === void 0 ? void 0 : _a.call(rollupPluginContext, context.body, filePath)); | ||
@@ -195,2 +205,3 @@ let transformedCode = undefined; | ||
if (typeof result === 'object' && typeof (result === null || result === void 0 ? void 0 : result.code) === 'string') { | ||
savePluginMeta(filePath, result); | ||
transformedCode = result.code; | ||
@@ -216,3 +227,3 @@ } | ||
const code = dom5_1.getTextContent(node); | ||
const rollupPluginContext = createRollupPluginContextAdapter_1.createRollupPluginContextAdapter(rollupPluginContexts.transformPluginContext, wdsPlugin, config, fileWatcher, context); | ||
const rollupPluginContext = createRollupPluginContextAdapter_1.createRollupPluginContextAdapter(rollupPluginContexts.transformPluginContext, wdsPlugin, config, fileWatcher, context, pluginMetaPerModule); | ||
const result = await ((_b = rollupPlugin.transform) === null || _b === void 0 ? void 0 : _b.call(rollupPluginContext, code, filePath)); | ||
@@ -224,2 +235,3 @@ let transformedCode = undefined; | ||
if (typeof result === 'object' && typeof (result === null || result === void 0 ? void 0 : result.code) === 'string') { | ||
savePluginMeta(filePath, result); | ||
transformedCode = result.code; | ||
@@ -242,2 +254,14 @@ } | ||
}, | ||
fileParsed(context) { | ||
var _a; | ||
if (!rollupPlugin.moduleParsed) { | ||
return; | ||
} | ||
const rollupPluginContext = createRollupPluginContextAdapter_1.createRollupPluginContextAdapter(rollupPluginContexts.transformPluginContext, wdsPlugin, config, fileWatcher, context, pluginMetaPerModule); | ||
const filePath = dev_server_core_1.getRequestFilePath(context, rootDir); | ||
const info = rollupPluginContext.getModuleInfo(filePath); | ||
if (!info) | ||
throw new Error(`Missing info for module ${filePath}`); | ||
(_a = rollupPlugin.moduleParsed) === null || _a === void 0 ? void 0 : _a.call(rollupPluginContext, info); | ||
}, | ||
}; | ||
@@ -244,0 +268,0 @@ return wdsPlugin; |
{ | ||
"name": "@web/dev-server-rollup", | ||
"version": "0.2.10", | ||
"version": "0.2.11", | ||
"publishConfig": { | ||
@@ -44,6 +44,6 @@ "access": "public" | ||
"dependencies": { | ||
"@web/dev-server-core": "^0.2.11", | ||
"@web/dev-server-core": "^0.2.17", | ||
"chalk": "^4.1.0", | ||
"parse5": "^6.0.1", | ||
"rollup": "^2.20.0", | ||
"rollup": "^2.33.2", | ||
"whatwg-url": "^8.1.0" | ||
@@ -55,3 +55,3 @@ }, | ||
"@rollup/plugin-babel": "^5.0.4", | ||
"@rollup/plugin-commonjs": "^13.0.0", | ||
"@rollup/plugin-commonjs": "^16.0.0", | ||
"@rollup/plugin-image": "^2.0.5", | ||
@@ -58,0 +58,0 @@ "@rollup/plugin-inject": "^4.0.2", |
import path from 'path'; | ||
import { DevServerCoreConfig, FSWatcher, Plugin as WdsPlugin, Context } from '@web/dev-server-core'; | ||
import { PluginContext, MinimalPluginContext, TransformPluginContext } from 'rollup'; | ||
import { | ||
PluginContext, | ||
MinimalPluginContext, | ||
TransformPluginContext, | ||
CustomPluginOptions, | ||
ModuleInfo, | ||
} from 'rollup'; | ||
@@ -13,2 +19,3 @@ export function createRollupPluginContextAdapter< | ||
context: Context, | ||
pluginMetaPerModule: Map<string, CustomPluginOptions>, | ||
) { | ||
@@ -18,8 +25,11 @@ return { | ||
getModuleInfo(id: string) { | ||
getModuleInfo(id: string): ModuleInfo { | ||
return { | ||
id, | ||
code: context.body, | ||
ast: null, | ||
dynamicallyImportedIds: [], | ||
dynamicImporters: [], | ||
hasModuleSideEffects: false, | ||
id, | ||
implicitlyLoadedBefore: [], | ||
implicitlyLoadedAfterOneOf: [], | ||
importedIds: [], | ||
@@ -29,2 +39,5 @@ importers: [], | ||
isExternal: false, | ||
hasModuleSideEffects: false, | ||
syntheticNamedExports: false, | ||
meta: pluginMetaPerModule.get(id) ?? {}, | ||
}; | ||
@@ -31,0 +44,0 @@ }, |
@@ -20,3 +20,3 @@ /* eslint-disable no-control-regex */ | ||
import { parse as parseHtml, serialize as serializeHtml } from 'parse5'; | ||
import { Plugin as RollupPlugin, TransformPluginContext } from 'rollup'; | ||
import { CustomPluginOptions, Plugin as RollupPlugin, TransformPluginContext } from 'rollup'; | ||
import { InputOptions } from 'rollup'; | ||
@@ -67,2 +67,3 @@ import { red, cyanBright } from 'chalk'; | ||
const transformedFiles = new Set(); | ||
const pluginMetaPerModule = new Map<string, CustomPluginOptions>(); | ||
let rollupPluginContexts: RollupPluginContexts; | ||
@@ -73,2 +74,13 @@ let fileWatcher: FSWatcher; | ||
function savePluginMeta( | ||
id: string, | ||
{ meta }: { meta?: CustomPluginOptions | null | undefined } = {}, | ||
) { | ||
if (!meta) { | ||
return; | ||
} | ||
const previousMeta = pluginMetaPerModule.get(id); | ||
pluginMetaPerModule.set(id, { ...previousMeta, ...meta }); | ||
} | ||
const wdsPlugin: WdsPlugin = { | ||
@@ -113,2 +125,3 @@ name: rollupPlugin.name, | ||
context, | ||
pluginMetaPerModule, | ||
); | ||
@@ -133,3 +146,3 @@ | ||
? resolvableImport | ||
: await rollupPlugin.resolveId?.call(rollupPluginContext, resolvableImport, filePath); | ||
: await rollupPlugin.resolveId?.call(rollupPluginContext, resolvableImport, filePath, {}); | ||
@@ -141,2 +154,3 @@ let resolvedImportPath: string | undefined = undefined; | ||
resolvedImportPath = result.id; | ||
savePluginMeta(result.id, result); | ||
} | ||
@@ -225,2 +239,3 @@ | ||
context, | ||
pluginMetaPerModule, | ||
); | ||
@@ -234,2 +249,3 @@ | ||
if (typeof result?.code === 'string') { | ||
savePluginMeta(filePath, result); | ||
return { body: result.code, type: 'js' }; | ||
@@ -258,2 +274,3 @@ } | ||
context, | ||
pluginMetaPerModule, | ||
); | ||
@@ -273,2 +290,3 @@ | ||
if (typeof result === 'object' && typeof result?.code === 'string') { | ||
savePluginMeta(filePath, result); | ||
transformedCode = result.code; | ||
@@ -310,2 +328,3 @@ } | ||
context, | ||
pluginMetaPerModule, | ||
); | ||
@@ -325,2 +344,3 @@ | ||
if (typeof result === 'object' && typeof result?.code === 'string') { | ||
savePluginMeta(filePath, result); | ||
transformedCode = result.code; | ||
@@ -344,2 +364,21 @@ } | ||
}, | ||
fileParsed(context) { | ||
if (!rollupPlugin.moduleParsed) { | ||
return; | ||
} | ||
const rollupPluginContext = createRollupPluginContextAdapter( | ||
rollupPluginContexts.transformPluginContext, | ||
wdsPlugin, | ||
config, | ||
fileWatcher, | ||
context, | ||
pluginMetaPerModule, | ||
); | ||
const filePath = getRequestFilePath(context, rootDir); | ||
const info = rollupPluginContext.getModuleInfo(filePath); | ||
if (!info) throw new Error(`Missing info for module ${filePath}`); | ||
rollupPlugin.moduleParsed?.call(rollupPluginContext as TransformPluginContext, info); | ||
}, | ||
}; | ||
@@ -346,0 +385,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
74813
1136
Updated@web/dev-server-core@^0.2.17
Updatedrollup@^2.33.2