Skip to content

Unable to use package in browser #158

@trymeouteh

Description

@trymeouteh

The following simple example works in NodeJS

import Ajv from 'ajv';
import ajvErrors from 'ajv-errors';

const ajv = new Ajv({
	allErrors: true,
});

ajvErrors(ajv);

const schema = {
	type: 'object',
	properties: {
		myFieldA: {
			type: 'integer',
		},
		myFieldB: {
			type: 'string',
		},
	},
	errorMessage: {
		properties: {
    		myFieldA: 'My Error Message 1',
    		myFieldB: 'My Error Message 2',
    	},
	}
}

const submittedData = {
	myFieldA: 'Hello World',
	myFieldB: 1,
};

ajv.validate(schema, submittedData)

console.log(ajv.errors);

But the following simple example which is the same as the above example except it imports the package from a CDN, does not work

<script type="module">
	import Ajv from 'https://esm.sh/ajv@8.17.1';
	import ajvErrors from 'https://esm.sh/ajv-errors@3.0.0';

	const ajv = new Ajv({
		allErrors: true,
	});

	ajvErrors(ajv);

	const schema = {
		type: 'object',
		properties: {
			myFieldA: {
				type: 'integer',
			},
			myFieldB: {
				type: 'string',
			},
		},
		errorMessage: {
			properties: {
				myFieldA: 'My Error Message 1',
				myFieldB: 'My Error Message 2',
			},
		}
	}

	const submittedData = {
		myFieldA: 'Hello World',
		myFieldB: 1,
	};

	ajv.validate(schema, submittedData);

	console.log(ajv.errors);
</script>

I did the same thing to get ajv-keywords, ajv-formats packages to work in the browser by using esm.sh CDN. However I am unable to get ajv-errors to work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions